sugarcube 1.3.4 → 1.3.5

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.
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- sugarcube (1.3.4)
4
+ sugarcube (1.3.5)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -23,7 +23,10 @@ class NSString
23
23
  def nsattributedstring(attributes={})
24
24
  NSAttributedString.alloc.initWithString(self, attributes: attributes)
25
25
  end
26
- alias attrd nsattributedstring
26
+
27
+ def attrd
28
+ self.nsattributedstring
29
+ end
27
30
 
28
31
  end
29
32
 
@@ -147,6 +150,10 @@ class NSAttributedString
147
150
  self
148
151
  end
149
152
 
153
+ def attrd
154
+ self.nsattributedstring
155
+ end
156
+
150
157
  def +(attributedstring)
151
158
  NSMutableAttributedString.alloc.initWithAttributedString(self) + attributedstring.nsattributedstring
152
159
  end
@@ -12,4 +12,9 @@ Motion::Project::App.setup do |app|
12
12
  Dir.glob(File.join(File.dirname(__FILE__), 'sugarcube-events/**/*.rb')).reverse.each do |file|
13
13
  app.files.insert(insert_point, file)
14
14
  end
15
+
16
+ cleanup = File.join(File.dirname(__FILE__), 'sugarcube/sugarcube_cleanup.rb')
17
+ uicontrol = File.join(File.dirname(__FILE__), 'sugarcube-events/uicontrol.rb')
18
+ uitextview = File.join(File.dirname(__FILE__), 'sugarcube-events/uitextview.rb')
19
+ app.files_dependencies uicontrol => [cleanup], uitextview => [cleanup]
15
20
  end
@@ -12,4 +12,8 @@ Motion::Project::App.setup do |app|
12
12
  Dir.glob(File.join(File.dirname(__FILE__), 'sugarcube-gestures/**/*.rb')).reverse.each do |file|
13
13
  app.files.insert(insert_point, file)
14
14
  end
15
+
16
+ cleanup = File.join(File.dirname(__FILE__), 'sugarcube/sugarcube_cleanup.rb')
17
+ gestures = File.join(File.dirname(__FILE__), 'sugarcube-gestures/gestures.rb')
18
+ app.files_dependencies gestures => [cleanup]
15
19
  end
@@ -431,6 +431,7 @@ class UIImage
431
431
  # image.overlay(UIColor.redColor)
432
432
  def overlay(color)
433
433
  image_rect = CGRectMake(0, 0, self.size.width, self.size.height)
434
+ new_image = nil
434
435
 
435
436
  UIImage.canvas(size: self.size, scale: self.scale) do |ctx|
436
437
  self.drawInRect(image_rect)
@@ -623,7 +624,7 @@ class UIImage
623
624
  end
624
625
 
625
626
  unless options[:scale]
626
- options = options.merge(scale: self.scale)
627
+ options[:scale] = self.scale
627
628
  end
628
629
 
629
630
  self.class.canvas(options) do |context|
@@ -52,9 +52,9 @@ class UIView
52
52
  # up the responder chain until the nextResponder is a UIViewController
53
53
  # subclass, or returns nil if none is found.
54
54
  def controller
55
- if nextResponder && nextResponder.is_a?(UIViewController)
55
+ if nextResponder.is_a?(UIViewController)
56
56
  nextResponder
57
- elsif nextResponder
57
+ elsif nextResponder.is_a?(UIView)
58
58
  nextResponder.controller
59
59
  else
60
60
  nil
@@ -1,3 +1,3 @@
1
1
  module SugarCube
2
- Version = '1.3.4'
2
+ Version = '1.3.5'
3
3
  end
@@ -468,4 +468,38 @@ describe 'UIImage' do
468
468
 
469
469
  end
470
470
 
471
+ describe '`overlay` should add shading to an image' do
472
+
473
+ it 'should return an image' do
474
+ red = UIImage.canvas(size: [10, 10]) do |context|
475
+ :red.uicolor.set
476
+ CGContextAddRect(context, [[0, 0], [10, 10]])
477
+ CGContextFillPath(context)
478
+ end
479
+ red.overlay(:white).should.is_a?(UIImage)
480
+ end
481
+
482
+ it 'should return an image that is the same size' do
483
+ red = UIImage.canvas(size: [10, 10]) do |context|
484
+ :red.uicolor.set
485
+ CGContextAddRect(context, [[0, 0], [10, 10]])
486
+ CGContextFillPath(context)
487
+ end
488
+ overlay = red.overlay(:white)
489
+ overlay.size.width.should == red.size.width
490
+ overlay.size.height.should == red.size.height
491
+ end
492
+
493
+ it 'should return an image that is a different color' do
494
+ red = UIImage.canvas(size: [10, 10]) do |context|
495
+ :red.uicolor.set
496
+ CGContextAddRect(context, [[0, 0], [10, 10]])
497
+ CGContextFillPath(context)
498
+ end
499
+ overlay = red.overlay(:white)
500
+ overlay.color_at([0, 0]).should != red.color_at([0, 0])
501
+ end
502
+
503
+ end
504
+
471
505
  end
