CARVIEW |
Select Language
HTTP/2 200
date: Sun, 27 Jul 2025 05:17:12 GMT
content-type: text/html; charset=utf-8
vary: X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, X-Requested-With,Accept-Encoding, Accept, X-Requested-With
x-robots-tag: none
etag: W/"7ffe586e8dca67057a9935ce2ffaba5b"
cache-control: max-age=0, private, must-revalidate
strict-transport-security: max-age=31536000; includeSubdomains; preload
x-frame-options: deny
x-content-type-options: nosniff
x-xss-protection: 0
referrer-policy: no-referrer-when-downgrade
content-security-policy: default-src 'none'; base-uri 'self'; child-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com release-assets.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com copilotprodattachments.blob.core.windows.net/github-production-copilot-attachments/ github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/
server: github.com
content-encoding: gzip
accept-ranges: bytes
set-cookie: _gh_sess=di0F%2FxsXsyMMutQoyYZgzssVaiz4u770ZURRjhrUGo%2FrCTJD4J0hTZNffTpbyBBDhSHArXmx0QM%2Bg6AYRA4Ct3atqnRkROhWaBn752yMR41Gt1Cxh%2FJywzs2IgNmGHQW%2FHvMMk0RPZKXJN5YS0aerbsR7YCDF%2BzXQvmyHxRYga3UgcPYjgHMMMZSNXYPYJnhVhc6zscCdAnRIxWdsr2wwAo2dKkB%2BA1AOwpJIfACjaLD%2Bi0c%2Btq%2B1lqkv2COaYXp20uYfRLAahdgeSgB3vlkgQ%3D%3D--b%2FVo%2FJHB08v8oua9--SYLQK0eIJVAlghgL%2BJR8aA%3D%3D; Path=/; HttpOnly; Secure; SameSite=Lax
set-cookie: _octo=GH1.1.2069014542.1753593432; Path=/; Domain=github.com; Expires=Mon, 27 Jul 2026 05:17:12 GMT; Secure; SameSite=Lax
set-cookie: logged_in=no; Path=/; Domain=github.com; Expires=Mon, 27 Jul 2026 05:17:12 GMT; HttpOnly; Secure; SameSite=Lax
x-github-request-id: 833A:21EF6:181DDD:23B545:6885B658
Ruby · dingbat/nsrails Wiki · GitHub
Skip to content
Navigation Menu
{{ message }}
This repository was archived by the owner on Mar 23, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 37
Ruby
Dan Hassin edited this page Aug 21, 2014
·
4 revisions
- In MacRuby, simply drag the
Source
folder into Xcode in your MacRuby project, and NSRails should be built with your project as normal. For RubyMotion, follow these steps to vendor NSRails:
-
Add a
vendor
directory on the main level of your RubyMotion app if you don't have one already -
Copy the
nsrails
directory (the one with the main Xcode project) intovendor
. (You can deleteTests/
, but keepSource/
and the Xcode project file). -
Modify your Rakefile to include NSRails and the CoreData framework:
Motion::Project::App.setup do |app| # Add this line: app.vendor_project('vendor/nsrails', :xcode, :target => 'NSRails', :headers_dir => 'source') # OR these lines, if you wish to use NSRails with CoreData #app.vendor_project('vendor/nsrails', :xcode, :target => 'NSRailsCD', :headers_dir => 'source') #app.frameworks << "CoreData" ... end
-
Make a Ruby class for your Rails model and have it subclass NSRRemoteObject, or NSRRemoteManagedObject with CoreData:
class Post < NSRRemoteObject attr_accessor :author, :content, :created_at # Since the above list of Ruby instance variables can't be accessed from # Obj-C, they have to be explicitly defined by overriding 'remoteProperties' def remoteProperties super + ["author", "content", "created_at"] end end
-
Setup. This can go in
app_delegate.rb
:NSRConfig.defaultConfig.rootURL = NSURL.URLWithString("https://localhost:3000") # Don't look for camelCase when receiving remote underscored_properties, since we're in Ruby NSRConfig.defaultConfig.autoinflectsPropertyNames = false # If you're using Rails 3 #NSRConfig.defaultConfig.configureToRailsVersion NSRRailsVersion3
Now, the fun! Here's an example of how you can use pointers/blocks in Ruby, but see the Objective-C examples in the Readme for more!
# Get all posts (synchronously)
error_ptr = Pointer.new(:object)
posts = Post.remoteAll(error_ptr)
if !posts
error = error_ptr[0]
...
end
# Get all posts (asynchronously)
Post.remoteAllAsync(lambda do |posts, error|
...
end)
See the documentation for more on what you can do with your new class, or the cookbook for quick NSRRemoteObject recipes.
Clone this wiki locally
You can’t perform that action at this time.