bubble-wrap 1.0.0 → 1.1.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.
Files changed (65) hide show
  1. data/.gitignore +0 -1
  2. data/.yardopts +2 -0
  3. data/CHANGELOG.md +15 -0
  4. data/Gemfile +1 -1
  5. data/Gemfile.lock +24 -0
  6. data/HACKING.md +2 -2
  7. data/README.md +363 -21
  8. data/Rakefile +6 -2
  9. data/lib/bubble-wrap.rb +0 -1
  10. data/lib/bubble-wrap/all.rb +4 -0
  11. data/lib/bubble-wrap/camera.rb +7 -0
  12. data/lib/bubble-wrap/core.rb +3 -2
  13. data/lib/bubble-wrap/ext/motion_project_app.rb +2 -2
  14. data/lib/bubble-wrap/http.rb +1 -0
  15. data/lib/bubble-wrap/loader.rb +19 -12
  16. data/lib/bubble-wrap/location.rb +6 -0
  17. data/lib/bubble-wrap/reactor.rb +10 -0
  18. data/lib/bubble-wrap/requirement.rb +11 -3
  19. data/lib/bubble-wrap/rss_parser.rb +2 -0
  20. data/lib/bubble-wrap/ui.rb +4 -0
  21. data/lib/bubble-wrap/version.rb +1 -1
  22. data/motion/core.rb +8 -2
  23. data/motion/core/app.rb +34 -6
  24. data/motion/core/device.rb +10 -1
  25. data/motion/core/device/camera.rb +219 -0
  26. data/motion/core/device/camera_wrapper.rb +45 -0
  27. data/motion/core/ns_url_request.rb +10 -0
  28. data/motion/core/persistence.rb +7 -0
  29. data/motion/core/pollute.rb +1 -2
  30. data/motion/core/string.rb +23 -0
  31. data/motion/http.rb +142 -83
  32. data/motion/location/location.rb +152 -0
  33. data/motion/location/pollute.rb +5 -0
  34. data/motion/reactor.rb +105 -0
  35. data/motion/reactor/default_deferrable.rb +9 -0
  36. data/motion/reactor/deferrable.rb +126 -0
  37. data/motion/reactor/eventable.rb +24 -0
  38. data/motion/reactor/future.rb +22 -0
  39. data/motion/reactor/periodic_timer.rb +27 -0
  40. data/motion/reactor/queue.rb +60 -0
  41. data/motion/reactor/timer.rb +25 -0
  42. data/motion/rss_parser.rb +131 -0
  43. data/motion/shortcut.rb +18 -0
  44. data/motion/{core → ui}/gestures.rb +15 -9
  45. data/motion/ui/pollute.rb +5 -0
  46. data/motion/{core → ui}/ui_control.rb +0 -0
  47. data/motion/{core → ui}/ui_view_controller.rb +0 -0
  48. data/resources/atom.xml +1705 -0
  49. data/spec/lib/bubble-wrap/ext/motion_project_app_spec.rb +7 -11
  50. data/spec/lib/bubble-wrap/requirement_spec.rb +4 -4
  51. data/spec/lib/bubble-wrap_spec.rb +2 -2
  52. data/spec/motion/core/app_spec.rb +118 -14
  53. data/spec/motion/core/device/camera_spec.rb +130 -0
  54. data/spec/motion/core/device/camera_wrapper_spec.rb +45 -0
  55. data/spec/motion/core/device_spec.rb +0 -50
  56. data/spec/motion/core/gestures_spec.rb +5 -0
  57. data/spec/motion/core/persistence_spec.rb +24 -2
  58. data/spec/motion/core/string_spec.rb +55 -0
  59. data/spec/motion/core_spec.rb +72 -1
  60. data/spec/motion/http_spec.rb +100 -65
  61. data/spec/motion/location/location_spec.rb +152 -0
  62. data/spec/motion/reactor/eventable_spec.rb +40 -0
  63. data/spec/motion/reactor_spec.rb +163 -0
  64. data/spec/motion/rss_parser_spec.rb +36 -0
  65. metadata +75 -16
