geomotion 0.12.3 → 0.13.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/Gemfile.lock +1 -1
- data/README.md +20 -0
- data/lib/geomotion/cg_point.rb +1 -0
- data/lib/geomotion/cg_rect.rb +131 -58
- data/lib/geomotion/version.rb +1 -1
- data/spec/cg_rect_spec.rb +150 -20
- metadata +2 -2
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -189,6 +189,26 @@ frame.top_center(true) # => [15, 10]
|
|
189
189
|
frame.bottom_right(true) # => [20, 20]
|
190
190
|
```
|
191
191
|
|
192
|
+
#### The great and powerful `apply` method
|
193
|
+
|
194
|
+
All of the methods that return a new frame (`left, shrink, below` and friends)
|
195
|
+
also accept a hash in which you can apply more changes. You can accomplish the
|
196
|
+
same thing using method chaining; this is an implementation detail that might
|
197
|
+
also clean your code up by grouping changes. And, of course, it can be used on
|
198
|
+
its own as well.
|
199
|
+
|
200
|
+
```ruby
|
201
|
+
frame = CGRect.make(x: 10, y: 10, width:10, height: 10)
|
202
|
+
frame.beside.width(20).down(10).height(20)
|
203
|
+
# => [[20, 20], [20, 20]]
|
204
|
+
# or, using the options hash
|
205
|
+
frame.beside(width: 20, down: 10, height: 20)
|
206
|
+
|
207
|
+
# there are some changes that don't have a corresponding method:
|
208
|
+
frame.below(grow_width: 10, grow_up: 5)
|
209
|
+
# => [[0, 15], [40, 25]]
|
210
|
+
```
|
211
|
+
|
192
212
|
### CGSize
|
193
213
|
|
194
214
|
```ruby
|
data/lib/geomotion/cg_point.rb
CHANGED
data/lib/geomotion/cg_rect.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
class CGRect
|
2
|
+
|
2
3
|
# CGRect.make # default rect: {origin: {x: 0, y: 0}, size: {width:0, height:0}}
|
3
4
|
# # aka CGRectZero
|
4
5
|
# CGRect.make(x: 10, y: 30) # default size: [0, 0]
|
@@ -100,7 +101,7 @@ class CGRect
|
|
100
101
|
# getters/setters
|
101
102
|
def x(setter = nil)
|
102
103
|
if setter
|
103
|
-
return CGRect.new([setter, self.y], self.size)
|
104
|
+
return CGRect.new([setter, self.origin.y], self.size)
|
104
105
|
end
|
105
106
|
min_x
|
106
107
|
end
|
@@ -111,7 +112,7 @@ class CGRect
|
|
111
112
|
|
112
113
|
def y(setter = nil)
|
113
114
|
if setter
|
114
|
-
return CGRect.new([self.x, setter], self.size)
|
115
|
+
return CGRect.new([self.origin.x, setter], self.size)
|
115
116
|
end
|
116
117
|
min_y
|
117
118
|
end
|
@@ -122,7 +123,7 @@ class CGRect
|
|
122
123
|
|
123
124
|
def width(setter = nil)
|
124
125
|
if setter
|
125
|
-
return CGRect.new(self.origin, [setter, self.height])
|
126
|
+
return CGRect.new(self.origin, [setter, self.size.height])
|
126
127
|
end
|
127
128
|
CGRectGetWidth(self)
|
128
129
|
end
|
@@ -133,7 +134,7 @@ class CGRect
|
|
133
134
|
|
134
135
|
def height(setter = nil)
|
135
136
|
if setter
|
136
|
-
return CGRect.new(self.origin, [self.width, setter])
|
137
|
+
return CGRect.new(self.origin, [self.size.width, setter])
|
137
138
|
end
|
138
139
|
CGRectGetHeight(self)
|
139
140
|
end
|
@@ -142,70 +143,134 @@ class CGRect
|
|
142
143
|
self.size.height = _height
|
143
144
|
end
|
144
145
|
|
145
|
-
#
|
146
|
-
def
|
147
|
-
CGRect.new(
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
146
|
+
# most rect modifiers call this method in one way or another
|
147
|
+
def apply(options)
|
148
|
+
rect = CGRectStandardize(CGRect.new(self.origin, self.size))
|
149
|
+
options.each do |method, value|
|
150
|
+
case method
|
151
|
+
when :left
|
152
|
+
rect.origin.x -= value
|
153
|
+
when :right
|
154
|
+
rect.origin.x += value
|
155
|
+
when :up
|
156
|
+
rect.origin.y -= value
|
157
|
+
when :down
|
158
|
+
rect.origin.y += value
|
159
|
+
when :wider, :grow_right
|
160
|
+
rect.size.width += value
|
161
|
+
when :thinner, :shrink_left
|
162
|
+
rect.size.width -= value
|
163
|
+
when :taller, :grow_down
|
164
|
+
rect.size.height += value
|
165
|
+
when :shorter, :shrink_up
|
166
|
+
rect.size.height -= value
|
167
|
+
when :x
|
168
|
+
rect.origin.x = value
|
169
|
+
when :y
|
170
|
+
rect.origin.y = value
|
171
|
+
when :origin
|
172
|
+
rect.origin = value
|
173
|
+
when :width
|
174
|
+
rect.size.width = value
|
175
|
+
when :height
|
176
|
+
rect.size.height = value
|
177
|
+
when :size
|
178
|
+
rect.size = value
|
179
|
+
when :grow
|
180
|
+
rect = rect.grow(value)
|
181
|
+
when :grow_up
|
182
|
+
rect.size.height += value
|
183
|
+
rect.origin.y -= value
|
184
|
+
when :shrink_down
|
185
|
+
rect.size.height -= value
|
186
|
+
rect.origin.y += value
|
187
|
+
when :grow_left
|
188
|
+
rect.size.width += value
|
189
|
+
rect.origin.x -= value
|
190
|
+
when :shrink_right
|
191
|
+
rect.size.width -= value
|
192
|
+
rect.origin.x += value
|
193
|
+
when :grow_width
|
194
|
+
rect = rect.grow([value, 0])
|
195
|
+
when :grow_height
|
196
|
+
rect = rect.grow([0, value])
|
197
|
+
when :shrink
|
198
|
+
rect = rect.shrink(value)
|
199
|
+
when :shrink_width
|
200
|
+
rect = rect.shrink([value, 0])
|
201
|
+
when :shrink_height
|
202
|
+
rect = rect.shrink([0, value])
|
203
|
+
when :offset
|
204
|
+
rect = rect.offset(value)
|
205
|
+
else
|
206
|
+
raise "Unknow option #{method}"
|
207
|
+
end
|
208
|
+
end
|
209
|
+
return rect
|
160
210
|
end
|
161
211
|
|
162
|
-
|
163
|
-
|
212
|
+
# modified rects
|
213
|
+
def left(dist = 0, options={})
|
214
|
+
options[:left] = dist
|
215
|
+
self.apply(options)
|
164
216
|
end
|
165
217
|
|
166
|
-
def
|
167
|
-
|
218
|
+
def right(dist = 0, options={})
|
219
|
+
options[:right] = dist
|
220
|
+
self.apply(options)
|
168
221
|
end
|
169
222
|
|
170
|
-
def
|
171
|
-
|
223
|
+
def up(dist = 0, options={})
|
224
|
+
options[:up] = dist
|
225
|
+
self.apply(options)
|
172
226
|
end
|
173
227
|
|
174
|
-
def
|
175
|
-
|
228
|
+
def down(dist = 0, options={})
|
229
|
+
options[:down] = dist
|
230
|
+
self.apply(options)
|
176
231
|
end
|
177
232
|
|
178
|
-
|
179
|
-
|
180
|
-
self.
|
233
|
+
def wider(dist, options={})
|
234
|
+
options[:wider] = dist
|
235
|
+
self.apply(options)
|
181
236
|
end
|
182
237
|
|
183
|
-
def
|
184
|
-
|
238
|
+
def thinner(dist, options={})
|
239
|
+
options[:thinner] = dist
|
240
|
+
self.apply(options)
|
185
241
|
end
|
186
242
|
|
187
|
-
def
|
188
|
-
|
243
|
+
def taller(dist, options={})
|
244
|
+
options[:taller] = dist
|
245
|
+
self.apply(options)
|
189
246
|
end
|
190
247
|
|
191
|
-
def
|
192
|
-
|
248
|
+
def shorter(dist, options={})
|
249
|
+
options[:shorter] = dist
|
250
|
+
self.apply(options)
|
193
251
|
end
|
194
252
|
|
195
|
-
|
196
|
-
|
253
|
+
# adjacent rects
|
254
|
+
def above(margin = 0, options={})
|
255
|
+
height = options[:height] || self.size.height
|
256
|
+
options[:up] = height + margin
|
257
|
+
self.apply(options)
|
197
258
|
end
|
198
259
|
|
199
|
-
def
|
200
|
-
|
260
|
+
def below(margin = 0, options={})
|
261
|
+
options[:down] = self.size.height + margin
|
262
|
+
self.apply(options)
|
201
263
|
end
|
202
264
|
|
203
|
-
def
|
204
|
-
|
265
|
+
def before(margin = 0, options={})
|
266
|
+
width = options[:width] || self.size.width
|
267
|
+
options[:left] = width + margin
|
268
|
+
self.apply(options)
|
205
269
|
end
|
206
270
|
|
207
|
-
def beside(margin,
|
208
|
-
|
271
|
+
def beside(margin = 0, options={})
|
272
|
+
options[:right] = self.size.width + margin
|
273
|
+
self.apply(options)
|
209
274
|
end
|
210
275
|
|
211
276
|
# positions
|
@@ -220,7 +285,7 @@ private
|
|
220
285
|
|
221
286
|
public
|
222
287
|
def center(absolute = false)
|
223
|
-
cgrect_offset(absolute) + CGPoint.new(self.width / 2, self.height / 2)
|
288
|
+
cgrect_offset(absolute) + CGPoint.new(self.size.width / 2, self.size.height / 2)
|
224
289
|
end
|
225
290
|
|
226
291
|
def top_left(absolute = false)
|
@@ -228,36 +293,36 @@ public
|
|
228
293
|
end
|
229
294
|
|
230
295
|
def top_center(absolute = false)
|
231
|
-
cgrect_offset(absolute) + CGPoint.new(self.width / 2, 0)
|
296
|
+
cgrect_offset(absolute) + CGPoint.new(self.size.width / 2, 0)
|
232
297
|
end
|
233
298
|
|
234
299
|
def top_right(absolute = false)
|
235
|
-
cgrect_offset(absolute) + CGPoint.new(self.width, 0)
|
300
|
+
cgrect_offset(absolute) + CGPoint.new(self.size.width, 0)
|
236
301
|
end
|
237
302
|
|
238
303
|
def center_right(absolute = false)
|
239
|
-
cgrect_offset(absolute) + CGPoint.new(self.width, self.height / 2)
|
304
|
+
cgrect_offset(absolute) + CGPoint.new(self.size.width, self.size.height / 2)
|
240
305
|
end
|
241
306
|
|
242
307
|
def bottom_right(absolute = false)
|
243
|
-
cgrect_offset(absolute) + CGPoint.new(self.width, self.height)
|
308
|
+
cgrect_offset(absolute) + CGPoint.new(self.size.width, self.size.height)
|
244
309
|
end
|
245
310
|
|
246
311
|
def bottom_center(absolute = false)
|
247
|
-
cgrect_offset(absolute) + CGPoint.new(self.width / 2, self.height)
|
312
|
+
cgrect_offset(absolute) + CGPoint.new(self.size.width / 2, self.size.height)
|
248
313
|
end
|
249
314
|
|
250
315
|
def bottom_left(absolute = false)
|
251
|
-
cgrect_offset(absolute) + CGPoint.new(0, self.height)
|
316
|
+
cgrect_offset(absolute) + CGPoint.new(0, self.size.height)
|
252
317
|
end
|
253
318
|
|
254
319
|
def center_left(absolute = false)
|
255
|
-
cgrect_offset(absolute) + CGPoint.new(0, self.height / 2)
|
320
|
+
cgrect_offset(absolute) + CGPoint.new(0, self.size.height / 2)
|
256
321
|
end
|
257
322
|
|
258
323
|
# others
|
259
324
|
def round
|
260
|
-
CGRect.new([self.x.round, self.y.round], [self.width.round, self.height.round])
|
325
|
+
CGRect.new([self.origin.x.round, self.origin.y.round], [self.size.width.round, self.size.height.round])
|
261
326
|
end
|
262
327
|
|
263
328
|
def centered_in(rect, absolute = false)
|
@@ -269,7 +334,7 @@ public
|
|
269
334
|
when CGRect
|
270
335
|
return self.union_with(other)
|
271
336
|
when CGSize
|
272
|
-
return CGRect.new([self.x, self.y], [self.width + other.width, self.height + other.height])
|
337
|
+
return CGRect.new([self.origin.x, self.origin.y], [self.size.width + other.width, self.size.height + other.height])
|
273
338
|
when CGPoint
|
274
339
|
return self.offset(other.x, other.y)
|
275
340
|
when UIOffset
|
@@ -319,18 +384,26 @@ public
|
|
319
384
|
end
|
320
385
|
end
|
321
386
|
|
322
|
-
def grow(size)
|
387
|
+
def grow(size, options=nil)
|
323
388
|
if size.is_a? Numeric
|
324
389
|
size = CGSize.new(size, size)
|
325
390
|
end
|
326
|
-
CGRectInset(self, -size[0], -size[1])
|
391
|
+
rect = CGRectInset(self, -size[0], -size[1])
|
392
|
+
if options
|
393
|
+
return rect.apply(options)
|
394
|
+
end
|
395
|
+
return rect
|
327
396
|
end
|
328
397
|
|
329
|
-
def shrink(size)
|
398
|
+
def shrink(size, options=nil)
|
330
399
|
if size.is_a? Numeric
|
331
400
|
size = CGSize.new(size, size)
|
332
401
|
end
|
333
|
-
CGRectInset(self, size[0], size[1])
|
402
|
+
rect = CGRectInset(self, size[0], size[1])
|
403
|
+
if options
|
404
|
+
return rect.apply(options)
|
405
|
+
end
|
406
|
+
return rect
|
334
407
|
end
|
335
408
|
|
336
409
|
def empty?
|
data/lib/geomotion/version.rb
CHANGED
data/spec/cg_rect_spec.rb
CHANGED
@@ -158,7 +158,7 @@ describe "CGRect" do
|
|
158
158
|
it "returns copy when has args" do
|
159
159
|
rect = @rect.x(20)
|
160
160
|
rect.is_a?(CGRect).should == true
|
161
|
-
|
161
|
+
rect.should == CGRectMake(20, 100, 50, 20)
|
162
162
|
end
|
163
163
|
end
|
164
164
|
|
@@ -183,7 +183,7 @@ describe "CGRect" do
|
|
183
183
|
it "returns copy when has args" do
|
184
184
|
rect = @rect.y(20)
|
185
185
|
rect.is_a?(CGRect).should == true
|
186
|
-
|
186
|
+
rect.should == CGRectMake(10, 20, 50, 20)
|
187
187
|
end
|
188
188
|
end
|
189
189
|
|
@@ -206,7 +206,7 @@ describe "CGRect" do
|
|
206
206
|
it "returns copy when has args" do
|
207
207
|
rect = @rect.width(20)
|
208
208
|
rect.is_a?(CGRect).should == true
|
209
|
-
|
209
|
+
rect.should == CGRectMake(10, 100, 20, 20)
|
210
210
|
end
|
211
211
|
end
|
212
212
|
|
@@ -229,7 +229,7 @@ describe "CGRect" do
|
|
229
229
|
it "returns copy when has args" do
|
230
230
|
rect = @rect.height(50)
|
231
231
|
rect.is_a?(CGRect).should == true
|
232
|
-
|
232
|
+
rect.should == CGRectMake(10, 100, 50, 50)
|
233
233
|
end
|
234
234
|
end
|
235
235
|
|
@@ -608,50 +608,50 @@ describe "CGRect" do
|
|
608
608
|
it "works with CGRect" do
|
609
609
|
_rect = CGRectMake(10, 100, 50, 20)
|
610
610
|
rect = (_rect + CGRectMake(0, 0, 50, 110))
|
611
|
-
|
611
|
+
rect.should == CGRectMake(0, 0, 60, 120)
|
612
612
|
end
|
613
613
|
|
614
614
|
it "works with CGSize" do
|
615
615
|
size = CGSizeMake(50, 20)
|
616
616
|
rect = (@rect + size)
|
617
|
-
|
617
|
+
rect.should == CGRectMake(10, 100, 100, 40)
|
618
618
|
end
|
619
619
|
|
620
620
|
it "works with CGPoint" do
|
621
621
|
point = CGPointMake(50, 20)
|
622
622
|
rect = (@rect + point)
|
623
|
-
|
623
|
+
rect.should == CGRectMake(60, 120, 50, 20)
|
624
624
|
end
|
625
625
|
|
626
626
|
it "works with UIOffset" do
|
627
627
|
offset = UIOffsetMake(50, 20)
|
628
628
|
rect = (@rect + offset)
|
629
|
-
|
629
|
+
rect.should == CGRectMake(60, 120, 50, 20)
|
630
630
|
end
|
631
631
|
|
632
632
|
it "works with UIEdgeInsets" do
|
633
633
|
insets = UIEdgeInsetsMake(10, 10, 10, 5)
|
634
634
|
rect = (@rect + insets)
|
635
|
-
|
635
|
+
rect.should == CGRectMake(20, 110, 35, 0)
|
636
636
|
end
|
637
637
|
end
|
638
638
|
|
639
639
|
describe "offset" do
|
640
640
|
it "works with x, y" do
|
641
641
|
rect = @rect.offset(50, 20)
|
642
|
-
|
642
|
+
rect.should == CGRectMake(60, 120, 50, 20)
|
643
643
|
end
|
644
644
|
|
645
645
|
it "works with CGPoint" do
|
646
646
|
point = CGPointMake(50, 20)
|
647
647
|
rect = @rect.offset(point)
|
648
|
-
|
648
|
+
rect.should == CGRectMake(60, 120, 50, 20)
|
649
649
|
end
|
650
650
|
|
651
651
|
it "works with UIOffset" do
|
652
652
|
offset = UIOffsetMake(50, 20)
|
653
653
|
rect = @rect.offset(offset)
|
654
|
-
|
654
|
+
rect.should == CGRectMake(60, 120, 50, 20)
|
655
655
|
end
|
656
656
|
end
|
657
657
|
|
@@ -659,7 +659,7 @@ describe "CGRect" do
|
|
659
659
|
it "works with UIEdgeInsets" do
|
660
660
|
insets = UIEdgeInsetsMake(10, 10, 10, 5)
|
661
661
|
rect = @rect.inset(insets)
|
662
|
-
|
662
|
+
rect.should == CGRectMake(20, 110, 35, 0)
|
663
663
|
end
|
664
664
|
end
|
665
665
|
|
@@ -686,7 +686,7 @@ describe "CGRect" do
|
|
686
686
|
lower_rect = CGRectMake(0, 0, 100, 100)
|
687
687
|
upper_rect = CGRectMake(10, 10, 100, 100)
|
688
688
|
rect = lower_rect.intersection_with(upper_rect)
|
689
|
-
|
689
|
+
rect.should == CGRectMake(10, 10, 90, 90)
|
690
690
|
end
|
691
691
|
end
|
692
692
|
|
@@ -695,36 +695,166 @@ describe "CGRect" do
|
|
695
695
|
lower_rect = CGRectMake(0, 0, 100, 100)
|
696
696
|
upper_rect = CGRectMake(10, 10, 100, 100)
|
697
697
|
rect = lower_rect.union_with(upper_rect)
|
698
|
-
|
698
|
+
rect.should == CGRectMake(0, 0, 110, 110)
|
699
699
|
end
|
700
700
|
end
|
701
701
|
|
702
702
|
describe "#grow" do
|
703
703
|
it "should work with Numeric" do
|
704
704
|
rect = @rect.grow(10)
|
705
|
-
|
705
|
+
rect.should == CGRectMake(0, 90, 70, 40)
|
706
706
|
end
|
707
707
|
|
708
708
|
it "should work with CGSize" do
|
709
709
|
rect = @rect.grow(CGSizeMake(10, 20))
|
710
|
-
|
710
|
+
rect.should == CGRectMake(0, 80, 70, 60)
|
711
711
|
end
|
712
712
|
end
|
713
713
|
|
714
714
|
describe "#shrink" do
|
715
715
|
it "should work with Numeric" do
|
716
716
|
rect = @rect.shrink(10)
|
717
|
-
|
717
|
+
rect.should == CGRectMake(20, 110, 30, 0)
|
718
718
|
end
|
719
719
|
|
720
720
|
it "should work with CGSize" do
|
721
721
|
rect = @rect.shrink(CGSizeMake(20, 10))
|
722
|
-
|
722
|
+
rect.should == CGRectMake(30, 110, 10, 0)
|
723
723
|
end
|
724
724
|
|
725
725
|
it "should work with Array" do
|
726
726
|
rect = @rect.shrink([20, 10])
|
727
|
-
|
727
|
+
rect.should == CGRectMake(30, 110, 10, 0)
|
728
728
|
end
|
729
729
|
end
|
730
|
+
|
731
|
+
describe "#apply" do
|
732
|
+
|
733
|
+
it "should support :left" do
|
734
|
+
rect = @rect.apply(left: 10)
|
735
|
+
rect.should == CGRectMake(0, 100, 50, 20)
|
736
|
+
end
|
737
|
+
|
738
|
+
it "should support :right" do
|
739
|
+
rect = @rect.apply(right: 10)
|
740
|
+
rect.should == CGRectMake(20, 100, 50, 20)
|
741
|
+
end
|
742
|
+
|
743
|
+
it "should support :up" do
|
744
|
+
rect = @rect.apply(up: 10)
|
745
|
+
rect.should == CGRectMake(10, 90, 50, 20)
|
746
|
+
end
|
747
|
+
|
748
|
+
it "should support :down" do
|
749
|
+
rect = @rect.apply(down: 10)
|
750
|
+
rect.should == CGRectMake(10, 110, 50, 20)
|
751
|
+
end
|
752
|
+
|
753
|
+
it "should support :wider" do
|
754
|
+
rect = @rect.apply(wider: 10)
|
755
|
+
rect.should == CGRectMake(10, 100, 60, 20)
|
756
|
+
end
|
757
|
+
|
758
|
+
it "should support :thinner" do
|
759
|
+
rect = @rect.apply(thinner: 10)
|
760
|
+
rect.should == CGRectMake(10, 100, 40, 20)
|
761
|
+
end
|
762
|
+
|
763
|
+
it "should support :taller" do
|
764
|
+
rect = @rect.apply(taller: 10)
|
765
|
+
rect.should == CGRectMake(10, 100, 50, 30)
|
766
|
+
end
|
767
|
+
|
768
|
+
it "should support :shorter" do
|
769
|
+
rect = @rect.apply(shorter: 10)
|
770
|
+
rect.should == CGRectMake(10, 100, 50, 10)
|
771
|
+
end
|
772
|
+
|
773
|
+
it "should support :x" do
|
774
|
+
rect = @rect.apply(x: 11)
|
775
|
+
rect.should == CGRectMake(11, 100, 50, 20)
|
776
|
+
end
|
777
|
+
|
778
|
+
it "should support :y" do
|
779
|
+
rect = @rect.apply(y: 10)
|
780
|
+
rect.should == CGRectMake(10, 10, 50, 20)
|
781
|
+
end
|
782
|
+
|
783
|
+
it "should support :origin" do
|
784
|
+
rect = @rect.apply(origin: [11, 10])
|
785
|
+
rect.should == CGRectMake(11, 10, 50, 20)
|
786
|
+
end
|
787
|
+
|
788
|
+
it "should support :width" do
|
789
|
+
rect = @rect.apply(width: 10)
|
790
|
+
rect.should == CGRectMake(10, 100, 10, 20)
|
791
|
+
end
|
792
|
+
|
793
|
+
it "should support :height" do
|
794
|
+
rect = @rect.apply(height: 10)
|
795
|
+
rect.should == CGRectMake(10, 100, 50, 10)
|
796
|
+
end
|
797
|
+
|
798
|
+
it "should support :size" do
|
799
|
+
rect = @rect.apply(size: [10, 10])
|
800
|
+
rect.should == CGRectMake(10, 100, 10, 10)
|
801
|
+
end
|
802
|
+
|
803
|
+
it "should support :grow" do
|
804
|
+
rect = @rect.apply(grow: 10)
|
805
|
+
rect.should == CGRectMake(0, 90, 70, 40)
|
806
|
+
end
|
807
|
+
|
808
|
+
it "should support :grow_up" do
|
809
|
+
rect = @rect.apply(grow_up: 10)
|
810
|
+
rect.should == CGRectMake(10, 90, 50, 30)
|
811
|
+
end
|
812
|
+
|
813
|
+
it "should support :shrink_down" do
|
814
|
+
rect = @rect.apply(shrink_down: 10)
|
815
|
+
rect.should == CGRectMake(10, 110, 50, 10)
|
816
|
+
end
|
817
|
+
|
818
|
+
it "should support :grow_left" do
|
819
|
+
rect = @rect.apply(grow_left: 10)
|
820
|
+
rect.should == CGRectMake(0, 100, 60, 20)
|
821
|
+
end
|
822
|
+
|
823
|
+
it "should support :shrink_right" do
|
824
|
+
rect = @rect.apply(shrink_right: 10)
|
825
|
+
rect.should == CGRectMake(20, 100, 40, 20)
|
826
|
+
end
|
827
|
+
|
828
|
+
it "should support :grow_width" do
|
829
|
+
rect = @rect.apply(grow_width: 10)
|
830
|
+
rect.should == CGRectMake(0, 100, 70, 20)
|
831
|
+
end
|
832
|
+
|
833
|
+
it "should support :grow_height" do
|
834
|
+
rect = @rect.apply(grow_height: 10)
|
835
|
+
rect.should == CGRectMake(10, 90, 50, 40)
|
836
|
+
end
|
837
|
+
|
838
|
+
it "should support :shrink" do
|
839
|
+
rect = @rect.apply(shrink: 10)
|
840
|
+
rect.should == CGRectMake(20, 110, 30, 0)
|
841
|
+
end
|
842
|
+
|
843
|
+
it "should support :shrink_width" do
|
844
|
+
rect = @rect.apply(shrink_width: 10)
|
845
|
+
rect.should == CGRectMake(20, 100, 30, 20)
|
846
|
+
end
|
847
|
+
|
848
|
+
it "should support :shrink_height" do
|
849
|
+
rect = @rect.apply(shrink_height: 10)
|
850
|
+
rect.should == CGRectMake(10, 110, 50, 0)
|
851
|
+
end
|
852
|
+
|
853
|
+
it "should support :offset" do
|
854
|
+
rect = @rect.apply(offset: [10, 10])
|
855
|
+
rect.should == CGRectMake(20, 110, 50, 20)
|
856
|
+
end
|
857
|
+
|
858
|
+
end
|
859
|
+
|
730
860
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: geomotion
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.13.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2013-
|
13
|
+
date: 2013-10-05 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rake
|