motion-prime 0.1.4 → 0.1.5

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,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NzcwMzdlNzc2NDFkODU4MzU1MzA2NjQ1NjcxYTg2MWMyODJmODkwYg==
4
+ Nzg0M2M3MWY1OWZhOTU1NDkwOWY3MzllNTY1NTJlZDc3YWY1ZDg5Yw==
5
5
  data.tar.gz: !binary |-
6
- MTcyZjUyODMwN2ZjMzAyMzU3NzVkZmNmYjA0MzY0ODY1ODliMDEyMQ==
6
+ ZjAxODM0OTk4NDg1NGMwMTE1OGZlYTI2NTc5NTVjMmNiZmJiZDQxZA==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- ZTBlOTI1M2I0NDkyZmNiNzg5YWVjOTIwYzViYTQyZTZmNjdmM2U4MTIxY2Uz
10
- YmVjMjQ4MGZkYjcxODY1MTRkMDkxYzQ1YTFiODY3MmEzM2M5Nzk4NzBkMDVi
11
- OGUwYTI4ZTY0ZDVkMmNmN2Y2N2YzMGYyYzgwMjhkYjdhMzIyZTE=
9
+ ZTQzYjI2NDYxMmNjY2Y1ZmQxMGZjOWI2ZTUyMGQ3YmE3ZWM5MjBhMzU3YjUy
10
+ Y2RlZWU2ZmVlYmZhNzhjNmMyYTU3ZDhlYTkyYWQzNjhhYzhjNjU3YTJlNzBm
11
+ NzI2OTc1MWM0ZGU1ZWNiYjE3MjMzYTU2YTFkZjNmMzE0ODJmMzI=
12
12
  data.tar.gz: !binary |-
13
- NTFmZmNmZmU4YWNmZjUzY2VjNjY3NGEyZjQ4ZGU1YTYzYTc5ZTg5NGEwMTJm
14
- N2FmMDA3YTg2ZjIzNDI2NTZkMzRjNDMwNmQ0ODhkZmI1YWVjNTRhZThlYzY3
15
- ZjgwZmI4ZjhjNmM2NTBjMDBjYzVhYzg5MzU1NDhkNDA1Yjg3YmI=
13
+ OTM5NTA1YjlhNmQ1NTZlN2M4MWQ5ODhkNTEwYmM1ZDBlOTQ3MmFhMjRkZTRk
14
+ OWFiY2M4OWZlZTU4Y2UyNjk2MWNiNmQ3MGJlMWMxOTBjNzI3OWNkOGQ1YWVl
15
+ Mzg0MTFlZTI5YTU1YzYyMjRkZGY0MmNmMDJjMzJiMjBiMDg4OTM=
data/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ === 0.1.5
2
+ * MP::FormSection#on_edit renamed to on_input_edit
3
+ * MP::FormSection#on_input_change callback added
4
+ * MP::FormSection#on_input_return callback added, hides keyboard by default
5
+ * MP::FormSection#keyboard_will_show callback added
6
+ * MP::FormSection#keyboard_will_hide callback added
7
+ * MP::TableSection#on_appear callback added
8
+
1
9
  === 0.1.4 (Breaking changes)
2
10
  * MotionPrime::BaseModel#sync_with_url renamed to fetch_with_url
3
11
  * MotionPrime::BaseModel#sync_with_attributes renamed to fetch_with_attributes
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- motion-prime (0.1.4)
4
+ motion-prime (0.1.5)
5
5
  bubble-wrap
6
6
  cocoapods
7
7
  motion-cocoapods
@@ -54,7 +54,11 @@ module MotionPrime
54
54
  # @return MotionPrime::BaseElement element
55
55
  def element(name)
56
56
  field_name, element_name = name.split(':')
57
- field(field_name).element(element_name.to_sym)
57
+ if element_name.present?
58
+ field(field_name).element(element_name.to_sym)
59
+ else
60
+ super(field_name)
61
+ end
58
62
  end
59
63
 
60
64
  # Returns field by name
@@ -84,8 +88,6 @@ module MotionPrime
84
88
  field(field_name).focus
85
89
  end
86
90
 
87
- def on_edit(field); end
88
-
89
91
  class << self
90
92
  def field(name, options = {})
91
93
  options[:name] = name
@@ -108,11 +110,12 @@ module MotionPrime
108
110
  self.keyboard_visible = false
109
111
  end
110
112
 
111
- def on_keyboard_show
112
- end
113
113
 
114
- def on_keyboard_hide
115
- end
114
+
115
+ def on_keyboard_show; end
116
+ def on_keyboard_hide; end
117
+ def keyboard_will_show; end
118
+ def keyboard_will_hide; end
116
119
 
117
120
  def bind_keyboard_events
118
121
  NSNotificationCenter.defaultCenter.addObserver self,
@@ -123,6 +126,26 @@ module MotionPrime
123
126
  selector: :on_keyboard_hide,
124
127
  name: UIKeyboardDidHideNotification,
