sugarcube 3.0.1 → 3.0.2

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: 68747fa75c52e42414e7c2e28c5de5ca77373ed6
4
- data.tar.gz: 02929645474fcb8e1e3422338f4d1dd7c528d6a9
3
+ metadata.gz: 9aaf20dd0e772b47482d112bfb0131e6cfe44410
4
+ data.tar.gz: 6bd4d9153cdf28966eee328052bf624b43651227
5
5
  SHA512:
6
- metadata.gz: 69d952eef9daa9121014004c70ffb77d4723709e8b8cfb85eb6f106fd81000b6fc3e3c243cb4e10270fc1604a07d089a0217c7fadc3214a4c23c2cbd8da932ab
7
- data.tar.gz: 8580d434cf999780497468f68d7f206fa28aff31a8b50ea0c2b31dfbb058033fd5efd0757eaa5a64c6fa7cfec3934bf000dccaa4c637f085cb625a5132339a86
6
+ metadata.gz: 49f32218fe441b022c377be7b976c671b215ef6836b96c5f7ccd5eb58e7f0af85bfb25ae82f89c2a087f218c48b0f583d0b886146242bfaafa8fca63557dd871
7
+ data.tar.gz: 17721bd1e7e82e06bb1692e68b409c5493b33e2160ea6a95818bbfd2f285cebd2fe6c61fe5395905729385b34c0ed75fb59e1806e1fff0019f4ff0a282917699
data/README.md CHANGED
@@ -86,7 +86,7 @@ the packages you need:
86
86
  ###### Gemfile
87
87
  ```ruby
88
88
  gem 'sugarcube', :require => [
89
- 'sugarcube-uikit',
89
+ 'sugarcube-ui',
90
90
  'sugarcube-events',
91
91
  'sugarcube-gestures',
92
92
  'sugarcube-568',
@@ -103,7 +103,7 @@ require 'motion/project/template/ios'
103
103
  require 'bundler'
104
104
  Bundler.require
105
105
 
106
- require 'sugarcube-uikit'
106
+ require 'sugarcube-ui'
107
107
  require 'sugarcube-events'
108
108
  require 'sugarcube-gestures'
109
109
  require 'sugarcube-568'
@@ -192,19 +192,19 @@ Be sure to read more in the [REPL Additions][REPL Wiki] Wiki page.
192
192
 
193
193
  [REPL Wiki]: https://github.com/rubymotion/sugarcube/wiki/REPL-Additions
194
194
 
195
- UIKit ([wiki][UIKit Wiki])
195
+ UI on iOS: UIKit extensions ([wiki][UIKit Wiki])
196
196
  -----
197
197
 
198
198
  A big package chock full of methods to make working in UIKit a joy.
199
199
 
200
- > `require 'sugarcube-uikit'`
200
+ > `require 'sugarcube-ui'`
201
201
 
202
202
  A few varieties of methods are in this package:
203
203
 
204
- * Conversions: `'string-to'.uiimage`, `image.uiimageview`
204
+ * Conversions: `'string-to'.uiimage`, `image.uiimageview`, `'string-to'.uilabel(font)`
205
205
  * Helpers: shorthands for common operations, like `a_view << a_subview`, `a_subview.convert_frame_to(a_view)`
206
206
  * Symbols: `:system.uifont(20)`, `:label.uifontsize`
207
- * Frame accessors: `a_view.x`, `a_view.x = 100`
207
+ * Frame accessors: `a_view.x`, `a_view.x = 100` (on `UIView` and `CALayer`)
208
208
 
209
209
  There are too many methods to define here. Instead: a complete list of methods
210
210
  is available in the [documentation][], and the [wiki page][UIKit Wiki] is a
@@ -212,6 +212,24 @@ great source as well.
212
212
 
213
213
  [UIKit Wiki]: https://github.com/rubymotion/sugarcube/wiki/UIKit
214
214
 
215
+ UI on OS X: AppKit extensions
216
+ -----
217
+
218
+ Similar extensions as the iOS version, but using the `ns` prefix on method names:
219
+
220
+ * Conversions: `'string-to'.nsimage`, `image.nsimageview`, `'string-to'.nslabel(font)`
221
+ * Helpers: `view << subview`
222
+ * Symbols: `:white.nscolor`, `:system.nsfont`
223
+ * Frame accessors: `a_view.x`, `a_view.x = 100` (on `UIView`, `CALayer`, `NSWindow`, and `NSScreen`)
224
+
225
+ UI on Android
226
+ -----
227
+
228
+ *(warning: extending built-in classes is not reliable in RubyMotion on Android)*
229
+
230
+ ViewGroup gets the same `<<` method that you see in UIView and NSView.
231
+
232
+
215
233
  Constants
216
234
  -----
217
235
 
@@ -1256,7 +1274,7 @@ issues with missing constants).
1256
1274
  ```
