sugarcube 3.3.6 → 3.3.7

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 820bca2bcc5d1521cd23b73499093658353ae1e5
4
- data.tar.gz: 9d166c0da9c080488c7cc327cc38a273fdb4afb3
3
+ metadata.gz: 0d3fac9ee41dbe6575a593c28e8ca78d4c4845cb
4
+ data.tar.gz: 4337469e97bb91230469148a7e43b7c033d5e1bc
5
5
  SHA512:
6
- metadata.gz: 03c4d27e1eb89a61e41a776450a5927319405d52595900526d37ad57a3a8d1afab836c1e09f4809b60fd2cdf6b3888ebec7bc30ba84c16ba0fd951d4df759d74
7
- data.tar.gz: 42e80c5af7959ef62af788b435dd80eb89f9a6f4bc9ee12fbea7ac8a4f4d6e1d16a24a85ed9b23316777c2b4823ce54ad8735ef9430be59b2326bbcc849aa46d
6
+ metadata.gz: b73398655be28dce273a7ac5eafcb45572246feacddba87ba090db204576760a1d31f2969615868dbf78d57be732f878b851da3b0c14088bb094a076ba3dc34f
7
+ data.tar.gz: e9f30fdbaba910e761e6f146ca9bc3b6a376f0594cb714f496e50e64dc588298776f0f268f7806837d467d2c49f7e154a28af12704c955839c58af31846f0669
data/README.md CHANGED
@@ -9,7 +9,7 @@ SugarCube
9
9
  About
10
10
  -----
11
11
 
12
- CocoaTouch/iOS is a *verbose* framework. These extensions hope to make
12
+ Cocoa and CocoaTouch are *verbose* frameworks. These extensions hope to make
13
13
  development in rubymotion more enjoyable. With SugarCube, you can create a color
14
14
  from an integer or symbol, or create a UIFont or UIImage from a string.
15
15
 
@@ -1882,8 +1882,6 @@ Contributions
1882
1882
  If you want to see new features, please fork, commit, and pull-request! :smiley:
1883
1883
 
1884
1884
  [BubbleWrap]: https://github.com/rubymotion/BubbleWrap
1885
- [SweetKit]: https://github.com/motion-kit/sweet-kit
1886
- [MotionKit]: https://github.com/motion-kit/motion-kit
1887
1885
  [nsnulldammit]: https://github.com/colinta/nsnulldammit
1888
1886
  [geomotion]: https://github.com/clayallsopp/geomotion
1889
1887
 
@@ -21,11 +21,7 @@ class NSString
21
21
  end
22
22
 
23
23
  def unescape_url
24
- CFURLCreateStringByReplacingPercentEscapes(
25
- nil,
26
- self,
27
- ""
28
- )
24
+ self.stringByReplacingPercentEscapesUsingEncoding(NSUTF8StringEncoding)
29
25
  end
30
26
 
31
27
  def remove_accents
@@ -30,18 +30,6 @@ class NSCoder
30
30
  self.decodeIntegerForKey(key.to_s)
31
31
  end
32
32
 
33
- def point(key)
34
- CGPointFromString(self.decodeObjectForKey(key.to_s))
35
- end
36
-
37
- def rect(key)
38
- CGRectFromString(self.decodeObjectForKey(key.to_s))
39
- end
40
-
41
- def size(key)
42
- CGSizeFromString(self.decodeObjectForKey(key.to_s))
43
- end
44
-
45
33
  def set(key, toBool: value)
46
34
  self.encodeBool(value, forKey: key.to_s)
47
35
  self
@@ -62,21 +50,6 @@ class NSCoder
62
50
  self
63
51
  end
64
52
 
65
- def set(key, toPoint: value)
66
- self.encodeObject(NSStringFromCGPoint(value), forKey: key.to_s)
67
- self
68
- end
69
-
70
- def set(key, toRect: value)
71
- self.encodeObject(NSStringFromCGRect(value), forKey: key.to_s)
72
- self
73
- end
74
-
75
- def set(key, toSize: value)
76
- self.encodeObject(NSStringFromCGSize(value), forKey: key.to_s)
77
- self
78
- end
79
-
80
53
  end
