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.
- data/.gitignore +0 -1
- data/.yardopts +2 -0
- data/CHANGELOG.md +15 -0
- data/Gemfile +1 -1
- data/Gemfile.lock +24 -0
- data/HACKING.md +2 -2
- data/README.md +363 -21
- data/Rakefile +6 -2
- data/lib/bubble-wrap.rb +0 -1
- data/lib/bubble-wrap/all.rb +4 -0
- data/lib/bubble-wrap/camera.rb +7 -0
- data/lib/bubble-wrap/core.rb +3 -2
- data/lib/bubble-wrap/ext/motion_project_app.rb +2 -2
- data/lib/bubble-wrap/http.rb +1 -0
- data/lib/bubble-wrap/loader.rb +19 -12
- data/lib/bubble-wrap/location.rb +6 -0
- data/lib/bubble-wrap/reactor.rb +10 -0
- data/lib/bubble-wrap/requirement.rb +11 -3
- data/lib/bubble-wrap/rss_parser.rb +2 -0
- data/lib/bubble-wrap/ui.rb +4 -0
- data/lib/bubble-wrap/version.rb +1 -1
- data/motion/core.rb +8 -2
- data/motion/core/app.rb +34 -6
- data/motion/core/device.rb +10 -1
- data/motion/core/device/camera.rb +219 -0
- data/motion/core/device/camera_wrapper.rb +45 -0
- data/motion/core/ns_url_request.rb +10 -0
- data/motion/core/persistence.rb +7 -0
- data/motion/core/pollute.rb +1 -2
- data/motion/core/string.rb +23 -0
- data/motion/http.rb +142 -83
- data/motion/location/location.rb +152 -0
- data/motion/location/pollute.rb +5 -0
- data/motion/reactor.rb +105 -0
- data/motion/reactor/default_deferrable.rb +9 -0
- data/motion/reactor/deferrable.rb +126 -0
- data/motion/reactor/eventable.rb +24 -0
- data/motion/reactor/future.rb +22 -0
- data/motion/reactor/periodic_timer.rb +27 -0
- data/motion/reactor/queue.rb +60 -0
- data/motion/reactor/timer.rb +25 -0
- data/motion/rss_parser.rb +131 -0
- data/motion/shortcut.rb +18 -0
- data/motion/{core → ui}/gestures.rb +15 -9
- data/motion/ui/pollute.rb +5 -0
- data/motion/{core → ui}/ui_control.rb +0 -0
- data/motion/{core → ui}/ui_view_controller.rb +0 -0
- data/resources/atom.xml +1705 -0
- data/spec/lib/bubble-wrap/ext/motion_project_app_spec.rb +7 -11
- data/spec/lib/bubble-wrap/requirement_spec.rb +4 -4
- data/spec/lib/bubble-wrap_spec.rb +2 -2
- data/spec/motion/core/app_spec.rb +118 -14
- data/spec/motion/core/device/camera_spec.rb +130 -0
- data/spec/motion/core/device/camera_wrapper_spec.rb +45 -0
- data/spec/motion/core/device_spec.rb +0 -50
- data/spec/motion/core/gestures_spec.rb +5 -0
- data/spec/motion/core/persistence_spec.rb +24 -2
- data/spec/motion/core/string_spec.rb +55 -0
- data/spec/motion/core_spec.rb +72 -1
- data/spec/motion/http_spec.rb +100 -65
- data/spec/motion/location/location_spec.rb +152 -0
- data/spec/motion/reactor/eventable_spec.rb +40 -0
- data/spec/motion/reactor_spec.rb +163 -0
- data/spec/motion/rss_parser_spec.rb +36 -0
- 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.
|
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-
|
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: &
|
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: *
|
26
|
+
version_requirements: *70234673289720
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: mocha-on-bacon
|
29
|
-
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: *
|
37
|
+
version_requirements: *70234673289140
|
38
38
|
- !ruby/object:Gem::Dependency
|
39
39
|
name: rake
|
40
|
-
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: *
|
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: -
|
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: -
|
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
|