motion_bindable 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 22f69831469c0aae59f8af6aa599f586276bd23c
4
- data.tar.gz: 61181ef1e9254eb8378bc229eacc396851480867
3
+ metadata.gz: a8fecf48e97819f07047c4d906ac09db46aa92da
4
+ data.tar.gz: 3ab8cce360df5457b93e6d1e4d7a41da5d86b901
5
5
  SHA512:
6
- metadata.gz: 9581949f1fe049307b10aeb65e26ac65976662c1e5ad51e18c741ebe46340774c5d6296ac41a417ee17a7f2ef1bb957c5075eb590c586b674b1978957aac5283
7
- data.tar.gz: 1f28ee9528235b42e9e4282e116e5fa54a279fad178f32977a6e34ffec35e4c78ff590faff1a763d9532170c4fc04ac483190d438abb0fbd35a46c5a51dba772
6
+ metadata.gz: 2b929c021c2f8b99a00867c8da1b9e976dd4d29e7d6b5b185d30e3ebe1d2da72b25c5d28e55c585f1e7ea6d49f9de1248f855d0b91d9b36cbd4a71a04a614af5
7
+ data.tar.gz: ffdfe46d6554d279a2f7e79002e1e45384a7f6077286192fa4ed8e1bec30bcba688edf93f827c2bf4cad300fa76002b29bb55b312aef1103a0e53048a232ad73
@@ -0,0 +1,2 @@
1
+ language: objective-c
2
+ script: rake spec
data/README.md CHANGED
@@ -1,5 +1,8 @@
1
1
  # Motion Bindable
2
2
 
3
+ [![Build Status](https://travis-ci.org/nathankot/motion-bindable.png?branch=master)](https://travis-ci.org/nathankot/motion-bindable)
4
+ [![Code Climate](https://codeclimate.com/github/nathankot/motion-bindable.png)](https://codeclimate.com/github/nathankot/motion-bindable)
5
+
3
6
  A simple data binding library for RubyMotion.
4
7
 
5
8
  ## Installation
@@ -76,14 +79,48 @@ end
76
79
 
77
80
  When `@name_field.text` or `@address_field.text` changes, so will your model!
78
81
 
79
- ### Strategies
82
+ ### Refresh
83
+
84
+ To refresh the values on your bindable object use this:
85
+
86
+ ```ruby
87
+ @bindable.refresh
88
+ ```
89
+
90
+ Some strategies only make an update when a `#refresh` is called. See the
91
+ _Frequency_ column in the table below.
92
+
93
+ ### Custom Strategies
80
94
 
81
95
  The above example uses the `MotionBindable::Strategies::UITextField`.
82
96
  which comes with MotionBindable. Take a look in
83
97
  `lib/motion_bindable/strategies` for the available defaults. You can implement
84
98
  your own strategies by extending `MotionBindable::Strategy` like so:
85
99
 
86
- **TODO**
100
+ ```ruby
101
+ class CustomBindableStrategy < MotionBindable::Strategy
102
+
103
+ def on_bind
104
+ # This runs once when the object is bound.
105
+ end
106
+
107
+ def refresh
108
+ # This runs when the object is bound, and each time `@bindable.refresh`
109
+ # is called.
110
+ end
111
+
112
+ end
113
+ ```
114
+
115
+ ### Defaults Strategies
116
+
117
+ The following strategies come with motion-bindable and are setup when
118
+ `MotionBindable::Strategies.use` is called.
119
+
120
+ | Name | Object Candidates | Direction | Frequency |
121
+ | ----------------------------------------- | ----------------- | --------- | ---------- |
122
+ | `MotionBindable::Strategies::UITextField` | Any `UITextField` | Two-way | On Change |
123
+ | `MotionBindable::Strategies::Proc` | Any `Proc` | One-way | On Refresh |
87
124
 
88
125
  ## Contributing
89
126
 
@@ -1,3 +1,3 @@
1
1
  module MotionBindable
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
@@ -9,8 +9,10 @@ module MotionBindable::Strategies
9
9
 
10
10
  # Observe the bound object
11
11
  NSNotificationCenter.defaultCenter.addObserver(
12
- self, selector: :on_bound_change,
13
- name: UITextFieldTextDidChangeNotification, object: bound
12
+ self,
13
+ selector: :on_bound_change,
14
+ name: UITextFieldTextDidChangeNotification,
15
+ object: bound
14
16
  )
15
17
 
16
18
  # Observe the attribute
@@ -18,7 +20,7 @@ module MotionBindable::Strategies
18
20
  end
19
21
 
20
22
  def on_bound_change
21
- self.attribute = bound.text
23
+ self.attribute = bound.text unless bound.text.empty?
22
24
  end
23
25
 
24
26
  def on_object_change
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: motion_bindable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathan Kot
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-12-21 00:00:00.000000000 Z
11
+ date: 2013-12-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bubble-wrap
@@ -33,6 +33,7 @@ extra_rdoc_files: []
33
33
  files:
34
34
  - .gemrelease
35
35
  - .gitignore
36
+ - .travis.yml
36
37
  - Gemfile
37
38
  - Gemfile.lock
38
39
  - LICENSE.txt