81
54
 
82
55
 
@@ -0,0 +1,30 @@
1
+ class NSCoder
2
+
3
+ def point(key)
4
+ CGPointFromString(self.decodeObjectForKey(key.to_s))
5
+ end
6
+
7
+ def rect(key)
8
+ CGRectFromString(self.decodeObjectForKey(key.to_s))
9
+ end
10
+
11
+ def size(key)
12
+ CGSizeFromString(self.decodeObjectForKey(key.to_s))
13
+ end
14
+
15
+ def set(key, toPoint: value)
16
+ self.encodeObject(NSStringFromCGPoint(value), forKey: key.to_s)
17
+ self
18
+ end
19
+
20
+ def set(key, toRect: value)
21
+ self.encodeObject(NSStringFromCGRect(value), forKey: key.to_s)
22
+ self
23
+ end
24
+
25
+ def set(key, toSize: value)
26
+ self.encodeObject(NSStringFromCGSize(value), forKey: key.to_s)
27
+ self
28
+ end
29
+
30
+ end
@@ -4,6 +4,10 @@ class NSString
4
4
  nsattributedstring.bold(size)
5
5
  end
6
6
 
7
+ def italic(size=nil)
8
+ nsattributedstring.italic(size)
9
+ end
10
+
7
11
  def monospace(size=nil)
8
12
  nsattributedstring.monospace(size)
9
13
  end
@@ -32,6 +36,12 @@ class NSAttributedString
32
36
  self.font(font)
33
37
  end
34
38
 
39
+ def italic(size=nil)
40
+ size ||= NSFont.systemFontSize
41
+ font = NSFont.fontWithName('HelveticaNeue-Italic', size: size)
42
+ self.font(font)
43
+ end
44
+
35
45
  def font(value)
36
46
  value = value.nsfont if value.respond_to?(:nsfont)
37
47
  with_attributes({ NSFontAttributeName => value })
@@ -40,7 +50,7 @@ class NSAttributedString
40
50
  def monospace(size=nil)
41
51
  size ||= NSFont.systemFontSize
42
52
  font = NSFont.fontWithName('Courier New', size: size)
43
- self.font({ NSFontAttributeName => font })
53
+ self.font(font)
44
54
  end
45
55
 
46
56
  def underline
@@ -16,7 +16,7 @@ class Fixnum
16
16
  green = ((self & 0xFF00) >> 8).to_f / 255.0
17
17
  blue = (self & 0xFF).to_f / 255.0
18
18
 
19
- NSColor.colorWithRed(red, green: green, blue: blue, alpha: alpha.to_f)
19
+ NSColor.rgba(red, green, blue, alpha.to_f)
20
20
  end
21
21
 
22
22
  def cgcolor(alpha=nil)
@@ -8,7 +8,7 @@ class NSArray
8
8
  if self[3]
9
9
  alpha = self[3]
10
10
  end
11
- NSColor.colorWithRed(red, green:green, blue:blue, alpha:alpha.to_f)
11
+ NSColor.rgba(red, green, blue, alpha.to_f)
12
12
  end
13
13
 
14
14
  def cgcolor(alpha=nil)
@@ -15,16 +15,25 @@ class NSColor
15
15
  def nscolor(alpha=nil)
16
16
  if alpha
17
17
  if named_color_space?
18
- self.colorUsingColorSpace(NSColorSpace.genericRGBColorSpace).colorWithAlphaComponent(alpha.to_f)
19
- else
20
- self.colorWithAlphaComponent(alpha.to_f)
18
+ color = self.colorUsingColorSpace(NSColorSpace.genericRGBColorSpace)
19
+ if color
20
+ return color.colorWithAlphaComponent(alpha.to_f)
21
+ end
21
22
  end
