sugarcube 0.18.1 → 0.18.2
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +29 -28
- data/lib/sugarcube/symbol.rb +33 -21
- data/lib/sugarcube/uibutton.rb +27 -0
- data/lib/sugarcube/version.rb +1 -1
- data/spec/symbol_spec.rb +30 -0
- data/spec/uiview_animation_spec.rb +35 -1
- metadata +4 -2
data/README.md
CHANGED
@@ -160,7 +160,7 @@ And you can easily turn this into a label!
|
|
160
160
|
```ruby
|
161
161
|
view << (("We just met\n".attrd +
|
162
162
|
"and this is " + "CRAZY".italic + "\n"
|
163
|
-
"But here's my " + "id_rsa.pub".
|
163
|
+
"But here's my " + "id_rsa.pub".monospace + " file,\n" +
|
164
164
|
"so give me SSH access.").uilabel
|
165
165
|
```
|
166
166
|
|
@@ -176,7 +176,7 @@ self.value = decoder['key']
|
|
176
176
|
|
177
177
|
# but if you want to store booleans and such (in their C form,
|
178
178
|
# which will take up less space I suppose):
|
179
|
-
coder.set('sugarcube_is_neat', toBool:self.
|
179
|
+
coder.set('sugarcube_is_neat', toBool:self.sugarcube_is_neat?)
|
180
180
|
self.sugarcube_is_neat = decoder.bool('sugarcube_is_neat')
|
181
181
|
|
182
182
|
coder.set('number_of_things', toInt:self.number_of_things)
|
@@ -218,29 +218,30 @@ image_data.nsimage # => whatever 'an image' was
|
|
218
218
|
--------
|
219
219
|
|
220
220
|
`NSDate` objects are converted to `Time` objects automatically by rubymotion.
|
221
|
-
That's the good news.
|
222
|
-
|
221
|
+
That's the good news.
|
222
|
+
The bad news? That still doesn't help a lot with some of
|
223
|
+
the everyday date & time crap we have to deal with. (I hate dates, especially
|
223
224
|
recurring events)
|
225
|
+
##### NSDate
|
224
226
|
|
225
227
|
1. Adds the following methods to get date and time components: `date_array, time_array, datetime_array`.
|
226
|
-
|
227
228
|
These methods return arrays. Comparing dates, times, or both become
|
228
229
|
simple `date1.date_array == date2.date_array`.
|
229
230
|
2. While I would love to support `date + 1.month` and have that support "smart"
|
230
231
|
calendar math (e.g. "2/13/2013" + 1.month => "3/13/2013"), I can't fudge with
|
231
232
|
the return value of `1.month` (=> `Fixnum`), and I won't make the terrible
|
232
233
|
assumption that "30 days of seconds is *about* one month". So instead, a new
|
233
|
-
method that accepts date components as options is introduced
|
234
|
-
3.
|
235
|
-
|
236
|
-
you here. They are akin to `floor` and `ceil
|
234
|
+
method that accepts date components as options is introduced: `date.delta(months:1)`
|
235
|
+
3. Checking whether two dates are the same, ignoring the time components, is often required
|
236
|
+
`start_of_day` and `end_of_day` methods help
|
237
|
+
you here. They are akin to `floor` and `ceil`; if you consider the time to
|
237
238
|
be the "floating" component, and the date to be the nearest "integer".
|
238
239
|
4. Formatting is made easier with `NSDate#string_with_style(NSDateStyleConstant or Symbol)`
|
239
240
|
and `NSDate#string_with_format(format_string)`. See
|
240
241
|
<http://www.unicode.org/reports/tr35/tr35-25.html#Date_Format_Patterns> for
|
241
242
|
the formatters, they take getting used to, coming from `strftime`, but they
|
242
243
|
are much more powerful and locale-aware.
|
243
|
-
5.
|
244
|
+
5. Miscellaneous other helpers. I'll go over these first.
|
244
245
|
|
245
246
|
###### Helpers
|
246
247
|
|
@@ -262,8 +263,8 @@ recurring events)
|
|
262
263
|
(main)> feb_1_2013.era
|
263
264
|
=> 1 # no, I don't know what this is :-/
|
264
265
|
(main)> feb_1_2013.today?
|
265
|
-
=> false # actually, at the time
|
266
|
-
#
|
266
|
+
=> false # actually, at the time I am WRITING this, it IS true, but by the time
|
267
|
+
# you read it, not so much ;-)
|
267
268
|
(main)> NSDate.new.today?
|
268
269
|
=> true
|
269
270
|
(main)> feb_1_2013.same_day?(NSDate.new)
|
@@ -307,7 +308,7 @@ recurring events)
|
|
307
308
|
```
|
308
309
|
|
309
310
|
It is easy to add seconds to the date using the time-related methods added to
|
310
|
-
`Numeric`,
|
311
|
+
`Numeric`, though the `NSDate#delta` method is MUCH more capable.
|
311
312
|
|
312
313
|
```ruby
|
313
314
|
(main)> now + 5
|
@@ -388,7 +389,7 @@ on.
|
|
388
389
|
(main)> feb_28_2012.delta(days:2, years:1)
|
389
390
|
=> 2013-03-01 17:00:00 -0700
|
390
391
|
|
391
|
-
# Crazier: add a day (
|
392
|
+
# Crazier: add a day (Feb 29th), then a month (March 29th), THEN a year.
|
392
393
|
(main)> feb_28_2012.delta(days:1, years:1, months:1)
|
393
394
|
=> 2013-03-29 17:00:00 -0600
|
394
395
|
|
@@ -400,7 +401,7 @@ on.
|
|
400
401
|
(main)> jan_29_2013.delta(months:2)
|
401
402
|
=> 2013-03-29 17:00:00 -0600
|
402
403
|
|
403
|
-
# Yeah, smart guy? Well then what is 1/29/2013 plus ONE month. It's
|
404
|
+
# Yeah, smart guy? Well then what is 1/29/2013 plus ONE month. It's Feb 28th.
|
404
405
|
# When someone says "see you in a month!" they mean "next month", not "in the
|
405
406
|
# early part of two months in the future", which is where the math will take you
|
406
407
|
# if you don't add a "day of month" correction.
|
@@ -623,11 +624,11 @@ form, you can pass just a title and block.
|
|
623
624
|
UIAlertView.alert "This is happening, OK?" { self.happened! }
|
624
625
|
# a little more complex
|
625
626
|
UIAlertView.alert("This is happening, OK?", buttons: ["Nevermind", "OK"],
|
626
|
-
message: "
|
627
|
+
message: "Don't worry, it'll be fine.") {
|
627
628
|
self.happened!
|
628
629
|
}
|
629
630
|
|
630
|
-
# Full on whiz
|
631
|
+
# Full on whiz-bangery. Note the success block takes the pressed button, but as
|
631
632
|
# a string instead of an index. The cancel button should be the first entry in
|
632
633
|
# `buttons:`
|
633
634
|
UIAlertView.alert "I mean, is this cool?", buttons: %w[No! Sure! Hmmmm],
|
@@ -787,7 +788,6 @@ UIView.animation_chain {
|
|
787
788
|
|
788
789
|
Chains can also be written like this:
|
789
790
|
|
790
|
-
|
791
791
|
```ruby
|
792
792
|
chain = UIView.animation_chain
|
793
793
|
chain << proc { view.slide(:left, 20) }
|
@@ -822,7 +822,7 @@ UIButton.contact_add => UIButton.buttonWithType(:contact_add.uibuttontype)
|
|
822
822
|
###### UITableView
|
823
823
|
|
824
824
|
Default frame is `[[0, 0], [0, 0]]`, but most containers will resize it to be
|
825
|
-
the correct size. But heads up, it *
|
825
|
+
the correct size. But heads up, it *was* `[[0, 0], [320, 480]]` (until
|
826
826
|
the iphone 5 / 4-inch retina came out).
|
827
827
|
|
828
828
|
```ruby
|
@@ -840,7 +840,7 @@ UITableView.plain([[0, 0], [320, 568]])
|
|
840
840
|
UITableView.grouped([[0, 0], [320, 400]])
|
841
841
|
```
|
842
842
|
|
843
|
-
######
|
843
|
+
###### UISegmentedControl
|
844
844
|
|
845
845
|
```ruby
|
846
846
|
control = UISegmentedControl.alloc.initItems(["one", "ah-two-whoo", "thr-r-r-ree"])
|
@@ -909,8 +909,8 @@ dismiss_modal
|
|
909
909
|
These accept completion blocks:
|
910
910
|
|
911
911
|
```ruby
|
912
|
-
present_modal(view_ctlr) { puts "
|
913
|
-
dismiss_modal { puts "
|
912
|
+
present_modal(view_ctlr) { puts "Now You See Me!" }
|
913
|
+
dismiss_modal { puts "Now You Don't!" }
|
914
914
|
```
|
915
915
|
|
916
916
|
If you like these methods, but you want to specify the reciever, they are
|
@@ -923,7 +923,7 @@ controller.present_modal(other_controller) { puts "presented" }
|
|
923
923
|
UINavigationController
|
924
924
|
------------------------
|
925
925
|
|
926
|
-
`push
|
926
|
+
`push`, `<<` and `pop` instead of `pushViewController` and `popViewController`.
|
927
927
|
`!` and `!(view)` instead of `popToRootViewController` and `popToViewController`
|
928
928
|
|
929
929
|
animated is `true` for all these.
|
@@ -940,7 +940,7 @@ nav_ctlr.!(another_view_ctlr)
|
|
940
940
|
------------------------
|
941
941
|
|
942
942
|
I have mixed feelings about adding this extension, but **I** needed it, so maybe
|
943
|
-
you will, too... Usually `UITabBarController`
|
943
|
+
you will, too... Usually a `UITabBarController` has a static number of tabs,
|
944
944
|
but in my case, I needed to be able to add one later, when a certain condition
|
945
945
|
was met.
|
946
946
|
|
@@ -1059,11 +1059,11 @@ This file does *one* thing very **DANGEROUS**... to "help" with defaults.
|
|
1059
1059
|
When storing `nil` into `NSUserDefaults`, it is converted into `false`, because
|
1060
1060
|
Cocoa complains if you give it `nil`, and the RubyMotion runtime refuses to
|
1061
1061
|
allow the `NSNull.null` object. Without relying on an external project (like
|
1062
|
-
[nsnulldammit]
|
1062
|
+
[nsnulldammit](https://github.com/colinta/nsnulldammit) I don't know of a
|
1063
1063
|
sensible workaround...
|
1064
1064
|
|
1065
1065
|
If you want to "tap into" the defaults system that SugarCube uses, add a
|
1066
|
-
`to_nsuserdefaults` method
|
1066
|
+
`to_nsuserdefaults` method and that will get called if you hand your object to
|
1067
1067
|
`NSUserDefaults[]=`. However, there's no way to get it *back* later, so the
|
1068
1068
|
usefulness of this is very limited.
|
1069
1069
|
|
@@ -1071,7 +1071,7 @@ usefulness of this is very limited.
|
|
1071
1071
|
'key'.set_default(['any', 'objects']) # => NSUserDefaults.standardUserDefaults.setObject(['any', 'objects'], forKey: :key)
|
1072
1072
|
'key'.get_default # => NSUserDefaults.standardUserDefaults.objectForKey(:key)
|
1073
1073
|
|
1074
|
-
# symbols are converted to strings, so
|
1074
|
+
# symbols are converted to strings, so these are equivalent
|
1075
1075
|
:key.set_default(['any', 'objects']) # => NSUserDefaults.standardUserDefaults.setObject(['any', 'objects'], forKey: :key)
|
1076
1076
|
:key.get_default # => NSUserDefaults.standardUserDefaults.objectForKey(:key)
|
1077
1077
|
```
|
@@ -1231,6 +1231,7 @@ The most useful feature of the REPL adjustment is the ability to quickly
|
|
1231
1231
|
position and size your UI elements __visually__ and then paste the final values
|
1232
1232
|
into your code. In order to better accomodate that, `adjust` has an option to
|
1233
1233
|
modify the output format.
|
1234
|
+
These were inspired by [Thom Parkin](https://github.com/ParkinT)
|
1234
1235
|
|
1235
1236
|
This better facilitates copy/paste of the values. Currently supported is:
|
1236
1237
|
* Default (RubyMotion) (`nil`, `:default`)
|
@@ -1481,7 +1482,7 @@ use these everywhere. :poop:
|
|
1481
1482
|
|
1482
1483
|
### `ivar`
|
1483
1484
|
|
1484
|
-
######
|
1485
|
+
###### Rakefile
|
1485
1486
|
|
1486
1487
|
```ruby
|
1487
1488
|
require 'sugarcube-unholy'
|
data/lib/sugarcube/symbol.rb
CHANGED
@@ -207,7 +207,7 @@ class Symbol
|
|
207
207
|
system: :"systemFontOfSize:",
|
208
208
|
bold: :"boldSystemFontOfSize:",
|
209
209
|
italic: :"italicSystemFontOfSize:",
|
210
|
-
monospace: '
|
210
|
+
monospace: 'Courier New',
|
211
211
|
}
|
212
212
|
|
213
213
|
@font_sizes = {
|
@@ -398,20 +398,32 @@ class Symbol
|
|
398
398
|
@autoresizemasks = {
|
399
399
|
none: UIViewAutoresizingNone,
|
400
400
|
|
401
|
-
|
402
|
-
|
403
|
-
|
404
|
-
|
405
|
-
|
406
|
-
|
407
|
-
|
408
|
-
#
|
409
|
-
|
410
|
-
|
411
|
-
|
412
|
-
|
413
|
-
|
414
|
-
|
401
|
+
flexible_left: UIViewAutoresizingFlexibleLeftMargin,
|
402
|
+
flexible_width: UIViewAutoresizingFlexibleWidth,
|
403
|
+
flexible_right: UIViewAutoresizingFlexibleRightMargin,
|
404
|
+
flexible_top: UIViewAutoresizingFlexibleTopMargin,
|
405
|
+
flexible_height: UIViewAutoresizingFlexibleHeight,
|
406
|
+
flexible_bottom: UIViewAutoresizingFlexibleBottomMargin,
|
407
|
+
|
408
|
+
# shorthands
|
409
|
+
full: UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight,
|
410
|
+
fixed_top: UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleBottomMargin,
|
411
|
+
fixed_bottom: UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin,
|
412
|
+
fixed_left: UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleRightMargin,
|
413
|
+
fixed_right: UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleLeftMargin,
|
414
|
+
|
415
|
+
fixed_top_left: UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleBottomMargin,
|
416
|
+
fixed_top_middle: UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleBottomMargin,
|
417
|
+
fixed_top_right: UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleBottomMargin,
|
418
|
+
fixed_middle_left: UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleRightMargin,
|
419
|
+
fixed_middle: UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin,
|
420
|
+
fixed_middle_right: UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleLeftMargin,
|
421
|
+
fixed_bottom_left: UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin,
|
422
|
+
fixed_bottom_middle: UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin,
|
423
|
+
fixed_bottom_right: UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleTopMargin,
|
424
|
+
|
425
|
+
float_horizontal: UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin,
|
426
|
+
float_vertical: UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin,
|
415
427
|
}
|
416
428
|
|
417
429
|
@image_sourcetypes = {
|
@@ -660,24 +672,24 @@ class Symbol
|
|
660
672
|
# system fonts
|
661
673
|
if Symbol.system_fonts.has_key? self
|
662
674
|
font = look_in(Symbol.system_fonts)
|
663
|
-
if size.is_a?
|
675
|
+
if size.is_a?(Symbol)
|
664
676
|
size = Symbol.font_sizes.fetch(size).uifontsize
|
665
677
|
end
|
678
|
+
|
666
679
|
if font.is_a?(Symbol)
|
667
|
-
|
680
|
+
return UIFont.send(font, size)
|
668
681
|
else
|
669
|
-
font.uifont(size)
|
682
|
+
return font.uifont(size)
|
670
683
|
end
|
671
684
|
else
|
672
685
|
size = look_in(font_sizes).uifontsize
|
673
|
-
|
686
|
+
return UIFont.systemFontOfSize(size)
|
674
687
|
end
|
675
|
-
font
|
676
688
|
end
|
677
689
|
|
678
690
|
def uifontsize
|
679
691
|
size = look_in(Symbol.font_sizes)
|
680
|
-
if size.is_a?
|
692
|
+
if size.is_a?(Symbol)
|
681
693
|
return UIFont.send(size)
|
682
694
|
end
|
683
695
|
return size.to_f
|
data/lib/sugarcube/uibutton.rb
CHANGED
@@ -4,30 +4,57 @@ class UIButton
|
|
4
4
|
self.buttonWithType(:custom.uibuttontype)
|
5
5
|
end
|
6
6
|
def rounded
|
7
|
+
if self != UIButton
|
8
|
+
raise "Custom subclasses of UIButton most be created using UIButton.custom"
|
9
|
+
end
|
7
10
|
self.buttonWithType(:rounded.uibuttontype)
|
8
11
|
end
|
9
12
|
def rounded_rect
|
13
|
+
if self != UIButton
|
14
|
+
raise "Custom subclasses of UIButton most be created using UIButton.custom"
|
15
|
+
end
|
10
16
|
self.buttonWithType(:rounded_rect.uibuttontype)
|
11
17
|
end
|
12
18
|
def detail
|
19
|
+
if self != UIButton
|
20
|
+
raise "Custom subclasses of UIButton most be created using UIButton.custom"
|
21
|
+
end
|
13
22
|
self.buttonWithType(:detail.uibuttontype)
|
14
23
|
end
|
15
24
|
def detail_disclosure
|
25
|
+
if self != UIButton
|
26
|
+
raise "Custom subclasses of UIButton most be created using UIButton.custom"
|
27
|
+
end
|
16
28
|
self.buttonWithType(:detail_disclosure.uibuttontype)
|
17
29
|
end
|
18
30
|
def info
|
31
|
+
if self != UIButton
|
32
|
+
raise "Custom subclasses of UIButton most be created using UIButton.custom"
|
33
|
+
end
|
19
34
|
self.buttonWithType(:info.uibuttontype)
|
20
35
|
end
|
21
36
|
def info_light
|
37
|
+
if self != UIButton
|
38
|
+
raise "Custom subclasses of UIButton most be created using UIButton.custom"
|
39
|
+
end
|
22
40
|
self.buttonWithType(:info_light.uibuttontype)
|
23
41
|
end
|
24
42
|
def info_dark
|
43
|
+
if self != UIButton
|
44
|
+
raise "Custom subclasses of UIButton most be created using UIButton.custom"
|
45
|
+
end
|
25
46
|
self.buttonWithType(:info_dark.uibuttontype)
|
26
47
|
end
|
27
48
|
def contact
|
49
|
+
if self != UIButton
|
50
|
+
raise "Custom subclasses of UIButton most be created using UIButton.custom"
|
51
|
+
end
|
28
52
|
self.buttonWithType(:contact.uibuttontype)
|
29
53
|
end
|
30
54
|
def contact_add
|
55
|
+
if self != UIButton
|
56
|
+
raise "Custom subclasses of UIButton most be created using UIButton.custom"
|
57
|
+
end
|
31
58
|
self.buttonWithType(:contact_add.uibuttontype)
|
32
59
|
end
|
33
60
|
end
|
data/lib/sugarcube/version.rb
CHANGED
data/spec/symbol_spec.rb
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
describe "Symbol" do
|
2
|
+
|
3
|
+
describe "uifont" do
|
4
|
+
it "should work with system fonts" do
|
5
|
+
UIFont.should === :system.uifont
|
6
|
+
UIFont.should === :bold.uifont
|
7
|
+
UIFont.should === :italic.uifont
|
8
|
+
end
|
9
|
+
|
10
|
+
it "should work with custom fonts" do
|
11
|
+
:monospace.uifont.should != nil
|
12
|
+
UIFont.should === :monospace.uifont
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should allow customization" do
|
16
|
+
Symbol.system_fonts[:default] = 'Helvetica'
|
17
|
+
:default.uifont.tap do |subject|
|
18
|
+
UIFont.should === subject
|
19
|
+
subject.fontName.should == 'Helvetica'
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should accept point size" do
|
24
|
+
:system.uifont(40).pointSize.should == 40
|
25
|
+
:bold.uifont(40).pointSize.should == 40
|
26
|
+
:italic.uifont(40).pointSize.should == 40
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
end
|
@@ -10,7 +10,7 @@ describe "UIView animation methods" do
|
|
10
10
|
it 'should rotate 45 degrees' do
|
11
11
|
angle = 45*Math::PI/180
|
12
12
|
@view.rotate_to(angle)
|
13
|
-
current_angle =
|
13
|
+
current_angle = Math.atan2(@view.transform.b, @view.transform.a)
|
14
14
|
current_angle.should == angle
|
15
15
|
end
|
16
16
|
|
@@ -20,4 +20,38 @@ describe "UIView animation methods" do
|
|
20
20
|
}
|
21
21
|
CGRectEqualToRect(@view.frame, [[0, 0], [0, 0]]).should == true
|
22
22
|
end
|
23
|
+
|
24
|
+
it 'should call the after block anything' do
|
25
|
+
@after_called = false
|
26
|
+
UIView.animate(after:->{ @after_called = true }, duration: 0.05) {
|
27
|
+
@view.frame = [[0, 0], [0, 0]]
|
28
|
+
@after_called = :animating
|
29
|
+
}
|
30
|
+
@after_called.should == :animating
|
31
|
+
wait 0.1 {
|
32
|
+
@after_called.should == true
|
33
|
+
}
|
34
|
+
end
|
35
|
+
|
36
|
+
it 'should animate if duration is 0 and delay > 0' do
|
37
|
+
@after_called = false
|
38
|
+
UIView.animate(after:->{ @after_called = true }, duration: 0.0, delay: 0.1) {
|
39
|
+
@view.frame = [[0, 0], [0, 0]]
|
40
|
+
@after_called = :animating
|
41
|
+
}
|
42
|
+
@after_called.should == :animating
|
43
|
+
wait 0.1 {
|
44
|
+
@after_called.should == true
|
45
|
+
}
|
46
|
+
end
|
47
|
+
|
48
|
+
it 'should not animate if duration is 0' do
|
49
|
+
@after_called = false
|
50
|
+
UIView.animate(after:->{ @after_called = true }, duration: 0.0) {
|
51
|
+
@view.frame = [[0, 0], [0, 0]]
|
52
|
+
@after_called = :animating
|
53
|
+
}
|
54
|
+
@after_called.should == true
|
55
|
+
end
|
56
|
+
|
23
57
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sugarcube
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.18.
|
4
|
+
version: 0.18.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ authors:
|
|
13
13
|
autorequire:
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
|
-
date: 2013-02-
|
16
|
+
date: 2013-02-17 00:00:00.000000000 Z
|
17
17
|
dependencies: []
|
18
18
|
description: ! '== Description
|
19
19
|
|
@@ -137,6 +137,7 @@ files:
|
|
137
137
|
- spec/nsstring_spec.rb
|
138
138
|
- spec/nsurl_spec.rb
|
139
139
|
- spec/numeric_spec.rb
|
140
|
+
- spec/symbol_spec.rb
|
140
141
|
- spec/uicolor_components_spec.rb
|
141
142
|
- spec/uicolor_css_spec.rb
|
142
143
|
- spec/uicolor_spec.rb
|
@@ -192,6 +193,7 @@ test_files:
|
|
192
193
|
- spec/nsstring_spec.rb
|
193
194
|
- spec/nsurl_spec.rb
|
194
195
|
- spec/numeric_spec.rb
|
196
|
+
- spec/symbol_spec.rb
|
195
197
|
- spec/uicolor_components_spec.rb
|
196
198
|
- spec/uicolor_css_spec.rb
|
197
199
|
- spec/uicolor_spec.rb
|