@@ -0,0 +1,152 @@
1
+ describe "CLLocationWrap" do
2
+ it "should have correct values for lat and lng" do
3
+ coordinate = CLLocation.alloc.initWithLatitude(100, longitude: 50)
4
+ coordinate.latitude.should == 100
5
+ coordinate.longitude.should == 50
6
+ end
7
+ end
8
+
9
+ # monkey patch for testing
10
+ class CLLocationManager
11
+ def self.enable(enable)
12
+ @enabled = enable
13
+ end
14
+
15
+ def self.locationServicesEnabled
16
+ return true if @enabled.nil?
17
+ @enabled
18
+ end
19
+
20
+ def startUpdatingLocation
21
+ @startUpdatingLocation = true
22
+ end
23
+
24
+ def stopUpdatingLocation
25
+ @stopUpdatingLocation = true
26
+ end
27
+
28
+ def startMonitoringSignificantLocationChanges
29
+ @startMonitoringSignificantLocationChanges = true
30
+ end
31
+
32
+ def stopMonitoringSignificantLocationChanges
33
+ @stopMonitoringSignificantLocationChanges = true
34
+ end
35
+ end
36
+
37
+ def location_manager
38
+ BW::Location.instance_variable_get("@location_manager")
39
+ end
40
+
41
+ def reset
42
+ CLLocationManager.enable(true)
43
+ BW::Location.instance_variable_set("@callback", nil)
44
+ BW::Location.instance_variable_set("@location_manager", nil)
45
+ end
46
+
47
+ describe BubbleWrap::Location do
48
+ describe ".get" do
49
+ before do
50
+ reset
51
+ end
52
+
53
+ it "should set purpose using hash" do
54
+ BW::Location.get(purpose: "test") do |result|
55
+ end
56
+
57
+ location_manager.purpose.should == "test"
58
+ end
59
+
60
+ it "should throw error if not enabled" do
61
+ CLLocationManager.enable(false)
62
+
63
+ BW::Location.get do |result|
64
+ result[:error].should == BW::Location::Error::DISABLED
65
+ end
66
+ end
67
+
68
+ it "should throw error if permission denied" do
69
+ BW::Location.get do |result|
70
+ result[:error].should == BW::Location::Error::PERMISSION_DENIED
71
+ end
72
+
73
+ error = NSError.errorWithDomain(KCLErrorDomain, code: KCLErrorDenied, userInfo: nil)
74
+ BW::Location.locationManager(location_manager, didFailWithError: error)
75
+ end
76
+
77
+ it "should use significant update functions with :significant param" do
78
+ BW::Location.get(significant: true) do |result|
79
+ end
80
+
81
+ location_manager.instance_variable_get("@startMonitoringSignificantLocationChanges").should == true
82
+ end
83
+
84
+ it "should use normal update functions" do
85
+ BW::Location.get do |result|
86
+ end
87
+
88
+ location_manager.instance_variable_get("@startUpdatingLocation").should == true
89
+ end
90
+
91
+ it "should have correct location when succeeding" do
92
+ to = CLLocation.alloc.initWithLatitude(100, longitude: 50)
93
+ from = CLLocation.alloc.initWithLatitude(100, longitude: 49)
94
+
95
+ BW::Location.get do |result|
96
+ result[:to].longitude.should == 50
97
+ result[:from].longitude.should == 49
98
+ end
99
+
100
+ BW::Location.locationManager(location_manager, didUpdateToLocation: to, fromLocation: from)
101
+ end
102
+ end
103
+
104
+ describe ".get_significant" do
105
+ before do
106
+ reset
107
+ end
108
+
109
+ it "should use significant changes functions" do
110
+ BW::Location.get_significant do |result|
111
+ end
112
+
113
+ location_manager.instance_variable_get("@startMonitoringSignificantLocationChanges").should == true
114
+ end
115
+
116
+ it "should have correct location when succeeding" do
117
+ to = CLLocation.alloc.initWithLatitude(100, longitude: 50)
118
+ from = CLLocation.alloc.initWithLatitude(100, longitude: 49)
119
+
120
+ BW::Location.get_significant do |result|
121
+ result[:to].longitude.should == 50
122
+ result[:from].longitude.should == 49
123
+ end
124
+
125
+ BW::Location.locationManager(location_manager, didUpdateToLocation: to, fromLocation: from)
126
+ end
127
+ end
128
+
129
+ describe ".stop" do
130
+ before do
131
+ reset
132
+ end
133
+
134
+ it "should use normal update functions" do
135
+ BW::Location.get do |result|
136
+ end
137
+
138
+ BW::Location.stop
139
+
140
+ location_manager.instance_variable_get("@stopUpdatingLocation").should == true
141
+ end
142
+
143
+ it "should use significant update functions with get_significant" do
144
+ BW::Location.get_significant do |result|
145
+ end
146
+
147
+ BW::Location.stop
148
+
149
+ location_manager.instance_variable_get("@stopMonitoringSignificantLocationChanges").should == true
150
+ end
151
+ end
152
+ end
@@ -0,0 +1,40 @@
1
+ describe BubbleWrap::Reactor::Eventable do
2
+ before do
3
+ @subject = Class.new do
4
+ include BubbleWrap::Reactor::Eventable
5
+ end.new
6
+ @proxy = Class.new do
7
+ attr_accessor :proof
8
+ end.new
9
+ end
10
+
11
+ describe '.on' do
12
+ it 'registers events' do
13
+ proof = proc { }
14
+ @subject.on(:foo, &proof)
15
+ events = @subject.instance_variable_get(:@events)
16
+ events[:foo].member?(proof).should == true
17
+ end
18
+ end
19
+
20
+ describe '.trigger' do
21
+ it 'calls event procs' do
22
+ @proxy.proof = false
23
+ @subject.on(:foo) do |r|
24
+ @proxy.proof = r
25
+ end
26
+ @subject.trigger(:foo, true)
27
+ @proxy.proof.should == true
28
+ end
29
+
30
+ it 'calls all the event procs' do
31
+ @proxy.proof = 0
32
+ @subject.on(:foo) { |r| @proxy.proof += r }
33
+ @subject.on(:foo) { |r| @proxy.proof += r }
34
+ @subject.on(:foo) { |r| @proxy.proof += r }
35
+ @subject.trigger(:foo, 2)
36
+ @proxy.proof.should == 6
37
+ end
38
+ end
39
+
40
+ end
@@ -0,0 +1,163 @@
1
+ describe BubbleWrap::Reactor do
2
+ before do
3
+ @subject = ::BubbleWrap::Reactor
4
+ @proxy = Class.new do
5
+ attr_accessor :proof
6
+ end.new
7
+ end
8
+
9
+ describe 'slavish EventMachine compatibility' do
10
+ describe '.reactor_running?' do
11
+ it 'returns true' do
12
+ @subject.reactor_running?.should == true
13
+ end
14
+ end
15
+
16
+ describe '.reactor_thread?' do
17
+ it 'returns true' do
18
+ @subject.reactor_running?.should == true
19
+ end
20
+ end
21
+ end
22
+
23
+ describe '.add_timer' do
24
+ it 'schedules and executes timers' do
25
+ @proxy.proof = false
26
+ @subject.add_timer 0.5 do
27
+ @proxy.proof = true
28
+ end
29
+ wait_for_change @proxy, 'proof' do
30
+ @proxy.proof.should == true
31
+ end
32
+ end
33
+
34
+ it 'only runs the callback once' do
35
+ @proxy.proof = 0
36
+ @subject.add_timer 0.1 do
37
+ @proxy.proof = @proxy.proof + 1
38
+ end
39
+ wait 1 do
40
+ @proxy.proof.should == 1
41
+ end
42
+ end
43
+ end
44
+
45
+ describe '.add_periodic_timer' do
46
+ it 'runs callbacks repeatedly' do
47
+ @proxy.proof = 0
48
+ timer = @subject.add_periodic_timer 0.5 do
49
+ @proxy.proof = @proxy.proof + 1
50
+ @subject.cancel_timer(timer) if @proxy.proof > 2
51
+ end
52
+ wait 1.1 do
53
+ @proxy.proof.should >= 2
54
+ end
55
+ end
56
+ end
57
+
58
+ describe '.cancel_timer' do
59
+ it 'cancels timers' do
60
+ @proxy.proof = true
61
+ timer = @subject.add_timer 10.0 do
62
+ @proxy.proof = false
63
+ end
64
+ @subject.cancel_timer(timer)
65
+ @proxy.proof.should == true
66
+ end
67
+
68
+ it 'cancels periodic timers' do
69
+ @proxy.proof = true
70
+ timer = @subject.add_periodic_timer 10.0 do
71
+ @proxy.proof = false
72
+ end
73
+ @subject.cancel_timer(timer)
74
+ @proxy.proof.should == true
75
+ end
76
+ end
77
+
78
+ describe '.defer' do
79
+ it 'defers the operation' do
80
+ @proxy.proof = false
81
+ @subject.defer do
82
+ @proxy.proof = true
83
+ end
84
+ @proxy.proof.should == false
85
+ wait 0.5 do
86
+ @proxy.proof.should == true
87
+ end
88
+ end
89
+
90
+ it 'calls the callback after the operation finishes' do
91
+ @proxy.proof = false
92
+ cb = proc do |result|
93
+ @proxy.proof = result
94
+ end
95
+ op = proc do
96
+ true
97
+ end
98
+ @subject.defer(op,cb)
99
+ wait 0.5 do
100
+ @proxy.proof.should == true
101
+ end
102
+ end
103
+ end
104
+
105
+ describe '.schedule' do
106
+ it 'defers the operation' do
107
+ @proxy.proof = false
108
+ @subject.schedule do
109
+ @proxy.proof = true
110
+ end
111
+ @proxy.proof.should == false
112
+ wait 0.5 do
113
+ @proxy.proof.should == true
114
+ end
115
+ end
116
+
117
+ # I wish these specs would run, but they kill RubyMotion. *sad face*
118
+
119
+ # it 'runs the operation on the reactor queue' do
120
+ # @proxy.proof = false
121
+ # @subject.schedule do
122
+ # @proxy.proof = ::Reactor::Queue.current.to_s
123
+ # end
124
+ # wait 0.75 do
125
+ # @proxy.proof.should == "#{NSBundle.mainBundle.bundleIdentifier}.reactor"
126
+ # end
127
+ # end
128
+
129
+ # it 'runs the callback on the main queue' do
130
+ # @proxy.proof = false
131
+ # @subject.schedule do
132
+ # @proxy.proof = ::Reactor::Queue.current.to_s
133
+ # end
134
+ # wait 0.75 do
135
+ # @proxy.proof.should == ::Reactor::Queue.main.to_s
136
+ # end
137
+ # end
138
+ end
139
+
140
+ describe '.schedule_on_main' do
141
+ it 'defers the operation' do
142
+ @proxy.proof = false
143
+ @subject.schedule do
144
+ @proxy.proof = true
145
+ end
146
+ @proxy.proof.should == false
147
+ wait 0.5 do
148
+ @proxy.proof.should == true
149
+ end
150
+ end
151
+
152
+ # it 'runs the operation on the main queue' do
153
+ # @proxy.proof = false
154
+ # @subject.schedule do
155
+ # @proxy.proof = ::Reactor::Queue.current.to_s
156
+ # end
157
+ # wait 0.75 do
158
+ # @proxy.proof.should == ::Reactor::Queue.main.to_s
159
+ # end
160
+ # end
161
+ end
162
+
163
+ end
@@ -0,0 +1,36 @@
1
+ describe "RSSParser" do
2
+
3
+ before do
4
+ @feed_url = 'https://raw.github.com/gist/2952427/9f1522cbe5d77a72c7c96c4fdb4b77bd58d7681e/atom.xml'
5
+ @ns_url = NSURL.alloc.initWithString(@feed_url)
6
+ @local_feed = File.join(App.resources_path, 'atom.xml')
7
+ end
8
+
9
+ describe "initialization" do
10
+
11
+ it "works with a string representing an url" do
12
+ parser = BW::RSSParser.new(@feed_url)
13
+ parser.source.class.should.equal NSURL
14
+ parser.source.absoluteString.should.equal @feed_url
15
+ end
16
+
17
+ it "works with a NSURL instance" do
18
+ parser = BW::RSSParser.new(@ns_url)
19
+ parser.source.class.should.equal NSURL
20
+ parser.source.absoluteString.should.equal @feed_url
21
+ end
22
+
23
+ # it "works with some data" do
24
+ # feed_data_string = File.read(@local_feed)
25
+ # parser = BW::RSSParser.new(feed_data_string, true)
26
+ # parser.source.class.should.equal NSData
27
+ # parser.source.to_str.should.equal @feed_data_string
28
+ # parser = BW::RSSParser.new(@feed_data_string.to_data, true)
29
+ # parser.source.class.should.equal NSURL
30
+ # parser.source.class.should.equal NSData
31
+ # parser.source.to_str.should.equal @feed_data_string
32
+ # end
33
+ end
34
+
35
+ end
36
+
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bubble-wrap
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -11,11 +11,11 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2012-06-12 00:00:00.000000000 Z
14
+ date: 2012-07-11 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: bacon
18
- requirement: &70246769796440 !ruby/object:Gem::Requirement
18
+ requirement: &70234673289720 !ruby/object:Gem::Requirement
19
19
  none: false