23
+ return self.colorWithAlphaComponent(alpha.to_f)
24
+ elsif named_color_space?
25
+ color = self.colorUsingColorSpace(NSColorSpace.genericRGBColorSpace)
26
+ return color if color
27
+ end
28
+
29
+ return self
30
+ end
31
+
32
+ def self.rgba(r, g, b, a)
33
+ if NSColor.respond_to?('colorWithRed:green:blue:alpha:')
34
+ NSColor.colorWithRed(r, green: g, blue: b, alpha: a)
22
35
  else
23
- if named_color_space?
24
- self.colorUsingColorSpace(NSColorSpace.genericRGBColorSpace)
25
- else
26
- self
27
- end
36
+ NSColor.colorWithCalibratedRed(r, green: g, blue: b, alpha: a)
28
37
  end
29
38
  end
30
39
 
@@ -59,7 +68,8 @@ class NSColor
59
68
  g = [1.0, color.green * color.alpha + self.green].min
60
69
  b = [1.0, color.blue * color.alpha + self.blue].min
61
70
  a = self.alpha
62
- NSColor.colorWithRed(r, green:g, blue:b, alpha:a)
71
+
72
+ NSColor.rgba(r, g, b, a)
63
73
  end
64
74
 
65
75
  # a more generic color mixing method. mixes two colors, but a second
@@ -80,7 +90,7 @@ class NSColor
80
90
  g = (self.green + color.green) / 2
81
91
  b = (self.blue + color.blue) / 2
82
92
  a = self.alpha
83
- NSColor.colorWithRed(r, green:g, blue:b, alpha:a)
93
+ NSColor.rgba(r, g, b, a)
84
94
  else
85
95
  a = (color.alpha - self.alpha) * amount + self.alpha
86
96
  return NSColor.clearColor if a == 0
@@ -95,7 +105,7 @@ class NSColor
95
105
  r = (color_red - self_red) * amount + self_red
96
106
  g = (color_green - self_green) * amount + self_green
97
107
  b = (color_blue - self_blue) * amount + self_blue
98
- NSColor.colorWithRed(r, green:g, blue:b, alpha:a)
108
+ NSColor.rgba(r, g, b, a)
99
109
  end
100
110
  end
101
111
 
@@ -107,7 +117,7 @@ class NSColor
107
117
  g = 1.0 - self.green
108
118
  b = 1.0 - self.blue
109
119
  a = self.alpha
110
- NSColor.colorWithRed(r, green: g, blue: b, alpha: a)
120
+ NSColor.rgba(r, g, b, a)
111
121
  end
112
122
 
113
123
  # Cannot define method `hue' because no Objective-C stub was pre-compiled for
@@ -0,0 +1,30 @@
1
+ class NSCoder
2
+
3
+ def point(key)
4
+ self.decodeObjectForKey(key.to_s).pointValue
5
+ end
6
+
7
+ def rect(key)
8
+ self.decodeObjectForKey(key.to_s).rectValue
9
+ end
10
+
11
+ def size(key)
12
+ self.decodeObjectForKey(key.to_s).sizeValue
13
+ end
14
+
15
+ def set(key, toPoint: value)
16
+ self.encodeObject(NSValue.valueWithPoint(value), forKey: key.to_s)
17
+ self
18
+ end
19
+
20
+ def set(key, toRect: value)
21
+ self.encodeObject(NSValue.valueWithRect(value), forKey: key.to_s)
22
+ self
23
+ end
24
+
25
+ def set(key, toSize: value)
26
+ self.encodeObject(NSValue.valueWithSize(value), forKey: key.to_s)
27
+ self
28
+ end
29
+
30
+ end
@@ -52,6 +52,7 @@ class Symbol
52
52
  @nsfont = {
53
53
  system: :"systemFontOfSize:",
54
54
  bold: :"boldSystemFontOfSize:",
55
+ italic: 'Helvetica-Italic',
55
56
  monospace: 'Courier New',
56
57
  }
57
58
 
@@ -1,3 +1,3 @@
1
1
  module SugarCube
2
- Version = '3.3.6'
2
+ Version = '3.3.7'
3
3
  end
@@ -30,12 +30,4 @@ describe 'Base64' do
30
30
  end
31
31
  end
32
32
 
