Sha256: 845a51e178665e11d7f2da46b579c8ed400714f5e00fb6d4aa2c1f0d5a17de50
Contents?: true
Size: 1.91 KB
Versions: 7
Compression:
Stored size: 1.91 KB
Contents
# Motion Bindable A simple data binding library for RubyMotion. ## Installation Add this line to your application's Gemfile: ```ruby gem 'motion_bindable' ``` And then execute: ```sh $ bundle ``` If you want to use the default strategies that come with MotionBindable add this to your `app_delegate.rb`: ``` ruby def application(application, didFinishLaunchingWithOptions: launch_options) MotionBindable::Strategies.use true end ``` ## Usage Add `include MotionBindable::Bindable` to make an object bindable: ```ruby # Models class Item include MotionBindable::Bindable attr_accessor :name attr_accessor :location def location @address ||= Address.new end end class Address attr_accessor :address end ``` In your view controller, you can bind the object to a set of Views or any other object: ```ruby class ItemListViewController def viewDidLoad super @name_field = UITextField.alloc.initWithFrame [[110, 60], [100, 26]] @name_field.placeholder = "Name" view.addSubview @name_field @address_field = UITextField.alloc.initWithFrame [[110, 100], [100, 26]] @address_field.placeholder = "Address" view.addSubview @address_field @item = Item.new @item.bind_attributes({ name: @name_field, location: { address: @address_field } }) end end ``` When `@name_field.text` or `@address_field.text` changes, so will your model! ### Strategies The above example uses the `MotionBindable::Strategies::UITextField`. which comes with MotionBindable. Take a look in `lib/motion_bindable/strategies` for the available defaults. You can implement your own strategies by extending `MotionBindable::Strategy` like so: **TODO** ## Contributing 1. Fork it 2. Create your feature branch (`git checkout -b my-new-feature`) 3. Commit your changes (`git commit -am 'Add some feature'`) 4. Push to the branch (`git push origin my-new-feature`) 5. Create new Pull Request
Version data entries
7 entries across 7 versions & 1 rubygems