1257
1275
 
1258
1276
  And you can easily turn an attributed string into a label, if you include the
1259
- `sugarcube-uikit` package.
1277
+ `sugarcube-ui` package.
1260
1278
 
1261
1279
  ```ruby
1262
1280
  view << (("We just met\n".attrd +
@@ -9,3 +9,47 @@ end
9
9
  class NSScreen
10
10
  include SugarCube::Frameable
11
11
  end
12
+
13
+ class NSWindow
14
+
15
+ def x
16
+ self.frame.origin.x
17
+ end
18
+
19
+ def setX(newX)
20
+ new_frame = self.frame
21
+ new_frame.origin.x = newX
22
+ self.setFrame(new_frame, display: false)
23
+ end
24
+
25
+ def y
26
+ self.frame.origin.y
27
+ end
28
+
29
+ def setY(newY)
30
+ new_frame = self.frame
31
+ new_frame.origin.y = newY
32
+ self.setFrame(new_frame, display: false)
33
+ end
34
+
35
+ def height
36
+ self.frame.size.height
37
+ end
38
+
39
+ def setHeight(newHeight)
40
+ new_frame = self.frame
41
+ new_frame.size.height = newHeight
42
+ self.setFrame(new_frame, display: false)
43
+ end
44
+
45
+ def width
46
+ self.frame.size.width
47
+ end
48
+
49
+ def setWidth(newWidth)
50
+ new_frame = self.frame
51
+ new_frame.size.width = newWidth
52
+ self.setFrame(new_frame, display: false)
53
+ end
54
+
55
+ end
@@ -5,8 +5,6 @@ exclude = [
5
5
  'sugarcube-common.rb',
6
6
  'sugarcube-classic.rb',
7
7
  'sugarcube-legacy.rb',
8
- 'sugarcube-uicolor.rb',
9
- 'sugarcube-uiimage.rb',
10
8
  'sugarcube-spritekit.rb',
11
9
 
12
10
  'sugarcube-568.rb',
@@ -17,16 +15,16 @@ exclude = [
17
15
  'sugarcube-pipes.rb',
18
16
  'sugarcube-repl.rb',
19
17
  'sugarcube-unholy.rb',
18
+ 'sugarcube-appkit.rb',
19
+ 'sugarcube-uikit.rb',
20
20
  ]
21
21
 
22
22
  if SugarCube.ios?
23
23
  exclude += [
24
- 'sugarcube-appkit.rb',
25
24
  ]
26
25
  elsif SugarCube.osx?
27
26
  exclude += [
28
27
  'sugarcube-modal.rb',
29
- 'sugarcube-uikit.rb',
30
28
  ]
31
29
  end
32
30
 
@@ -5,25 +5,23 @@ exclude = [
5
5
  'sugarcube-common.rb',
6
6
  'sugarcube-classic.rb',
7
7
  'sugarcube-legacy.rb',
8
- 'sugarcube-uicolor.rb',
9
- 'sugarcube-uiimage.rb',
10
8
 
11
9
  'sugarcube-anonymous.rb',
12
10
  'sugarcube-awesome.rb',
13
11
  'sugarcube-pipes.rb',
14
12
  'sugarcube-unholy.rb',
13
+ 'sugarcube-appkit.rb',
14
+ 'sugarcube-uikit.rb',
15
15
  ]
16
16
 
17
17
  if SugarCube.ios?
18
18
  exclude += [
19
- 'sugarcube-appkit.rb',
20
19
  ]
21
20
  elsif SugarCube.osx?
22
21
  exclude += [
23
22
  'sugarcube-568.rb',
24
23
  'sugarcube-gestures.rb',
25
24
  'sugarcube-modal.rb',
26
- 'sugarcube-uikit.rb',
27
25
  ]
28
26
  end
29
27
 
@@ -1,3 +1,3 @@
1
1
  module SugarCube
2
- Version = '3.0.1'
2
+ Version = '3.0.2'
3
3
  end
@@ -0,0 +1,178 @@
1
+ describe SugarCube::Frameable do
2
+
3
+ describe NSView do
4
+
5
+ it 'should return x' do
6
+ view = NSView.alloc.initWithFrame([[100, 200], [300, 400]])
7
+ view.x.should == view.frame.origin.x
8
+ end
9
+
10
+ it 'should set x' do
11
+ view = NSView.alloc.initWithFrame([[100, 200], [300, 400]])
12
+ view.x = 500
13
+ view.x.should == 500
14
+ end
15
+
16
+ it 'should return y' do
17
+ view = NSView.alloc.initWithFrame([[100, 200], [300, 400]])
18
+ view.y.should == view.frame.origin.y
19
+ end
20
+
21
+ it 'should set y' do
22
+ view = NSView.alloc.initWithFrame([[100, 200], [300, 400]])
23
+ view.y = 500
24
+ view.y.should == 500
25
+ end
26
+
27
+ it 'should return width' do
28
+ view = NSView.alloc.initWithFrame([[100, 200], [300, 400]])
29
+ view.width.should == view.frame.size.width
30
+ end
31
+
32
+ it 'should set width' do
33
+ view = NSView.alloc.initWithFrame([[100, 200], [300, 400]])
34
+ view.width = 500
35
+ view.width.should == 500
36
+ end
37
+
38
+ it 'should return height' do
39
+ view = NSView.alloc.initWithFrame([[100, 200], [300, 400]])
40
+ view.height.should == view.frame.size.height
41
+ end
42
+
43
+ it 'should set height' do
44
+ view = NSView.alloc.initWithFrame([[100, 200], [300, 400]])
45
+ view.height = 500
46
+ view.height.should == 500
47
+ end
48
+
49
+ end
50
+
51
+ describe CALayer do
52
+
53
+ it 'should return x' do
54
+ layer = CALayer.layer
55
+ layer.frame = [[100, 200], [300, 400]]
56
+ layer.x.should == layer.frame.origin.x
57
+ end
58
+
59
+ it 'should set x' do
60
+ layer = CALayer.layer
61
+ layer.frame = [[100, 200], [300, 400]]
62
+ layer.x = 500
63
+ layer.x.should == 500
64
+ end
65
+
66
+ it 'should return y' do
67
+ layer = CALayer.layer
68
+ layer.frame = [[100, 200], [300, 400]]
69
+ layer.y.should == layer.frame.origin.y
70
+ end
71
+
72
+ it 'should set y' do
73
+ layer = CALayer.layer
74
+ layer.frame = [[100, 200], [300, 400]]
75
+ layer.y = 500
76
+ layer.y.should == 500
77
+ end
78
+
79
+ it 'should return width' do
80
+ layer = CALayer.layer
81
+ layer.frame = [[100, 200], [300, 400]]
82
+ layer.width.should == layer.frame.size.width
83
+ end
84
+
85
+ it 'should set width' do
86
+ layer = CALayer.layer
87
+ layer.frame = [[100, 200], [300, 400]]
88
+ layer.width = 500
89
+ layer.width.should == 500
90
+ end
91
+
92
+ it 'should return height' do
93
+ layer = CALayer.layer
94
+ layer.frame = [[100, 200], [300, 400]]
95
+ layer.height.should == layer.frame.size.height
96
+ end
97
+
98
+ it 'should set height' do
99
+ layer = CALayer.layer
100
+ layer.frame = [[100, 200], [300, 400]]
101
+ layer.height = 500
102
+ layer.height.should == 500
103
+ end
104
+
105
+ end
106
+
107
+ describe NSWindow do
108
+
109
+ before do
110
+ @window = NSWindow.alloc.initWithContentRect([[240, 180], [480, 360]],
111
+ styleMask: NSTitledWindowMask|NSClosableWindowMask|NSMiniaturizableWindowMask|NSResizableWindowMask,
112
+ backing: NSBackingStoreBuffered,
113
+ defer: false)
114
+ end
115
+
116
+ it 'should return x' do
117
+ @window.x.should == @window.frame.origin.x
118
+ end
119
+
120
+ it 'should set x' do
121
+ @window.x = 500
122
+ @window.x.should == 500
123
+ end
124
+
125
+ it 'should return y' do
126
+ @window.y.should == @window.frame.origin.y
127
+ end
128
+
129
+ it 'should set y' do
130
+ @window.y = 500
131
+ @window.y.should == 500
132
+ end
133
+
134
+ it 'should return width' do
135
+ @window.width.should == @window.frame.size.width
136
+ end
137
+
138
+ it 'should set width' do
139
+ @window.width = 500
140
+ @window.width.should == 500
141
+ end
142
+
143
+ it 'should return height' do
144
+ @window.height.should == @window.frame.size.height
145
+ end
146
+
147
+ it 'should set height' do
148
+ @window.height = 500
149
+ @window.height.should == 500
150
+ end
151
+
152
+ end
153
+
154
+ describe NSScreen do
155
+
156
+ it 'should return x' do
157
+ view = NSScreen.alloc.initWithFrame([[100, 200], [300, 400]])
158
+ view.x.should == view.frame.origin.x
159
+ end
160
+
161
+ it 'should return y' do
162
+ view = NSScreen.alloc.initWithFrame([[100, 200], [300, 400]])
163
+ view.y.should == view.frame.origin.y
164
+ end
165
+
166
+ it 'should return width' do
167
+ view = NSScreen.alloc.initWithFrame([[100, 200], [300, 400]])
168
+ view.width.should == view.frame.size.width
169
+ end
170
+
171
+ it 'should return height' do
172
+ view = NSScreen.alloc.initWithFrame([[100, 200], [300, 400]])
173
+ view.height.should == view.frame.size.height
174
+ end
175
+
176
+ end
177
+
178
+ 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.0.1
4
+ version: 3.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Colin T.A. Gray
@@ -285,6 +285,7 @@ files:
285
285
  - spec/osx/color_components_spec.rb
286
286
  - spec/osx/color_other_representations_spec.rb
287
287
  - spec/osx/color_spec.rb
288
+ - spec/osx/frameable_spec.rb
288
289
  - spec/osx/nsattributedstring_spec.rb
289
290
  - spec/osx/nsview_spec.rb
290
291
  - spec/osx/symbol_constants_spec.rb
@@ -383,6 +384,7 @@ test_files:
383
384
  - spec/osx/color_components_spec.rb
384
385
  - spec/osx/color_other_representations_spec.rb
385
386
  - spec/osx/color_spec.rb
387
+ - spec/osx/frameable_spec.rb
386
388
  - spec/osx/nsattributedstring_spec.rb
387
389
  - spec/osx/nsview_spec.rb
388
390
  - spec/osx/symbol_constants_spec.rb