ruby_motion_query 1.5.0 → 1.6.0
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 +4 -4
- data/motion/ruby_motion_query/accessibility.rb +20 -0
- data/motion/ruby_motion_query/animations.rb +11 -7
- data/motion/ruby_motion_query/base.rb +2 -2
- data/motion/ruby_motion_query/event.rb +20 -10
- data/motion/ruby_motion_query/events.rb +11 -1
- data/motion/ruby_motion_query/stylesheet.rb +13 -0
- data/motion/ruby_motion_query/traverse.rb +6 -1
- data/motion/ruby_motion_query/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2470da3bf0ecba5d45eaca32dbfa623c1f8b6d69
|
4
|
+
data.tar.gz: bf6cfd75685027a85c41718fc6b2c1b845c3dc24
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 383304052b21e730b67132d4f17e9d5f2829897cc1c06851a5410a27456a7dcdd7c3b96a6f0c83a2581abc6ee5b5aaf8a550737f983a71d6f6fc5fb7585697a9
|
7
|
+
data.tar.gz: fc9e2f23eed27d67fe809525fe6f809dd76bfcf0c314a13bab0e543f7a402aa14adfbcd2d718b3055a24bfd7e2fffee7368524f078f84cb6e186c76976d194cc
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module RubyMotionQuery
|
2
|
+
class RMQ
|
3
|
+
|
4
|
+
# @return [Accessibility]
|
5
|
+
def self.accessibility
|
6
|
+
Accessibility
|
7
|
+
end
|
8
|
+
|
9
|
+
# @return [Accessibility]
|
10
|
+
def accessibility
|
11
|
+
Accessibility
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
class Accessibility
|
16
|
+
def self.voiceover_running?
|
17
|
+
UIAccessibilityIsVoiceOverRunning()
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -44,13 +44,17 @@ module RubyMotionQuery
|
|
44
44
|
nil
|
45
45
|
end
|
46
46
|
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
47
|
+
if accessibility.voiceover_running?
|
48
|
+
after_lambda.call(true)
|
49
|
+
else
|
50
|
+
UIView.animateWithDuration(
|
51
|
+
opts[:duration] || 0.3,
|
52
|
+
delay: opts[:delay] || 0.0,
|
53
|
+
options: opts[:options] || UIViewAnimationOptionCurveEaseInOut,
|
54
|
+
animations: animations_lambda,
|
55
|
+
completion: after_lambda
|
56
|
+
)
|
57
|
+
end
|
54
58
|
end
|
55
59
|
|
56
60
|
self
|
@@ -156,9 +156,9 @@ module RubyMotionQuery
|
|
156
156
|
# Which means it only has 1 selected view, and that view
|
157
157
|
# is the view you called rmq in. Which is a tad confusing, but if you call *just* rmq inside a
|
158
158
|
# view, then only that view will be *selected* and this rmq will be *root*. If you call rmq
|
159
|
-
# inside a controller, only controller.view will be selected and the
|
159
|
+
# inside a controller, only controller.view will be selected and the rmq instance will be a root.
|
160
160
|
def root?
|
161
|
-
(selected.length == 1) && (selected.first ==
|
161
|
+
(selected.length == 1) && (selected.first == context_or_context_view)
|
162
162
|
end
|
163
163
|
|
164
164
|
# The context is where rmq was created (not the selectors).
|
@@ -9,30 +9,33 @@ module RubyMotionQuery
|
|
9
9
|
return ValidationEvent.new(block)
|
10
10
|
elsif @sdk_event_or_recognizer = VIEW_GESTURES[event]
|
11
11
|
@gesture = true
|
12
|
-
|
12
|
+
@custom_event = false
|
13
|
+
elsif sender.is_a?(UIControl) && (@sdk_event_or_recognizer = CONTROL_EVENTS[event])
|
13
14
|
@gesture = false
|
14
|
-
@
|
15
|
+
@custom_event = false
|
16
|
+
else
|
17
|
+
@gesture = false
|
18
|
+
@sdk_event_or_recognizer = nil
|
19
|
+
@custom_event = true
|
15
20
|
end
|
16
21
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
@block = block
|
22
|
+
@sender = sender
|
23
|
+
@event = event
|
24
|
+
@block = block
|
21
25
|
|
26
|
+
if @sdk_event_or_recognizer
|
22
27
|
if @gesture
|
23
28
|
@recognizer = @sdk_event_or_recognizer.alloc.initWithTarget(self, action: "handle_gesture_or_event:")
|
24
29
|
@sender.addGestureRecognizer(@recognizer)
|
25
30
|
else
|
26
31
|
@sender.addTarget(self, action: "handle_gesture_or_event:", forControlEvents: @sdk_event_or_recognizer)
|
27
32
|
end
|
28
|
-
else
|
29
|
-
raise "[RMQ Error] Invalid event or gesture or invalid sender (#{event}). Example of use: button.on(:touch) { my_code }"
|
30
33
|
end
|
31
34
|
end
|
32
35
|
|
33
36
|
def handle_gesture_or_event(gesture)
|
34
37
|
# Don't fire :long_press events twice.
|
35
|
-
return if
|
38
|
+
return if gesture.class == VIEW_GESTURES[:long_press] && gesture.state != UIGestureRecognizerStateBegan
|
36
39
|
|
37
40
|
# Handle debounce logic
|
38
41
|
if @debounce_length
|
@@ -78,7 +81,6 @@ module RubyMotionQuery
|
|
78
81
|
when :swipe_right then o.direction = UISwipeGestureRecognizerDirectionRight
|
79
82
|
end
|
80
83
|
|
81
|
-
|
82
84
|
if opts.include?(:init)
|
83
85
|
opts[:init].call(@recognizer)
|
84
86
|
end
|
@@ -90,6 +92,14 @@ module RubyMotionQuery
|
|
90
92
|
@gesture
|
91
93
|
end
|
92
94
|
|
95
|
+
def sdk_event?
|
96
|
+
!@custom_event && !@gesture
|
97
|
+
end
|
98
|
+
|
99
|
+
def custom_event?
|
100
|
+
@custom_event
|
101
|
+
end
|
102
|
+
|
93
103
|
def location
|
94
104
|
if gesture?
|
95
105
|
@recognizer.locationInView(@sender)
|
@@ -106,6 +106,14 @@ module RubyMotionQuery
|
|
106
106
|
self
|
107
107
|
end
|
108
108
|
|
109
|
+
def trigger(event)
|
110
|
+
selected.each do |view|
|
111
|
+
events(view)[event].block.call(view.rmq) if events(view)[event]
|
112
|
+
end
|
113
|
+
|
114
|
+
self
|
115
|
+
end
|
116
|
+
|
109
117
|
protected
|
110
118
|
|
111
119
|
def events(view)
|
@@ -134,7 +142,9 @@ module RubyMotionQuery
|
|
134
142
|
raise "[RMQ Error] Event already exists on this object: #{event}. Remove first, using .off" if @event_set[event]
|
135
143
|
|
136
144
|
if rmqe = event_instance(view, event, block)
|
137
|
-
|
145
|
+
if rmqe.is_a?(RubyMotionQuery::Event) && !rmqe.custom_event?
|
146
|
+
view.userInteractionEnabled = true
|
147
|
+
end
|
138
148
|
|
139
149
|
rmqe.set_options(args) if rmqe.respond_to? :set_options
|
140
150
|
|
@@ -262,14 +262,27 @@ module RubyMotionQuery
|
|
262
262
|
def iphone?
|
263
263
|
device.iphone?
|
264
264
|
end
|
265
|
+
|
265
266
|
def ipad?
|
266
267
|
device.ipad?
|
267
268
|
end
|
268
269
|
|
270
|
+
def three_point_five_inch?
|
271
|
+
device.three_point_five_inch?
|
272
|
+
end
|
273
|
+
|
269
274
|
def four_inch?
|
270
275
|
device.four_inch?
|
271
276
|
end
|
272
277
|
|
278
|
+
def four_point_seven_inch?
|
279
|
+
device.four_point_seven_inch?
|
280
|
+
end
|
281
|
+
|
282
|
+
def five_point_five_inch?
|
283
|
+
device.five_point_five_inch?
|
284
|
+
end
|
285
|
+
|
273
286
|
def retina?
|
274
287
|
device.retina?
|
275
288
|
end
|
@@ -35,8 +35,13 @@ module RubyMotionQuery
|
|
35
35
|
#
|
36
36
|
# @example
|
37
37
|
# rmq.all.log
|
38
|
+
# rmq(:container).all
|
38
39
|
def all
|
39
|
-
self.
|
40
|
+
if self.root?
|
41
|
+
self.weak_view_controller.rmq.find
|
42
|
+
else
|
43
|
+
self.find
|
44
|
+
end
|
40
45
|
end
|
41
46
|
|
42
47
|
# @return [RMQ] A new rmq instance reducing selected views to those that match selectors provided
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby_motion_query
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Todd Werth
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-
|
12
|
+
date: 2015-07-10 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bacon
|
@@ -52,6 +52,7 @@ files:
|
|
52
52
|
- bin/rmq
|
53
53
|
- lib/ruby_motion_query.rb
|
54
54
|
- motion/ext.rb
|
55
|
+
- motion/ruby_motion_query/accessibility.rb
|
55
56
|
- motion/ruby_motion_query/actions.rb
|
56
57
|
- motion/ruby_motion_query/animations.rb
|
57
58
|
- motion/ruby_motion_query/app.rb
|