33
- describe 'UIImage' do
34
-
35
- it 'should convert image data (PNG) to base64' do
36
- 'test'.uiimage.nsdata.to_base64.should == 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAHgCAIAAADrGJBNAAAAAXNSR0IArs4c6QAAABxpRE9UAAAAAgAAAAAAAADwAAAAKAAAAPAAAADwAAAAS9r5uVEAAAAXSURBVEgNYrhrxMAwikfDYDQNDMk0AAAAAP//6TQa9AAAABVJREFUY7hrxMAwikfDYDQNDMk0AACNnfwwqs717AAAAABJRU5ErkJggg=='
37
- end
38
-
39
- end
40
-
41
33
  end
@@ -67,9 +67,17 @@ describe "NSCoder" do
67
67
  test.double.should == @subject.double
68
68
  test.float.should == @subject.float
69
69
  test.int.should == @subject.int
70
- test.point.should == @subject.point
71
- test.rect.should == @subject.rect
72
- test.size.should == @subject.size
70
+ val = test.point
71
+ val.x.should == @subject.point.x
72
+ val.y.should == @subject.point.y
73
+ val = test.rect
74
+ val.origin.x.should == @subject.rect.origin.x
75
+ val.origin.y.should == @subject.rect.origin.y
76
+ val.size.width.should == @subject.rect.size.width
77
+ val.size.height.should == @subject.rect.size.height
78
+ val = test.size
79
+ val.width.should == @subject.size.width
80
+ val.height.should == @subject.size.height
73
81
  end
74
82
 
75
83
  end
@@ -6,21 +6,9 @@ describe NSIndexPath do
6
6
  end
7
7
 
8
8
  it 'should have to_ary' do
9
- a, b = NSIndexPath.indexPathWithIndex(1).indexPathByAddingIndex(3)
9
+ a, b = NSIndexPath.indexPathWithIndex(1).indexPathByAddingIndex(3).to_ary
10
10
  a.should == 1
11
11
  b.should == 3
12
12
  end
13
13
 
14
- it 'should support indexPathForRow(inSection:)' do
15
- path = NSIndexPath.indexPathForRow(1, inSection: 3).to_a
16
- path[0].should == 3
17
- path[1].should == 1
18
- end
19
-
20
- it 'should support indexPathForItem(inSection:)' do
21
- path = NSIndexPath.indexPathForItem(1, inSection: 3).to_a
22
- path[0].should == 3
23
- path[1].should == 1
24
- end
25
-
26
14
  end
@@ -1,6 +1,9 @@
1
1
  class Should
2
2
  def have_string_attributes(attributes)
3
3
  @object.should.be.kind_of(NSAttributedString)
4
- @object.attributesAtIndex(0, effectiveRange:nil).should == attributes
4
+ has_attrs = @object.attributesAtIndex(0, effectiveRange: nil)
5
+ attributes.each do |key, value|
6
+ has_attrs[key].should == attributes[key]
7
+ end
5
8
  end
6
9
  end
@@ -0,0 +1,11 @@
1
+ describe 'Base64' do
2
+
3
+ describe 'UIImage' do
4
+
5
+ it 'should convert image data (PNG) to base64' do
6
+ 'test'.uiimage.nsdata.to_base64.should == 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAHgCAIAAADrGJBNAAAAAXNSR0IArs4c6QAAABxpRE9UAAAAAgAAAAAAAADwAAAAKAAAAPAAAADwAAAAS9r5uVEAAAAXSURBVEgNYrhrxMAwikfDYDQNDMk0AAAAAP//6TQa9AAAABVJREFUY7hrxMAwikfDYDQNDMk0AACNnfwwqs717AAAAABJRU5ErkJggg=='
7
+ end
8
+
9
+ end
10
+
11
+ end
@@ -0,0 +1,15 @@
1
+ describe NSIndexPath do
2
+
3
+ it 'should support indexPathForRow(inSection:)' do
4
+ path = NSIndexPath.indexPathForRow(1, inSection: 3).to_a
5
+ path[0].should == 3
6
+ path[1].should == 1
7
+ end
8
+
9
+ it 'should support indexPathForItem(inSection:)' do
10
+ path = NSIndexPath.indexPathForItem(1, inSection: 3).to_a
11
+ path[0].should == 3
12
+ path[1].should == 1
13
+ end
14
+
15
+ end
File without changes
@@ -0,0 +1,11 @@
1
+ describe 'Base64' do
2
+
3
+ describe 'NSImage' do
4
+
5
+ it 'should convert image data (PNG) to base64' do
6
+ 'test'.nsimage.nsdata.to_base64.should == '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'
7
+ end
8
+
9
+ end
10
+
11
+ end
@@ -154,22 +154,22 @@ describe SugarCube::Frameable do
154
154
  describe NSScreen do