20
20
  requirements:
21
21
  - - ! '>='
@@ -23,10 +23,10 @@ dependencies:
23
23
  version: '0'
24
24
  type: :development
25
25
  prerelease: false
26
- version_requirements: *70246769796440
26
+ version_requirements: *70234673289720
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: mocha-on-bacon
29
- requirement: &70246769811720 !ruby/object:Gem::Requirement
29
+ requirement: &70234673289140 !ruby/object:Gem::Requirement
30
30
  none: false
31
31
  requirements:
32
32
  - - ! '>='
@@ -34,10 +34,10 @@ dependencies:
34
34
  version: '0'
35
35
  type: :development
36
36
  prerelease: false
37
- version_requirements: *70246769811720
37
+ version_requirements: *70234673289140
38
38
  - !ruby/object:Gem::Dependency
39
39
  name: rake
40
- requirement: &70246769810980 !ruby/object:Gem::Requirement
40
+ requirement: &70234673288260 !ruby/object:Gem::Requirement
41
41
  none: false
42
42
  requirements:
43
43
  - - ! '>='
@@ -45,7 +45,7 @@ dependencies:
45
45
  version: '0'
46
46
  type: :development
47
47
  prerelease: false
48
- version_requirements: *70246769810980
48
+ version_requirements: *70234673288260
49
49
  description: RubyMotion wrappers and helpers (Ruby for iOS) - Making Cocoa APIs more
