bubble-wrap 1.1.5 → 1.2.0.pre
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 +15 -0
- data/.travis.yml +2 -0
- data/CHANGELOG.md +25 -1
- data/Gemfile.lock +1 -1
- data/README.md +126 -5
- data/lib/bubble-wrap/all.rb +1 -1
- data/lib/bubble-wrap/camera.rb +2 -1
- data/lib/bubble-wrap/core.rb +1 -2
- data/lib/bubble-wrap/font.rb +2 -0
- data/lib/bubble-wrap/location.rb +2 -0
- data/lib/bubble-wrap/version.rb +1 -1
- data/motion/core/app.rb +17 -0
- data/motion/core/device/camera.rb +5 -25
- data/motion/font/font.rb +85 -0
- data/motion/http.rb +32 -12
- data/motion/location/location.rb +19 -17
- data/motion/reactor.rb +7 -2
- data/motion/reactor/eventable.rb +14 -4
- data/motion/reactor/periodic_timer.rb +9 -3
- data/motion/ui/ui_bar_button_item.rb +99 -0
- data/motion/util/constants.rb +38 -0
- data/resources/test.mp3 +0 -0
- data/samples/camera/Gemfile +1 -1
- data/samples/camera/app/app_delegate.rb +1 -1
- data/samples/camera/app/controllers/camera_controller.rb +32 -47
- data/spec/motion/core/app_spec.rb +24 -0
- data/spec/motion/core/ui_bar_button_item_spec.rb +454 -0
- data/spec/motion/font/font_spec.rb +54 -0
- data/spec/motion/http_spec.rb +83 -9
- data/spec/motion/location/location_spec.rb +22 -1
- data/spec/motion/reactor/eventable_spec.rb +15 -0
- data/spec/motion/reactor_spec.rb +32 -0
- data/spec/motion/util/constants_spec.rb +26 -0
- metadata +24 -18
@@ -0,0 +1,54 @@
|
|
1
|
+
describe BubbleWrap::Font do
|
2
|
+
[[:system, "systemFontOfSize:"], [:bold, "boldSystemFontOfSize:"], [:italic, "italicSystemFontOfSize:"]].each do |font, method|
|
3
|
+
describe ".#{font}" do
|
4
|
+
it "should work" do
|
5
|
+
f = BubbleWrap::Font.send(font, 16)
|
6
|
+
f.should == UIFont.send(method, 16)
|
7
|
+
|
8
|
+
f = BubbleWrap::Font.send(font)
|
9
|
+
f.should == UIFont.send(method, UIFont.systemFontSize)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
describe ".make" do
|
15
|
+
it "should work with UIFont" do
|
16
|
+
BubbleWrap::Font.new(UIFont.boldSystemFontOfSize(12)).should == UIFont.boldSystemFontOfSize(12)
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should work with string" do
|
20
|
+
BubbleWrap::Font.new("Helvetica").should == UIFont.fontWithName("Helvetica", size: UIFont.systemFontSize)
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should work with string and size" do
|
24
|
+
BubbleWrap::Font.new("Helvetica", 18).should == UIFont.fontWithName("Helvetica", size: 18)
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should work with string and hash" do
|
28
|
+
BubbleWrap::Font.new("Helvetica", size: 16).should == UIFont.fontWithName("Helvetica", size: 16)
|
29
|
+
end
|
30
|
+
|
31
|
+
it "should work with hash" do
|
32
|
+
BubbleWrap::Font.new(name: "Chalkduster", size: 16).should == UIFont.fontWithName("Chalkduster", size: 16)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
describe ".named" do
|
37
|
+
it "should work" do
|
38
|
+
BubbleWrap::Font.named("Helvetica").should == UIFont.fontWithName("Helvetica", size: UIFont.systemFontSize)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
describe ".attributes" do
|
43
|
+
it "should work" do
|
44
|
+
_attributes = BubbleWrap::Font.attributes(font: UIFont.systemFontOfSize(12), color: "red", shadow_color: "blue", shadow_offset: {x: 5, y: 10})
|
45
|
+
|
46
|
+
_attributes.should == {
|
47
|
+
UITextAttributeFont => UIFont.systemFontOfSize(12),
|
48
|
+
UITextAttributeTextColor => UIColor.redColor,
|
49
|
+
UITextAttributeTextShadowColor => UIColor.blueColor,
|
50
|
+
UITextAttributeTextShadowOffset => NSValue.valueWithUIOffset(UIOffsetMake(5, 10))
|
51
|
+
}
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
data/spec/motion/http_spec.rb
CHANGED
@@ -154,8 +154,8 @@ describe "HTTP" do
|
|
154
154
|
@options = {
|
155
155
|
headers: @headers,
|
156
156
|
}
|
157
|
-
|
158
|
-
|
157
|
+
query = BubbleWrap::HTTP::Query.new( @localhost_url , :get, @options )
|
158
|
+
query.should.not.be.nil
|
159
159
|
end
|
160
160
|
|
161
161
|
describe "When initialized" do
|
@@ -219,7 +219,7 @@ describe "HTTP" do
|
|
219
219
|
end
|
220
220
|
|
221
221
|
it "should set payload from options{} to @payload" do
|
222
|
-
payload = "user
|
222
|
+
payload = "user%5Bname%5D=marin&user%5Bsurname%5D=usalj&twitter=%40mneorr&website=mneorr.com&values%5B%5D=apple&values%5B%5D=orange&values%5B%5D=peach&credentials%5Busername%5D=mneorr&credentials%5Bpassword%5D=123456xx%21%40crazy"
|
223
223
|
@query.instance_variable_get(:@payload).should.equal payload
|
224
224
|
@options.should.not.has_key? :payload
|
225
225
|
end
|
@@ -248,6 +248,35 @@ describe "HTTP" do
|
|
248
248
|
end
|
249
249
|
end
|
250
250
|
|
251
|
+
it "processes filenames from file hashes" do
|
252
|
+
files = {
|
253
|
+
upload: {data: sample_data, filename: "test.txt"}
|
254
|
+
}
|
255
|
+
query = BubbleWrap::HTTP::Query.new(@fake_url, :post, {files: files})
|
256
|
+
uuid = query.instance_variable_get(:@boundary)
|
257
|
+
real_payload = NSString.alloc.initWithData(query.request.HTTPBody, encoding:NSUTF8StringEncoding)
|
258
|
+
real_payload.should.equal "--#{uuid}\r\nContent-Disposition: form-data; name=\"upload\"; filename=\"test.txt\"\r\nContent-Type: application/octet-stream\r\n\r\ntwitter:@mneorr\r\n--#{uuid}--\r\n"
|
259
|
+
end
|
260
|
+
|
261
|
+
it "processes filenames from file hashes, using the name when the filename is missing" do
|
262
|
+
files = {
|
263
|
+
upload: {data: sample_data}
|
264
|
+
}
|
265
|
+
query = BubbleWrap::HTTP::Query.new(@fake_url, :post, {files: files})
|
266
|
+
uuid = query.instance_variable_get(:@boundary)
|
267
|
+
real_payload = NSString.alloc.initWithData(query.request.HTTPBody, encoding:NSUTF8StringEncoding)
|
268
|
+
real_payload.should.equal "--#{uuid}\r\nContent-Disposition: form-data; name=\"upload\"; filename=\"upload\"\r\nContent-Type: application/octet-stream\r\n\r\ntwitter:@mneorr\r\n--#{uuid}--\r\n"
|
269
|
+
end
|
270
|
+
|
271
|
+
it "throws an error for invalid file parameters" do
|
272
|
+
files = {
|
273
|
+
twitter: {filename: "test.txt", data: nil}
|
274
|
+
}
|
275
|
+
lambda {
|
276
|
+
BW::HTTP::Query.new("http://example.com", :post, { files: files})
|
277
|
+
}.should.raise InvalidFileError
|
278
|
+
end
|
279
|
+
|
251
280
|
it "sets the HTTPBody DATA to @request for all methods except GET and HEAD" do
|
252
281
|
payload = { name: 'apple', model: 'macbook'}
|
253
282
|
files = { twitter: sample_data, site: "mneorr.com".dataUsingEncoding(NSUTF8StringEncoding) }
|
@@ -336,7 +365,7 @@ describe "HTTP" do
|
|
336
365
|
end
|
337
366
|
|
338
367
|
it "should call initiate_request with the URL passed in" do
|
339
|
-
processed_url = "http://localhost?user%5Bname%5D=marin&user%5Bsurname%5D=usalj&twitter
|
368
|
+
processed_url = "http://localhost?user%5Bname%5D=marin&user%5Bsurname%5D=usalj&twitter=%40mneorr&website=mneorr.com&values%5B%5D=apple&values%5B%5D=orange&values%5B%5D=peach&credentials%5Busername%5D=mneorr&credentials%5Bpassword%5D=123456xx%21%40crazy"
|
340
369
|
@query.instance_variable_get(:@url).description.should.equal processed_url
|
341
370
|
end
|
342
371
|
|
@@ -583,6 +612,24 @@ describe "HTTP" do
|
|
583
612
|
end
|
584
613
|
end
|
585
614
|
|
615
|
+
it "should always allow canonical redirects" do
|
616
|
+
@query.options.update({:no_redirect => 1})
|
617
|
+
request = @query.connection(nil, willSendRequest:@request, redirectResponse:nil)
|
618
|
+
request.should.equal @request
|
619
|
+
end
|
620
|
+
|
621
|
+
it "should disallow non-canonical redirects if requested not to" do
|
622
|
+
@query.options.update({:no_redirect => 1})
|
623
|
+
request = @query.connection(nil, willSendRequest:@request, redirectResponse:"monkey")
|
624
|
+
request.should.equal nil
|
625
|
+
end
|
626
|
+
|
627
|
+
it "should allow non-canonical redirects by default" do
|
628
|
+
@query.options.delete(:no_redirect)
|
629
|
+
request = @query.connection(nil, willSendRequest:@request, redirectResponse:"monkey")
|
630
|
+
request.should.equal @request
|
631
|
+
end
|
632
|
+
|
586
633
|
describe "after 30 redirects" do
|
587
634
|
before do
|
588
635
|
31.times do
|
@@ -603,6 +650,15 @@ describe "HTTP" do
|
|
603
650
|
end
|
604
651
|
end
|
605
652
|
|
653
|
+
it "should update the request URL after redirecting by default" do
|
654
|
+
query = BubbleWrap::HTTP::Query.new( @localhost_url , :get, {} )
|
655
|
+
redirected_request = NSMutableURLRequest.requestWithURL NSURL.URLWithString('http://expanded.local/')
|
656
|
+
query.connection(nil, willSendRequest:redirected_request, redirectResponse:nil)
|
657
|
+
query.connectionDidFinishLoading(nil)
|
658
|
+
query.response.url.absoluteString.should.equal redirected_request.URL.absoluteString
|
659
|
+
query.response.original_url.absoluteString.should.equal @localhost_url
|
660
|
+
end
|
661
|
+
|
606
662
|
end
|
607
663
|
|
608
664
|
describe "didReceiveAuthenticationChallenge" do
|
@@ -630,8 +686,8 @@ describe "HTTP" do
|
|
630
686
|
|
631
687
|
it 'should continue without credentials when no credentials provided' do
|
632
688
|
@options.delete :credentials
|
633
|
-
|
634
|
-
|
689
|
+
query = BubbleWrap::HTTP::Query.new( @localhost_url , :get, @options )
|
690
|
+
query.connection(nil, didReceiveAuthenticationChallenge:@challenge)
|
635
691
|
@challenge.sender.continue_without_credential.should.equal true
|
636
692
|
end
|
637
693
|
|
@@ -640,18 +696,36 @@ describe "HTTP" do
|
|
640
696
|
describe "properly format payload to url get query string" do
|
641
697
|
|
642
698
|
before do
|
643
|
-
@payload = {"we love" => '#==Rock&Roll==#', "radio" => "Ga Ga", "qual" => 3.0, "incr" => -1}
|
699
|
+
@payload = {"we love" => '#==Rock&Roll==#', "radio" => "Ga Ga", "qual" => 3.0, "incr" => -1, "RFC3986" => "!*'();:@&=+$,/?%#[]"}
|
644
700
|
@url_string = 'http://fake.url/method'
|
645
701
|
@get_query = BubbleWrap::HTTP::Query.new( @url_string, :get, :payload => @payload)
|
646
|
-
@escaped_url = "http://fake.url/method?we%20love=%23%3D%3DRock%26Roll%3D%3D%23&radio=Ga%20Ga&qual=3.0&incr=-1"
|
702
|
+
@escaped_url = "http://fake.url/method?we%20love=%23%3D%3DRock%26Roll%3D%3D%23&radio=Ga%20Ga&qual=3.0&incr=-1&RFC3986=%21%2A%27%28%29%3B%3A%40%26%3D%2B%24%2C%2F%3F%25%23%5B%5D"
|
647
703
|
end
|
648
704
|
|
649
|
-
it "should escape
|
705
|
+
it "should escape !*'();:@&=+$,/?%#[] characters only in keys and values" do
|
650
706
|
@get_query.instance_variable_get(:@url).description.should.equal @escaped_url
|
651
707
|
end
|
652
708
|
|
653
709
|
end
|
654
710
|
|
711
|
+
describe 'properly support cookie-option for nsmutableurlrequest' do
|
712
|
+
|
713
|
+
before do
|
714
|
+
@no_cookie_query = BubbleWrap::HTTP::Query.new("http://haz-no-cookiez.url", :get, {:payload => {:something => "else"}, :cookies => false})
|
715
|
+
@cookie_query = BubbleWrap::HTTP::Query.new("http://haz-cookiez.url", :get, :payload => {:something => "else"})
|
716
|
+
end
|
717
|
+
|
718
|
+
it 'should disabled cookie-usage on nsurlrequest' do
|
719
|
+
@no_cookie_query.instance_variable_get(:@request).HTTPShouldHandleCookies.should.equal false
|
720
|
+
end
|
721
|
+
|
722
|
+
it 'should keep sane cookie-related defaults on nsurlrequest' do
|
723
|
+
@cookie_query.instance_variable_get(:@request).HTTPShouldHandleCookies.should.equal true
|
724
|
+
end
|
725
|
+
|
726
|
+
|
727
|
+
end
|
728
|
+
|
655
729
|
class FakeSender
|
656
730
|
attr_reader :challenge, :credential, :was_cancelled, :continue_without_credential
|
657
731
|
def cancelAuthenticationChallenge(challenge)
|
@@ -14,7 +14,7 @@ class CLLocationManager
|
|
14
14
|
|
15
15
|
def self.locationServicesEnabled
|
16
16
|
return true if @enabled.nil?
|
17
|
-
@enabled
|
17
|
+
@enabled
|
18
18
|
end
|
19
19
|
|
20
20
|
def startUpdatingLocation
|
@@ -101,6 +101,27 @@ describe BubbleWrap::Location do
|
|
101
101
|
end
|
102
102
|
end
|
103
103
|
|
104
|
+
describe ".get_once" do
|
105
|
+
it "should have correct location when succeeding" do
|
106
|
+
to = CLLocation.alloc.initWithLatitude(100, longitude: 50)
|
107
|
+
from = CLLocation.alloc.initWithLatitude(100, longitude: 49)
|
108
|
+
|
109
|
+
@number_times = 0
|
110
|
+
BW::Location.get_once do |location|
|
111
|
+
location.longitude.should == 50
|
112
|
+
location.latitude.should == 100
|
113
|
+
@number_times += 1
|
114
|
+
end
|
115
|
+
|
116
|
+
BW::Location.locationManager(location_manager, didUpdateToLocation: to, fromLocation: from)
|
117
|
+
|
118
|
+
to = CLLocation.alloc.initWithLatitude(0, longitude: 0)
|
119
|
+
from = CLLocation.alloc.initWithLatitude(0, longitude: 0)
|
120
|
+
BW::Location.locationManager(location_manager, didUpdateToLocation: to, fromLocation: from)
|
121
|
+
@number_times.should == 1
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
104
125
|
describe ".get_significant" do
|
105
126
|
before do
|
106
127
|
reset
|
@@ -15,6 +15,21 @@ describe BubbleWrap::Reactor::Eventable do
|
|
15
15
|
events = @subject.instance_variable_get(:@events)
|
16
16
|
events[:foo].member?(proof).should == true
|
17
17
|
end
|
18
|
+
|
19
|
+
it 'returns the array of blocks for the event' do
|
20
|
+
proof = proc { }
|
21
|
+
@subject.on(:foo, &proof).should == [proof]
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
describe '.off' do
|
26
|
+
it 'unregisters events' do
|
27
|
+
proof = proc { }
|
28
|
+
@subject.on(:foo, &proof)
|
29
|
+
events = @subject.instance_variable_get(:@events)
|
30
|
+
@subject.off(:foo, &proof)
|
31
|
+
events[:foo].member?(proof).should == false
|
32
|
+
end
|
18
33
|
end
|
19
34
|
|
20
35
|
describe '.trigger' do
|
data/spec/motion/reactor_spec.rb
CHANGED
@@ -53,6 +53,29 @@ describe BubbleWrap::Reactor do
|
|
53
53
|
@proxy.proof.should >= 2
|
54
54
|
end
|
55
55
|
end
|
56
|
+
|
57
|
+
it 'accepts non-block callbacks' do
|
58
|
+
@proxy.proof = 0
|
59
|
+
callback = lambda {
|
60
|
+
@proxy.proof = @proxy.proof + 1
|
61
|
+
@subject.cancel_timer(@timer) if @proxy.proof > 2
|
62
|
+
}
|
63
|
+
@timer = @subject.add_periodic_timer 0.5, callback
|
64
|
+
wait 1.1 do
|
65
|
+
@proxy.proof.should >= 2
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
it 'runs callbacks repeatedly in common runloop modes' do
|
70
|
+
@proxy.proof = 0
|
71
|
+
@timer = @subject.add_periodic_timer 0.5, :common_modes => true do
|
72
|
+
@proxy.proof = @proxy.proof + 1
|
73
|
+
@subject.cancel_timer(@timer) if @proxy.proof > 2
|
74
|
+
end
|
75
|
+
wait 1.1 do
|
76
|
+
@proxy.proof.should >= 2
|
77
|
+
end
|
78
|
+
end
|
56
79
|
end
|
57
80
|
|
58
81
|
describe '.cancel_timer' do
|
@@ -73,6 +96,15 @@ describe BubbleWrap::Reactor do
|
|
73
96
|
@subject.cancel_timer(timer)
|
74
97
|
@proxy.proof.should == true
|
75
98
|
end
|
99
|
+
|
100
|
+
it 'cancels common modes periodic timers' do
|
101
|
+
@proxy.proof = true
|
102
|
+
timer = @subject.add_periodic_timer 10.0, :common_modes => true do
|
103
|
+
@proxy.proof = false
|
104
|
+
end
|
105
|
+
@subject.cancel_timer(timer)
|
106
|
+
@proxy.proof.should == true
|
107
|
+
end
|
76
108
|
end
|
77
109
|
|
78
110
|
describe '.defer' do
|
@@ -0,0 +1,26 @@
|
|
1
|
+
describe BubbleWrap::Constants do
|
2
|
+
describe ".get" do
|
3
|
+
BubbleWrap::Constants.register UIReturnKeyDone, UIReturnKeyNext
|
4
|
+
|
5
|
+
|
6
|
+
it "should return integer passed" do
|
7
|
+
BW::Constants.get("anything", 5).should == 5
|
8
|
+
end
|
9
|
+
|
10
|
+
it "should return integer for decimal passed" do
|
11
|
+
BW::Constants.get("anything", 5.0).should == 5
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should return the correct integer for a string" do
|
15
|
+
BW::Constants.get("UIReturnKey", "done").should == UIReturnKeyDone
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should return the correct integer for a symbol" do
|
19
|
+
BW::Constants.get("UIReturnKey", :done).should == UIReturnKeyDone
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should bitmask array values" do
|
23
|
+
BW::Constants.get("UIReturnKey", :done, :next).should == (UIReturnKeyDone | UIReturnKeyNext)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bubble-wrap
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
5
|
-
prerelease:
|
4
|
+
version: 1.2.0.pre
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Matt Aimonetti
|
@@ -15,12 +14,11 @@ authors:
|
|
15
14
|
autorequire:
|
16
15
|
bindir: bin
|
17
16
|
cert_chain: []
|
18
|
-
date: 2013-
|
17
|
+
date: 2013-04-19 00:00:00.000000000 Z
|
19
18
|
dependencies:
|
20
19
|
- !ruby/object:Gem::Dependency
|
21
20
|
name: mocha
|
22
21
|
requirement: !ruby/object:Gem::Requirement
|
23
|
-
none: false
|
24
22
|
requirements:
|
25
23
|
- - '='
|
26
24
|
- !ruby/object:Gem::Version
|
@@ -28,7 +26,6 @@ dependencies:
|
|
28
26
|
type: :development
|
29
27
|
prerelease: false
|
30
28
|
version_requirements: !ruby/object:Gem::Requirement
|
31
|
-
none: false
|
32
29
|
requirements:
|
33
30
|
- - '='
|
34
31
|
- !ruby/object:Gem::Version
|
@@ -36,7 +33,6 @@ dependencies:
|
|
36
33
|
- !ruby/object:Gem::Dependency
|
37
34
|
name: mocha-on-bacon
|
38
35
|
requirement: !ruby/object:Gem::Requirement
|
39
|
-
none: false
|
40
36
|
requirements:
|
41
37
|
- - ! '>='
|
42
38
|
- !ruby/object:Gem::Version
|
@@ -44,7 +40,6 @@ dependencies:
|
|
44
40
|
type: :development
|
45
41
|
prerelease: false
|
46
42
|
version_requirements: !ruby/object:Gem::Requirement
|
47
|
-
none: false
|
48
43
|
requirements:
|
49
44
|
- - ! '>='
|
50
45
|
- !ruby/object:Gem::Version
|
@@ -52,7 +47,6 @@ dependencies:
|
|
52
47
|
- !ruby/object:Gem::Dependency
|
53
48
|
name: bacon
|
54
49
|
requirement: !ruby/object:Gem::Requirement
|
55
|
-
none: false
|
56
50
|
requirements:
|
57
51
|
- - ! '>='
|
58
52
|
- !ruby/object:Gem::Version
|
@@ -60,7 +54,6 @@ dependencies:
|
|
60
54
|
type: :development
|
61
55
|
prerelease: false
|
62
56
|
version_requirements: !ruby/object:Gem::Requirement
|
63
|
-
none: false
|
64
57
|
requirements:
|
65
58
|
- - ! '>='
|
66
59
|
- !ruby/object:Gem::Version
|
@@ -68,7 +61,6 @@ dependencies:
|
|
68
61
|
- !ruby/object:Gem::Dependency
|
69
62
|
name: rake
|
70
63
|
requirement: !ruby/object:Gem::Requirement
|
71
|
-
none: false
|
72
64
|
requirements:
|
73
65
|
- - ! '>='
|
74
66
|
- !ruby/object:Gem::Version
|
@@ -76,7 +68,6 @@ dependencies:
|
|
76
68
|
type: :development
|
77
69
|
prerelease: false
|
78
70
|
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
none: false
|
80
71
|
requirements:
|
81
72
|
- - ! '>='
|
82
73
|
- !ruby/object:Gem::Version
|
@@ -112,6 +103,7 @@ extra_rdoc_files:
|
|
112
103
|
- motion/core/pollute.rb
|
113
104
|
- motion/core/string.rb
|
114
105
|
- motion/core/time.rb
|
106
|
+
- motion/font/font.rb
|
115
107
|
- motion/http.rb
|
116
108
|
- motion/location/location.rb
|
117
109
|
- motion/location/pollute.rb
|
@@ -130,8 +122,10 @@ extra_rdoc_files:
|
|
130
122
|
- motion/test_suite_delegate.rb
|
131
123
|
- motion/ui/gestures.rb
|
132
124
|
- motion/ui/pollute.rb
|
125
|
+
- motion/ui/ui_bar_button_item.rb
|
133
126
|
- motion/ui/ui_control.rb
|
134
127
|
- motion/ui/ui_view_controller.rb
|
128
|
+
- motion/util/constants.rb
|
135
129
|
- spec/lib/bubble-wrap/ext/motion_project_app_spec.rb
|
136
130
|
- spec/lib/bubble-wrap/ext/motion_project_config_spec.rb
|
137
131
|
- spec/lib/motion_stub.rb
|
@@ -148,16 +142,20 @@ extra_rdoc_files:
|
|
148
142
|
- spec/motion/core/persistence_spec.rb
|
149
143
|
- spec/motion/core/string_spec.rb
|
150
144
|
- spec/motion/core/time_spec.rb
|
145
|
+
- spec/motion/core/ui_bar_button_item_spec.rb
|
151
146
|
- spec/motion/core/ui_control_spec.rb
|
152
147
|
- spec/motion/core_spec.rb
|
148
|
+
- spec/motion/font/font_spec.rb
|
153
149
|
- spec/motion/http_spec.rb
|
154
150
|
- spec/motion/location/location_spec.rb
|
155
151
|
- spec/motion/media/player_spec.rb
|
156
152
|
- spec/motion/reactor/eventable_spec.rb
|
157
153
|
- spec/motion/reactor_spec.rb
|
158
154
|
- spec/motion/rss_parser_spec.rb
|
155
|
+
- spec/motion/util/constants_spec.rb
|
159
156
|
files:
|
160
157
|
- .gitignore
|
158
|
+
- .travis.yml
|
161
159
|
- .yardopts
|
162
160
|
- CHANGELOG.md
|
163
161
|
- GEM.md
|
@@ -176,6 +174,7 @@ files:
|
|
176
174
|
- lib/bubble-wrap/ext.rb
|
177
175
|
- lib/bubble-wrap/ext/motion_project_app.rb
|
178
176
|
- lib/bubble-wrap/ext/motion_project_config.rb
|
177
|
+
- lib/bubble-wrap/font.rb
|
179
178
|
- lib/bubble-wrap/http.rb
|
180
179
|
- lib/bubble-wrap/loader.rb
|
181
180
|
- lib/bubble-wrap/location.rb
|
@@ -203,6 +202,7 @@ files:
|
|
203
202
|
- motion/core/pollute.rb
|
204
203
|
- motion/core/string.rb
|
205
204
|
- motion/core/time.rb
|
205
|
+
- motion/font/font.rb
|
206
206
|
- motion/http.rb
|
207
207
|
- motion/location/location.rb
|
208
208
|
- motion/location/pollute.rb
|
@@ -221,8 +221,10 @@ files:
|
|
221
221
|
- motion/test_suite_delegate.rb
|
222
222
|
- motion/ui/gestures.rb
|
223
223
|
- motion/ui/pollute.rb
|
224
|
+
- motion/ui/ui_bar_button_item.rb
|
224
225
|
- motion/ui/ui_control.rb
|
225
226
|
- motion/ui/ui_view_controller.rb
|
227
|
+
- motion/util/constants.rb
|
226
228
|
- resources/atom.xml
|
227
229
|
- resources/test.mp3
|
228
230
|
- samples/camera/Gemfile
|
@@ -269,37 +271,39 @@ files:
|
|
269
271
|
- spec/motion/core/persistence_spec.rb
|
270
272
|
- spec/motion/core/string_spec.rb
|
271
273
|
- spec/motion/core/time_spec.rb
|
274
|
+
- spec/motion/core/ui_bar_button_item_spec.rb
|
272
275
|
- spec/motion/core/ui_control_spec.rb
|
273
276
|
- spec/motion/core_spec.rb
|
277
|
+
- spec/motion/font/font_spec.rb
|
274
278
|
- spec/motion/http_spec.rb
|
275
279
|
- spec/motion/location/location_spec.rb
|
276
280
|
- spec/motion/media/player_spec.rb
|
277
281
|
- spec/motion/reactor/eventable_spec.rb
|
278
282
|
- spec/motion/reactor_spec.rb
|
279
283
|
- spec/motion/rss_parser_spec.rb
|
284
|
+
- spec/motion/util/constants_spec.rb
|
280
285
|
homepage: http://bubblewrap.io/
|
281
286
|
licenses: []
|
287
|
+
metadata: {}
|
282
288
|
post_install_message:
|
283
289
|
rdoc_options: []
|
284
290
|
require_paths:
|
285
291
|
- lib
|
286
292
|
required_ruby_version: !ruby/object:Gem::Requirement
|
287
|
-
none: false
|
288
293
|
requirements:
|
289
294
|
- - ! '>='
|
290
295
|
- !ruby/object:Gem::Version
|
291
296
|
version: '0'
|
292
297
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
293
|
-
none: false
|
294
298
|
requirements:
|
295
|
-
- - ! '
|
299
|
+
- - ! '>'
|
296
300
|
- !ruby/object:Gem::Version
|
297
|
-
version:
|
301
|
+
version: 1.3.1
|
298
302
|
requirements: []
|
299
303
|
rubyforge_project:
|
300
|
-
rubygems_version:
|
304
|
+
rubygems_version: 2.0.3
|
301
305
|
signing_key:
|
302
|
-
specification_version:
|
306
|
+
specification_version: 4
|
303
307
|
summary: RubyMotion wrappers and helpers (Ruby for iOS) - Making Cocoa APIs more Ruby
|
304
308
|
like, one API at a time. Fork away and send your pull request.
|
305
309
|
test_files:
|
@@ -322,12 +326,14 @@ test_files:
|
|
322
326
|
- spec/motion/core/persistence_spec.rb
|
323
327
|
- spec/motion/core/string_spec.rb
|
324
328
|
- spec/motion/core/time_spec.rb
|
329
|
+
- spec/motion/core/ui_bar_button_item_spec.rb
|
325
330
|
- spec/motion/core/ui_control_spec.rb
|
326
331
|
- spec/motion/core_spec.rb
|
332
|
+
- spec/motion/font/font_spec.rb
|
327
333
|
- spec/motion/http_spec.rb
|
328
334
|
- spec/motion/location/location_spec.rb
|
329
335
|
- spec/motion/media/player_spec.rb
|
330
336
|
- spec/motion/reactor/eventable_spec.rb
|
331
337
|
- spec/motion/reactor_spec.rb
|
332
338
|
- spec/motion/rss_parser_spec.rb
|
333
|
-
|
339
|
+
- spec/motion/util/constants_spec.rb
|