155
155
 
156
156
  it 'should return x' do
157
- view = NSScreen.alloc.initWithFrame([[100, 200], [300, 400]])
157
+ view = NSScreen.mainScreen
158
158
  view.x.should == view.frame.origin.x
159
159
  end
160
160
 
161
161
  it 'should return y' do
162
- view = NSScreen.alloc.initWithFrame([[100, 200], [300, 400]])
162
+ view = NSScreen.mainScreen
163
163
  view.y.should == view.frame.origin.y
164
164
  end
165
165
 
166
166
  it 'should return width' do
167
- view = NSScreen.alloc.initWithFrame([[100, 200], [300, 400]])
167
+ view = NSScreen.mainScreen
168
168
  view.width.should == view.frame.size.width
169
169
  end
170
170
 
171
171
  it 'should return height' do
172
- view = NSScreen.alloc.initWithFrame([[100, 200], [300, 400]])
172
+ view = NSScreen.mainScreen
173
173
  view.height.should == view.frame.size.height
174
174
  end
175
175
 
@@ -0,0 +1,110 @@
1
+ describe 'SpriteKit' do
2
+
3
+ before do
4
+ scene = SKScene.alloc.initWithSize([10, 10])
5
+ path = CGPathCreateWithRect([[0, 0], [10, 10]], nil)
6
+
7
+ @node_a = SKShapeNode.shapeNodeWithPath(path, centered: true)
8
+ @node_a.position = [100, 100]
9
+ @node_a.name = 'parent'
10
+ scene.addChild(@node_a)
11
+
12
+ @node_b = SKShapeNode.shapeNodeWithPath(path, centered: true)
13
+ @node_b.position = [0, 20]
14
+ @node_b.name = 'child'
15
+ @node_c = SKShapeNode.shapeNodeWithPath(path, centered: true)
16
+ @node_c.position = [20, 20]
17
+ @node_c.name = 'child'
18
+ @node_d = SKShapeNode.shapeNodeWithPath(path, centered: true)
19
+ @node_d.position = [20, 0]
20
+ @node_d.name = 'not a child!'
21
+
22
+
23
+ main_window = NSWindow.alloc.initWithContentRect([[240, 180], [480, 360]],
24
+ styleMask: NSTitledWindowMask|NSClosableWindowMask|NSMiniaturizableWindowMask|NSResizableWindowMask,
25
+ backing: NSBackingStoreBuffered,
26
+ defer: false)
27
+ main_window.orderFrontRegardless
28
+
29
+ view = SKView.new
30
+ main_window.contentView.addSubview(view)
31
+ view.presentScene(scene)
32
+ end
33
+
34
+ describe '<< method' do
35
+ it 'should add child nodes' do
36
+ @node_a << @node_b
37
+ @node_a << @node_c
38
+ @node_b.parent.should == @node_a
39
+ @node_c.parent.should == @node_a
40
+ @node_a.children.should == [@node_b, @node_c]
41
+ end
42
+ end
43
+
44
+ describe 'run_action method' do
45
+ it 'should run an action and then call the completion block' do
46
+ @completed = false
47
+
48
+ @node_a.run_action(SKAction.moveTo([1, 1], duration: 1)) do
49
+ @completed = true
50
+ end
51
+
52
+ wait 2 do
53
+ @completed.should == true
54
+ @node_a.position.x.should == 1
55
+ @node_a.position.y.should == 1
56
+ end
57
+ end
58
+ end
59
+
60
+ describe '[] and []= methods' do
61
+ it 'should assign user data with []=' do
62
+ @node_a['life'] = 100
63
+ @node_a.userData['life'].should == 100
64
+ end
65
+ it 'should assign user data and convert symbols to strings' do
66
+ @node_a[:life] = 100
67
+ @node_a.userData['life'].should == 100
68
+ end
69
+ it 'should get user data with []' do
70
+ @node_a['life'] = 100
71
+ @node_a['life'].should == 100
72
+ end
73
+ it 'should get user data and convert symbols to strings' do
74
+ @node_a[:life] = 100
75
+ @node_a[:life].should == 100
76
+ end
77
+ end
78
+
79
+ describe 'each_named method' do
80
+ before do
81
+ @node_a << @node_b
82
+ @node_a << @node_c
83
+ @node_a << @node_d
84
+ end
85
+
86
+ it 'should iterate over child nodes (arity: 1)' do
87
+ @found_b = false
88
+ @found_c = false
89
+ @found_d = false
90
+ @node_a.each_named('child') do |node|
91
+ @found_b = true if node == @node_b
92
+ @found_c = true if node == @node_c
93
+ @found_d = true if node == @node_d
94
+ end
95
+ @found_b.should == true
96
+ @found_c.should == true
97
+ @found_d.should == false
98
+ end
99
+
100
+ it 'should iterate over child nodes and stop with stop-pointer (arity: 2)' do
101
+ @found = 0
102
+ @node_a.each_named('child') do |node, stop_ptr|
103
+ @found += 1
104
+ stop_ptr.assign(true)
105
+ end
106
+ @found.should == 1
107
+ end
108
+ end
109
+
110
+ 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: 3.3.6
4
+ version: 3.3.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Colin T.A. Gray
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2015-07-15 00:00:00.000000000 Z
15
+ date: 2015-09-08 00:00:00.000000000 Z
16
16
  dependencies: []