50
50
  Ruby like, one API at a time. Fork away and send your pull request.
51
51
  email:
@@ -60,25 +60,43 @@ extra_rdoc_files:
60
60
  - motion/core.rb
61
61
  - motion/core/app.rb
62
62
  - motion/core/device.rb
63
+ - motion/core/device/camera.rb
64
+ - motion/core/device/camera_wrapper.rb
63
65
  - motion/core/device/screen.rb
64
- - motion/core/gestures.rb
65
66
  - motion/core/json.rb
66
67
  - motion/core/kvo.rb
67
68
  - motion/core/ns_index_path.rb
68
69
  - motion/core/ns_notification_center.rb
70
+ - motion/core/ns_url_request.rb
69
71
  - motion/core/ns_user_defaults.rb
70
72
  - motion/core/persistence.rb
71
73
  - motion/core/pollute.rb
72
74
  - motion/core/string.rb
73
75
  - motion/core/time.rb
74
- - motion/core/ui_control.rb
75
- - motion/core/ui_view_controller.rb
76
76
  - motion/http.rb
77
+ - motion/location/location.rb
78
+ - motion/location/pollute.rb
79
+ - motion/reactor.rb
80
+ - motion/reactor/default_deferrable.rb
81
+ - motion/reactor/deferrable.rb
82
+ - motion/reactor/eventable.rb
83
+ - motion/reactor/future.rb
84
+ - motion/reactor/periodic_timer.rb
85
+ - motion/reactor/queue.rb
86
+ - motion/reactor/timer.rb
87
+ - motion/rss_parser.rb
88
+ - motion/shortcut.rb
77
89
  - motion/test_suite_delegate.rb