125
128
  object: nil
129
+ NSNotificationCenter.defaultCenter.addObserver self,
130
+ selector: :keyboard_will_show,
131
+ name: UIKeyboardWillShowNotification,
132
+ object: nil
133
+ NSNotificationCenter.defaultCenter.addObserver self,
134
+ selector: :keyboard_will_hide,
135
+ name: UIKeyboardWillHideNotification,
136
+ object: nil
137
+ end
138
+ # ALIASES
139
+ def on_input_change(text_field); end
140
+ def on_input_edit(text_field); end
141
+ def on_input_return(text_field)
142
+ text_field.resignFirstResponder
143
+ end;
144
+ def textFieldShouldReturn(text_field)
145
+ on_input_return(text_field)
146
+ end
147
+ def textFieldDidBeginEditing(text_field)
148
+ on_input_edit(text_field)
126
149
  end
127
150
 
128
151
  private
@@ -48,5 +48,13 @@ module MotionPrime
48
48
  rescue
49
49
  puts "can't blur on element #{self.class.name}"
50
50
  end
51
+
52
+ def bind_text_input
53
+ view(:input).on :change do |view|
54
+ focus
55
+ form.on_input_change(view(:input))
56
+ end
57
+ view(:input).delegate = self.form
58
+ end
51
59
  end
52
60
  end
@@ -21,13 +21,6 @@ module MotionPrime
21
21
  secureTextEntry: true
22
22
  }.merge(options[:input] || {})
23
23
  end
24
- after_render :render_input
25
-
26
- def render_input
27
- view(:input).on :editing_did_begin do |view|
28
- focus
29
- form.on_edit(self)
30
- end
31
- end
24
+ after_render :bind_text_input
32
25
  end
33
26
  end
@@ -29,9 +29,9 @@ module MotionPrime
29
29
  }.merge(options[:arrow] || {})
30
30
  end
31
31
 
32
- after_render :render_button
32
+ after_render :bind_select_button
33
33
 
34
- def render_button
34
+ def bind_select_button
35
35
  view(:button).on :touch do
36
36
  form.send(options[:action]) if options[:action]
37
37
  end
@@ -20,13 +20,6 @@ module MotionPrime
20
20
  ],
21
21
  }.merge(options[:input] || {})
22
22
  end
23
- after_render :render_input
24
-
25
- def render_input
26
- view(:input).on :editing_did_begin do |view|
27
- focus
28
- form.on_edit(self)
29
- end
30
- end
23
+ after_render :bind_text_input
31
24
  end
32
25
  end
@@ -9,9 +9,9 @@ module MotionPrime
9
9
  ]
10
10
  }.merge(title: options[:title])
11
11
  end
12
- after_render :render_submit
12
+ after_render :bind_submit
13
13
 
14
- def render_submit
14
+ def bind_submit
15
15
  view(:submit).on :touch do
16
16
  form.send(options[:action]) if options[:action]
17
17
  end
@@ -21,13 +21,6 @@ module MotionPrime
21
21
  editable: true
22
22
  }.merge(options[:input] || {})
23
23
  end
24
- after_render :render_input
25
-
26
- def render_input
27
- view(:input).on :editing_did_begin do |view|
28
- focus
29
- form.on_edit(self)
30
- end
31
- end
24
+ after_render :bind_text_input
32
25
  end
33
26
  end
@@ -4,7 +4,7 @@ module MotionPrime
4
4
  include TableSectionRefreshMixin
5
5
  include HasSearchBar
6
6
 
7
- attr_accessor :table_view
7
+ attr_accessor :table_view, :did_appear
8
8
  before_render :render_table
9
9
 
10
10
  def table_data
@@ -18,6 +18,7 @@ module MotionPrime
18
18
  end
19
19
 
20
20
  def reload_data
21
+ @did_appear = false
21
22
  @data = nil
22
23
  @data_stamp = Time.now.to_i
23
24
  table_view.reloadData
@@ -59,6 +60,9 @@ module MotionPrime
59
60
  def on_click(table, index)
60
61
  end
61
62
 
63
+ def on_appear
64
+ end
65
+
62
66
  def cell_name(table, index)
63
67
  record = data[index.row]
64
68
  if record && record.model &&
@@ -79,6 +83,13 @@ module MotionPrime
79
83
 
80
84
  def tableView(table, cellForRowAtIndexPath:index)
81
85
  cell = cached_cell(index, table) || render_cell(index, table)
86
+
87
+ # run table view is appeared callback if needed
88
+ if index.row == data.size - 1 && !@did_appear
89
+ @did_appear = true
90
+ on_appear
91
+ end
92
+
82
93
  cell.is_a?(UIView) ? cell : cell.view
83
94
  end
84
95
 
@@ -1,3 +1,3 @@
1
1
  module MotionPrime
2
- VERSION = "0.1.4"
2
+ VERSION = "0.1.5"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: motion-prime
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Iskander Haziev