17
17
  description: |
18
18
  == Description
@@ -133,6 +133,7 @@ files:
133
133
  - lib/ios/sugarcube-image/uicolor.rb
134
134
  - lib/ios/sugarcube-image/uiimage.rb
135
135
  - lib/ios/sugarcube-modal/modal.rb
136
+ - lib/ios/sugarcube-nscoder/nscoder.rb
136
137
  - lib/ios/sugarcube-nsdata/nsdata.rb
137
138
  - lib/ios/sugarcube-nsdata/uiimage.rb
138
139
  - lib/ios/sugarcube-numbers/nsnumber.rb
@@ -167,6 +168,7 @@ files:
167
168
  - lib/osx/sugarcube-color/nsstring.rb
168
169
  - lib/osx/sugarcube-color/symbol.rb
169
170
  - lib/osx/sugarcube-constants/symbol.rb
171
+ - lib/osx/sugarcube-nscoder/nscoder.rb
170
172
  - lib/osx/sugarcube-nsdata/nsdata.rb
171
173
  - lib/osx/sugarcube-nsdata/nsimage.rb
172
174
  - lib/osx/sugarcube-numbers/nsnumber.rb
@@ -233,11 +235,11 @@ files:
233
235
  - spec/cocoa/nsdictionary_files_spec.rb
234
236
  - spec/cocoa/nsindexpath_spec.rb
235
237
  - spec/cocoa/numeric_time_spec.rb
236
- - spec/cocoa/spritekit_spec.rb
237
238
  - spec/cocoa/timer_spec.rb
238
239
  - spec/helpers/attributed_string.rb
239
240
  - spec/ios/568_spec.rb
240
241
  - spec/ios/animation_chain_spec.rb
242
+ - spec/ios/base64_spec.rb
241
243
  - spec/ios/color_components_spec.rb
242
244
  - spec/ios/color_other_representations_spec.rb
243
245
  - spec/ios/color_spec.rb
@@ -259,6 +261,7 @@ files:
259
261
  - spec/ios/nsdate_delta_spec.rb
260
262
  - spec/ios/nsdate_spec.rb