90
+ - motion/ui/gestures.rb
91
+ - motion/ui/pollute.rb
92
+ - motion/ui/ui_control.rb
93
+ - motion/ui/ui_view_controller.rb
78
94
  - spec/lib/bubble-wrap/ext/motion_project_app_spec.rb
79
95
  - spec/lib/bubble-wrap/ext/motion_project_config_spec.rb
80
96
  - spec/lib/motion_stub.rb
81
97
  - spec/motion/core/app_spec.rb
98
+ - spec/motion/core/device/camera_spec.rb
99
+ - spec/motion/core/device/camera_wrapper_spec.rb
82
100
  - spec/motion/core/device/screen_spec.rb
83
101
  - spec/motion/core/device_spec.rb
84
102
  - spec/motion/core/gestures_spec.rb
@@ -92,46 +110,75 @@ extra_rdoc_files:
92
110
  - spec/motion/core/ui_control_spec.rb
93
111
  - spec/motion/core_spec.rb
94
112
  - spec/motion/http_spec.rb
113
+ - spec/motion/location/location_spec.rb
114
+ - spec/motion/reactor/eventable_spec.rb
115
+ - spec/motion/reactor_spec.rb
116
+ - spec/motion/rss_parser_spec.rb
95
117
  files:
96
118
  - .gitignore
