sugarcube 0.20.20 → 0.20.21

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- sugarcube (0.20.20)
4
+ sugarcube (0.20.21)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/README.md CHANGED
@@ -1757,7 +1757,8 @@ Quick wrapper for `CFUUIDCreate()` and `CFUUIDCreateString()`. Identical to the
1757
1757
  Ruby on Rails Ripoffs (RoR-R?)
1758
1758
  ---------------
1759
1759
 
1760
- aka `ActiveSupport`.
1760
+ aka `ActiveSupport`. Now that Thomas Kadauke has released [motion-support][],
1761
+ consider these extensions deprecated. They will be removed in version 1.0.
1761
1762
 
1762
1763
  ```ruby
1763
1764
  # truthiness with `blank?`
@@ -1775,7 +1776,6 @@ true.blank? # => false
1775
1776
 
1776
1777
  # and my favorite
1777
1778
  1.in? [1,2,3] # => true
1778
- 1.in? 1,2,3 # => true
1779
1779
  1.in? 4..5 # => false
1780
1780
  ```
1781
1781
 
@@ -30,17 +30,17 @@ class UIControlController < UIViewController
30
30
  @button1.center = [@button1.center.x, @button1.center.y - 30]
31
31
  self.view << @button2
32
32
 
33
- @button1.on :touch { |sender,event|
33
+ @button1.on :touch do |sender,event|
34
34
  @touched_1 = true
35
35
  @touched = sender
36
36
  @touched_count += 1
37
- }
37
+ end
38
38
 
39
- @button2.on :touch { |sender,event|
39
+ @button2.on :touch do |sender,event|
40
40
  @touched_2 = true
41
41
  @touched = sender
42
42
  @touched_count += 1
43
- }
43
+ end
44
44
 
45
45
  reset
46
46
  end
@@ -16,13 +16,14 @@ class Object
16
16
  # okay, this is strange, but `rake spec` fails if I define the method as `in?`
17
17
  # but passes if I alias it, as I do below. weird, but I don't want to fight
18
18
  # it.
19
- def in(*list)
20
- if list.length == 1
21
- return list[0].include?(self)
22
- else
23
- return list.include?(self)
19
+ def __in_workaround(args, *other_args)
20
+ if other_args.length > 0
21
+ raise "The varargs form of `Object#in?` has been removed. Use an array instead."
24
22
  end
23
+ args.include?(self)
24
+ rescue NoMethodError
25
+ raise ArgumentError.new("The parameter passed to #in? must respond to #include?")
25
26
  end
26
- alias :in? :in
27
+ alias in? __in_workaround
27
28
 
28
29
  end
@@ -61,7 +61,7 @@ class UIControl
61
61
  sendActionsForControlEvents(event_mask)
62
62
  end
63
63
 
64
- # private
64
+ private
65
65
  # event blocks need to be retained, and the addTarget method explicitly does
66
66
  # *not* retain `target`. This makes sure that callbacks are retained by
67
67
  # pushing the block onto a stack.
@@ -426,7 +426,6 @@ class UIView
426
426
  subviews.each do |subview|
427
427
  CGContextSaveGState(context)
428
428
  CGContextTranslateCTM(context, subview.frame.origin.x, subview.frame.origin.y)
429
- # CGContextConcatCTM(subview.layer.affineTransform)
430
429
  subview.layer.renderInContext(context)
431
430
  CGContextRestoreGState(context)
432
431
  end
@@ -434,7 +433,6 @@ class UIView
434
433
  UIGraphicsEndImageContext()
435
434
  else
436
435
  UIGraphicsBeginImageContextWithOptions(bounds.size, false, scale)
437
- # CGContextConcatCTM(layer.affineTransform)
438
436
  layer.renderInContext(UIGraphicsGetCurrentContext())
439
437
  image = UIGraphicsGetImageFromCurrentImageContext()
440
438
  UIGraphicsEndImageContext()
@@ -1,3 +1,3 @@
1
1
  module SugarCube
2
- Version = '0.20.20'
2
+ Version = '0.20.21'
3
3
  end
@@ -1,3 +1,10 @@
1
+ class LifeUniverseAndEverything
2
+ def include?(obj)
3
+ obj == 42
4
+ end
5
+ end
6
+
7
+
1
8
  describe 'ActiveSupport' do
2
9
 
3
10
  describe "should have a blank? method" do
@@ -60,20 +67,30 @@ describe 'ActiveSupport' do
60
67
  end
61
68
  end
62
69
 
63
- it "should have an in? method" do
64
- 1.in?(1,2,3).should == true
65
- 0.in?(1,2,3).should == false
70
+ describe "in?" do
71
+ it "should support arrays" do
72
+ 1.in?([1,2,3]).should == true
73
+ 0.in?([1,2,3]).should == false
74
+ end
66
75
 