261
263
  - spec/ios/nsdate_upto_spec.rb
264
+ - spec/ios/nsindexpath_spec.rb
262
265
  - spec/ios/nsorderedset_spec.rb
263
266
  - spec/ios/nsset_spec.rb
264
267
  - spec/ios/nsstring_files_spec.rb
@@ -267,6 +270,7 @@ files:
267
270
  - spec/ios/nsurl_spec.rb
268
271
  - spec/ios/numeric_spec.rb
269
272
  - spec/ios/pipes_spec.rb
273
+ - spec/ios/spritekit_spec.rb
270
274
  - spec/ios/symbol_constants_spec.rb
271
275
  - spec/ios/symbol_uicolor_spec.rb
272
276
  - spec/ios/symbol_uifont_spec.rb
@@ -289,12 +293,14 @@ files:
289
293
  - spec/ios/uiviewcontroller_spec.rb
290
294
  - spec/ios/uiwebview_spec.rb
291
295
  - spec/ios/unholy_spec.rb
296
+ - spec/osx/base64_spec.rb
292
297
  - spec/osx/color_components_spec.rb
293
298
  - spec/osx/color_other_representations_spec.rb
294
299
  - spec/osx/color_spec.rb
295
300
  - spec/osx/frameable_spec.rb
296
301
  - spec/osx/nsattributedstring_spec.rb
297
302
  - spec/osx/nsview_spec.rb
303
+ - spec/osx/spritekit_spec.rb
298
304
  - spec/osx/symbol_constants_spec.rb
299
305
  homepage: https://github.com/rubymotion/sugarcube
300
306
  licenses:
@@ -334,11 +340,11 @@ test_files:
334
340
  - spec/cocoa/nsdictionary_files_spec.rb
335
341
  - spec/cocoa/nsindexpath_spec.rb
336
342
  - spec/cocoa/numeric_time_spec.rb
337
- - spec/cocoa/spritekit_spec.rb
338
343
  - spec/cocoa/timer_spec.rb
339
344
  - spec/helpers/attributed_string.rb
340
345
  - spec/ios/568_spec.rb
341
346
  - spec/ios/animation_chain_spec.rb
347
+ - spec/ios/base64_spec.rb
342
348
  - spec/ios/color_components_spec.rb
343
349
  - spec/ios/color_other_representations_spec.rb
344
350
  - spec/ios/color_spec.rb
@@ -360,6 +366,7 @@ test_files:
360
366
  - spec/ios/nsdate_delta_spec.rb
361
367
  - spec/ios/nsdate_spec.rb
362
368
  - spec/ios/nsdate_upto_spec.rb
369
+ - spec/ios/nsindexpath_spec.rb
363
370
  - spec/ios/nsorderedset_spec.rb
364
371
  - spec/ios/nsset_spec.rb
365
372
  - spec/ios/nsstring_files_spec.rb
@@ -368,6 +375,7 @@ test_files:
368
375
  - spec/ios/nsurl_spec.rb
369
376
  - spec/ios/numeric_spec.rb
370
377
  - spec/ios/pipes_spec.rb
378
+ - spec/ios/spritekit_spec.rb
371
379
  - spec/ios/symbol_constants_spec.rb
372
380
  - spec/ios/symbol_uicolor_spec.rb
373
381
  - spec/ios/symbol_uifont_spec.rb
@@ -390,10 +398,12 @@ test_files:
390
398
  - spec/ios/uiviewcontroller_spec.rb
391
399
  - spec/ios/uiwebview_spec.rb
392
400
  - spec/ios/unholy_spec.rb
401
+ - spec/osx/base64_spec.rb
393
402
  - spec/osx/color_components_spec.rb
394
403
  - spec/osx/color_other_representations_spec.rb
395
404
  - spec/osx/color_spec.rb
396
405
  - spec/osx/frameable_spec.rb
397
406
  - spec/osx/nsattributedstring_spec.rb
398
407
  - spec/osx/nsview_spec.rb
408
+ - spec/osx/spritekit_spec.rb
399
409
  - spec/osx/symbol_constants_spec.rb