119
+ - .yardopts
97
120
  - CHANGELOG.md
98
121
  - GEM.md
99
122
  - GETTING_STARTED.md
100
123
  - Gemfile
124
+ - Gemfile.lock
101
125
  - HACKING.md
102
126
  - LICENSE
103
127
  - README.md
104
128
  - Rakefile
105
129
  - bubble-wrap.gemspec
106
130
  - lib/bubble-wrap.rb
131
+ - lib/bubble-wrap/all.rb
132
+ - lib/bubble-wrap/camera.rb
107
133
  - lib/bubble-wrap/core.rb
108
134
  - lib/bubble-wrap/ext.rb
109
135
  - lib/bubble-wrap/ext/motion_project_app.rb
110
136
  - lib/bubble-wrap/ext/motion_project_config.rb
111
137
  - lib/bubble-wrap/http.rb
112
138
  - lib/bubble-wrap/loader.rb
139
+ - lib/bubble-wrap/location.rb
140
+ - lib/bubble-wrap/reactor.rb
113
141
  - lib/bubble-wrap/requirement.rb
114
142
  - lib/bubble-wrap/requirement/path_manipulation.rb
143
+ - lib/bubble-wrap/rss_parser.rb
115
144
  - lib/bubble-wrap/test.rb
145
+ - lib/bubble-wrap/ui.rb
116
146
  - lib/bubble-wrap/version.rb
117
147
  - motion/core.rb
118
148
  - motion/core/app.rb
119
149
  - motion/core/device.rb
150
+ - motion/core/device/camera.rb
151
+ - motion/core/device/camera_wrapper.rb
120
152
  - motion/core/device/screen.rb
121
- - motion/core/gestures.rb
122
153
  - motion/core/json.rb
123
154
  - motion/core/kvo.rb
124
155
  - motion/core/ns_index_path.rb
125
156
  - motion/core/ns_notification_center.rb
157
+ - motion/core/ns_url_request.rb
126
158
  - motion/core/ns_user_defaults.rb
127
159
  - motion/core/persistence.rb