67
- 1.in?([1,2,3]).should == true
68
- 0.in?([1,2,3]).should == false
76
+ it "should support hashes" do
77
+ :a.in?({a:1,b:2,c:3}).should == true
78
+ 1.in?({a:1,b:2,c:3}).should == false
79
+ end
69
80
 
70
- :a.in?({a:1,b:2,c:3}).should == true
71
- 1.in?({a:1,b:2,c:3}).should == false
81
+ it "should support ranges" do
82
+ 1.in?(1..3).should == true
83
+ 0.in?(1..3).should == false
84
+ end
72
85
 
73
- 1.in?(1..3).should == true
74
- 0.in?(1..3).should == false
86
+ it "should support strings" do
87
+ 'a'.in?("apple").should == true
88
+ end
75
89
 
76
- :anything.in?().should == false
90
+ it "should support anything that implements `include?`" do
91
+ 42.in?(LifeUniverseAndEverything.new).should == true
92
+ 0.in?(LifeUniverseAndEverything.new).should == false
93
+ end
77
94
  end
78
95
 
79
96
  end
data/spec/nsurl_spec.rb CHANGED
@@ -12,4 +12,8 @@ describe "NSURL" do
12
12
  NSData.should === 'https://github.com'.nsurl.nsdata
13
13
  end
14
14
 
15
+ it "should have a method #nsurlrequest" do
16
+ NSURLRequest.should === 'https://github.com'.nsurl.nsurlrequest
17
+ end
18
+
15
19
  end
@@ -1,3 +1,71 @@
1
+ describe 'UIControl' do
2
+ describe 'should have sugarcube_callbacks' do
3
+ before do
4
+ @ctrl = UIButton.new
5
+ end
6
+ after do
7
+ @ctrl.off
8
+ end
9
+
10
+ it 'should start off empty' do
11
+ @ctrl.send(:sugarcube_callbacks).should == {}
12
+ end
13
+
14
+ it 'should add a touch handler' do
15
+ @ctrl.on(:touch) {}
16
+ @ctrl.send(:sugarcube_callbacks).length.should == 1
17
+ @ctrl.send(:sugarcube_callbacks)[UIControlEventTouchUpInside].length.should == 1
18
+ end
19
+
20
+ it 'should remove the touch handler' do
21
+ @ctrl.on(:touch) {}
22
+ @ctrl.off
23
+ @ctrl.send(:sugarcube_callbacks).length.should == 0
24
+ end
25
+
26
+ it 'should add two touch handlers' do
27
+ @ctrl.on(:touch) {}
28
+ @ctrl.on(:touch) {}
29
+ @ctrl.send(:sugarcube_callbacks)[UIControlEventTouchUpInside].length.should == 2
30
+ end
31
+
32
+ it 'should remove both touch handlers' do
33
+ @ctrl.on(:touch) {}
34
+ @ctrl.on(:touch) {}
35
+ @ctrl.off
36
+ @ctrl.send(:sugarcube_callbacks).length.should == 0
37
+ end
38
+
39
+ it 'should add multiple control events' do
40
+ @ctrl.on(:touch_start, :touch_stop) {}
41
+ @ctrl.send(:sugarcube_callbacks)[UIControlEventTouchDown | UIControlEventTouchDragEnter].length.should == 1
42
+ @ctrl.send(:sugarcube_callbacks)[UIControlEventTouchUpInside | UIControlEventTouchCancel | UIControlEventTouchDragExit].length.should == 1
43
+ end
44
+
45
+ it 'should remove some events' do
46
+ @ctrl.on(:touch_start, :touch_stop) {}
47
+ @ctrl.off(:touch_start)
48
+ @ctrl.send(:sugarcube_callbacks)[UIControlEventTouchUpInside | UIControlEventTouchCancel | UIControlEventTouchDragExit].length.should == 1
49
+ end
50
+
51
+ it 'should distinguish events' do
52
+ @ctrl.on(:touch) {}
53
+ @ctrl.on(:touch_start, :touch_stop) {}
54
+ @ctrl.off(:touch_start)
55
+ @ctrl.send(:sugarcube_callbacks)[UIControlEventTouchUpInside].length.should == 1
56
+ @ctrl.send(:sugarcube_callbacks)[UIControlEventTouchUpInside | UIControlEventTouchCancel | UIControlEventTouchDragExit].length.should == 1
57
+ end
58
+
59
+ it 'should remove all events' do
60
+ @ctrl.on(:touch_start, :touch_stop) {}
61
+ @ctrl.off(:touch_start)
62
+ @ctrl.off(:touch_stop)
63
+ @ctrl.send(:sugarcube_callbacks).should == {}
64
+ end
65
+
66
+ end
67
+ end
68
+
1
69
  describe 'UIControl' do
2
70
  tests UIControlController
3
71
 
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.20.20
4
+ version: 0.20.21
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-04-29 00:00:00.000000000 Z
16
+ date: 2013-05-14 00:00:00.000000000 Z
17
17
  dependencies: []
18
18
  description: ! '== Description
19
19