motion-encodable
Implement NSCoding protocol methods with ease for RubyMotion.
Installation
Add this line to your application's Gemfile:
gem 'motion-encodable'
And then execute:
$ bundle
Or install it yourself as:
$ gem install motion-encodable
Usage
class Entry
include Motion::Encodable
properties :title, :body
end
Now, you can serialize and deserialize your object using NSCoding protocol.
entry = Entry.new
entry.title = 'foo'
entry.body = 'bar'
# save to NSUserDefaults
user_defaults = NSUserDefaults.standardUserDefaults
user_defaults[:entry] = entry.to_data
loaded_entry = Entry.load(user_defaults[:entry])
loaded_entry.instance_variable_get('@title') # => "foo"
loaded_entry.instance_variable_get('@body') # => "bar"
# save to file
dir_path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, true)[0]
file_path = dir_path + '/entry.dat'
entry.save_to_file(file_path)
loaded_entry = Entry.load(NSData.dataWithContentsOfFile(file_path))
loaded_entry.instance_variable_get('@title') # => "foo"
loaded_entry.instance_variable_get('@body') # => "bar"
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin my-new-feature) - Create new Pull Request