128
160
  - motion/core/pollute.rb
129
161
  - motion/core/string.rb
130
162
  - motion/core/time.rb
131
- - motion/core/ui_control.rb
132
- - motion/core/ui_view_controller.rb
133
163
  - motion/http.rb
164
+ - motion/location/location.rb
165
+ - motion/location/pollute.rb
166
+ - motion/reactor.rb
167
+ - motion/reactor/default_deferrable.rb
168
+ - motion/reactor/deferrable.rb
169
+ - motion/reactor/eventable.rb
170
+ - motion/reactor/future.rb
171
+ - motion/reactor/periodic_timer.rb
172
+ - motion/reactor/queue.rb
173
+ - motion/reactor/timer.rb
174
+ - motion/rss_parser.rb
175
+ - motion/shortcut.rb
134
176
  - motion/test_suite_delegate.rb
177
+ - motion/ui/gestures.rb
178
+ - motion/ui/pollute.rb
179
+ - motion/ui/ui_control.rb
180
+ - motion/ui/ui_view_controller.rb
181
+ - resources/atom.xml
135
182
  - spec/lib/bubble-wrap/ext/motion_project_app_spec.rb
136
183
  - spec/lib/bubble-wrap/ext/motion_project_config_spec.rb
137
184
  - spec/lib/bubble-wrap/requirement/path_manipulation_spec.rb
@@ -139,6 +186,8 @@ files:
139
186
  - spec/lib/bubble-wrap_spec.rb
140
187
  - spec/lib/motion_stub.rb
141
188
  - spec/motion/core/app_spec.rb
189
+ - spec/motion/core/device/camera_spec.rb
190
+ - spec/motion/core/device/camera_wrapper_spec.rb
142
191
  - spec/motion/core/device/screen_spec.rb
143
192
  - spec/motion/core/device_spec.rb
144
193
  - spec/motion/core/gestures_spec.rb
@@ -152,6 +201,10 @@ files:
152
201
  - spec/motion/core/ui_control_spec.rb
153
202
  - spec/motion/core_spec.rb
154
203
  - spec/motion/http_spec.rb
204
+ - spec/motion/location/location_spec.rb
205
+ - spec/motion/reactor/eventable_spec.rb
206
+ - spec/motion/reactor_spec.rb
207
+ - spec/motion/rss_parser_spec.rb
155
208
  homepage: http://bubblewrap.io/
156
209
  licenses: []
157
210
  post_install_message:
@@ -166,7 +219,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
166
219
  version: '0'
167
220
  segments:
168
221
  - 0
169
- hash: -3665187214777741337
222
+ hash: -2985939029825210852
170
223
  required_rubygems_version: !ruby/object:Gem::Requirement
171
224
  none: false
172
225
  requirements:
@@ -175,7 +228,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
175
228
  version: '0'
176
229
  segments:
177
230
  - 0
178
- hash: -3665187214777741337
231
+ hash: -2985939029825210852
179
232
  requirements: []
180
233
  rubyforge_project:
181
234
  rubygems_version: 1.8.16
@@ -191,6 +244,8 @@ test_files:
191
244
  - spec/lib/bubble-wrap_spec.rb
192
245
  - spec/lib/motion_stub.rb
193
246
  - spec/motion/core/app_spec.rb
247
+ - spec/motion/core/device/camera_spec.rb
248
+ - spec/motion/core/device/camera_wrapper_spec.rb
194
249
  - spec/motion/core/device/screen_spec.rb
195
250
  - spec/motion/core/device_spec.rb
196
251
  - spec/motion/core/gestures_spec.rb
@@ -204,3 +259,7 @@ test_files:
204
259
  - spec/motion/core/ui_control_spec.rb
205
260
  - spec/motion/core_spec.rb
206
261
  - spec/motion/http_spec.rb
262
+ - spec/motion/location/location_spec.rb
263
+ - spec/motion/reactor/eventable_spec.rb
264
+ - spec/motion/reactor_spec.rb
265
+ - spec/motion/rss_parser_spec.rb