@@ -2,20 +2,66 @@ describe "UIView" do
2
2
 
3
3
  it "should convert to a UIImage" do
4
4
  test = UIView.alloc.initWithFrame([[0, 0], [10, 10]])
5
+ test.backgroundColor = :black.uicolor
6
+
7
+ red = UIView.alloc.initWithFrame([[0, 0], [2, 2]])
8
+ red.backgroundColor = :red.uicolor
9
+ test << red
10
+
5
11
  image = test.uiimage
6
12
  image.class.should == UIImage
7
13
  CGSizeEqualToSize(image.size, [10, 10]).should == true
8
14
  image.scale.should == UIScreen.mainScreen.scale
15
+ # file = 'uiview_uiimage_test.png'.document
16
+ # image.nsdata.write_to(file)
9
17
  end
10
18
 
11
19
  it "should convert a UIScrollView to a UIImage" do
20
+ # scrollview has to be in the active window, or screen shot doesn't work
21
+ # (doesn't apply to other views)
22
+ window = UIWindow.alloc.initWithFrame(UIScreen.mainScreen.bounds)
23
+ window.makeKeyAndVisible
24
+
12
25
  test = UIScrollView.alloc.initWithFrame([[0, 0], [10, 10]])
13
26
  test.contentSize = [20, 20]
27
+ test.contentOffset = [2.5, 2.5]
28
+ test.backgroundColor = :black.uicolor
29
+ window << test
30
+
31
+ red = UIView.alloc.initWithFrame([[0, 0], [8, 8]])
32
+ red.backgroundColor = :red.uicolor(0.5)
33
+ test << red
34
+ # file = 'uiview_uiimage_red.png'.document
35
+ # red.uiimage.nsdata.write_to(file)
36
+
37
+ green = UIView.alloc.initWithFrame([[10, 0], [10, 10]])
38
+ green.backgroundColor = :green.uicolor(0.5)
39
+ test << green
40
+ # file = 'uiview_uiimage_green.png'.document
41
+ # green.uiimage.nsdata.write_to(file)
42
+
43
+ blue = UIView.alloc.initWithFrame([[0, 10], [10, 10]])
44
+ blue.backgroundColor = :blue.uicolor(0.5)
45
+ test << blue
46
+ # file = 'uiview_uiimage_blue.png'.document
47
+ # blue.uiimage.nsdata.write_to(file)
48
+
49
+ white = UIView.alloc.initWithFrame([[10, 10], [10, 10]])
50
+ white.backgroundColor = :white.uicolor(0.5)
51
+ test << white
52
+ # file = 'uiview_uiimage_white.png'.document
53
+ # white.uiimage.nsdata.write_to(file)
54
+
55
+ gray = UIView.alloc.initWithFrame([[18, 18], [2, 2]])
56
+ gray.backgroundColor = :gray.uicolor(0.5)
57
+ test << gray
14
58
 
15
59
  image = test.uiimage
16
60
  image.class.should == UIImage
17
61
  CGSizeEqualToSize(image.size, [10, 10]).should == true
18
62
  image.scale.should == UIScreen.mainScreen.scale
63
+ # file = 'uiview_uiimage_small.png'.document
64
+ # image.nsdata.write_to(file)
19
65
 
20
66
  image = test.uiimage(:all)
21
67
  image.class.should == UIImage
@@ -26,6 +72,8 @@ describe "UIView" do
26
72
  image.class.should == UIImage
27
73
  CGSizeEqualToSize(image.size, [20, 20]).should == true
28
74
  image.scale.should == UIScreen.mainScreen.scale
75
+ # file = 'uiview_uiimage_big.png'.document
76
+ # image.nsdata.write_to(file)
29
77
  end
30
78
 
31
79
  describe "should convert bounds" do
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: 1.3.4
4
+ version: 1.3.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2013-10-14 00:00:00.000000000 Z
15
+ date: 2013-11-01 00:00:00.000000000 Z
16
16
  dependencies: []
17
17
  description: ! '== Description
18
18