sugarcube 2.11.0 → 2.11.1

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: 22b77dfa2e3bdac875e9a2b30e67e87a36f73196
4
- data.tar.gz: b8cf4de06268d4ef2ab5c307b2e8af2733ccb61b
3
+ metadata.gz: 870b646f170334f7679d70d38b1789b261015ebb
4
+ data.tar.gz: 283c0fe56dc524fe62cea324e853bf4fa8f0ab0f
5
5
  SHA512:
6
- metadata.gz: 279d52c846b648abc706cc88ff915ea1f592379180808e840ad2ddc9638016b3977332004c3ce67279cc5b8daca7529679e0791aef73be122b534479b3ba0384
7
- data.tar.gz: 5db35daa081d9aaa51b69969a616b80de8b7b31e1f082c1a9c6c76d71661eba6e162fef2841b1a3a0da4563413b529b38907e64a3620b5d58eabb9c3d7d92f4c
6
+ metadata.gz: c3588d547fc015cde49784ece637def74e9a1d76b0dff4718f6ef9dbd31ebb93c0b8ceecd709213eafb627f3a29b0a6b281e592adc7cd66283c5185c8f95bf8a
7
+ data.tar.gz: f8d75ef4393ae0daae5e9abd2ae7d615a6b11ac7dde9534a8153ed8b6f4c90c22da882cb6d9e982c14dc8212986795e371f718c348612db86a3ea195e5d994c1
data/README.md CHANGED
@@ -129,7 +129,7 @@ REPL ([wiki][REPL Wiki])
129
129
  ----
130
130
 
131
131
  If you install SugarCube and *only* use the REPL package, you will benefit from
132
- some of its greatest tools!
132
+ some of SugarCube's greatest tricks!
133
133
 
134
134
  > `require 'sugarcube-repl'`
135
135
 
@@ -137,9 +137,12 @@ This package is useful during development because it adds methods to the REPL
137
137
  that make adjusting and introspecting views much easier. You'll get a lot more
138
138
  done in the REPL with these additions.
139
139
 
140
+ You should NEVER use these methods in your application, because this package is
141
+ only included in 'development' mode. That means if you hard-code a call to
142
+ 'tree' in your code, that will crash when you go to release your app. YIKES.
143
+
140
144
  To keep this document lean-and-mean, I've put most of the REPL documentation [in
141
- the wiki][REPL Wiki], but a
142
- quick overview:
145
+ the wiki][REPL Wiki], but here's a quick overview:
143
146
 
144
147
  * Use the `tree` commands to output your view hierarchy. It can accept a UIView,
145
148
  `UIViewController`, or `CALayer` object as the root object, or it defaults to
@@ -1,25 +1,5 @@
1
1
  class NSString
2
2
 
3
- def bold(size=nil)
4
- font = :bold.uifont(size)
5
- nsattributedstring({NSFontAttributeName => font})
6
- end
7
-
8
- def italic(size=nil)
9
- font = :italic.uifont(size)
10
- nsattributedstring({NSFontAttributeName => font})
11
- end
12
-
13
- def monospace(size=nil)
14
- font = :monospace.uifont(size)
15
- nsattributedstring({NSFontAttributeName => font})
16
- end
17
-
18
- def underline(underline_style=nil)
19
- underline_style ||= NSUnderlineStyleSingle
20
- nsattributedstring({NSUnderlineStyleAttributeName => underline_style})
21
- end
22
-
23
3
  def nsattributedstring(attributes={})
24
4
  NSAttributedString.alloc.initWithString(self, attributes: attributes)
25
5
  end
@@ -44,27 +24,27 @@ class NSAttributedString
44
24
 
45
25
  def sugarcube_nsattributedstring_dummy_method
46
26
  # make sure NSAttributedString constants get compiled
47
- foo = NSFontAttributeName
48
- foo = NSParagraphStyleAttributeName
49
- foo = NSForegroundColorAttributeName
50
- foo = NSBackgroundColorAttributeName
51
- foo = NSLigatureAttributeName
52
- foo = NSKernAttributeName
53
- foo = NSStrikethroughStyleAttributeName
54
- foo = NSUnderlineStyleAttributeName
55
- foo = NSStrokeColorAttributeName
56
- foo = NSStrokeWidthAttributeName
57
- foo = NSShadowAttributeName
58
- foo = NSVerticalGlyphFormAttributeName
27
+ NSFontAttributeName
28
+ NSParagraphStyleAttributeName
29
+ NSForegroundColorAttributeName
30
+ NSBackgroundColorAttributeName
31
+ NSLigatureAttributeName
32
+ NSKernAttributeName
33
+ NSStrikethroughStyleAttributeName
34
+ NSUnderlineStyleAttributeName
35
+ NSStrokeColorAttributeName
36
+ NSStrokeWidthAttributeName
37
+ NSShadowAttributeName
38
+ NSVerticalGlyphFormAttributeName
59
39
  # new iOS 7 text effects
60
- foo = NSTextEffectAttributeName
61
- foo = NSTextEffectLetterpressStyle
40
+ NSTextEffectAttributeName
41
+ NSTextEffectLetterpressStyle
62
42
  # make sure alignments get compiled
63
- foo = NSLeftTextAlignment
64
- foo = NSRightTextAlignment
65
- foo = NSCenterTextAlignment
66
- foo = NSJustifiedTextAlignment
67
- foo = NSNaturalTextAlignment
43
+ NSLeftTextAlignment
44
+ NSRightTextAlignment
45
+ NSCenterTextAlignment
46
+ NSJustifiedTextAlignment
47
+ NSNaturalTextAlignment
68
48
  nil
69
49
  end
70
50
 
@@ -72,72 +52,32 @@ class NSAttributedString
72
52
  string # this is the name of the Cocoa method to return an NSString
73
53
  end
74
54
 
75
- def bold(size=nil)
76
- font = :bold.uifont(size)
77
- self.font(font)
78
- end
79
-
80
- def italic(size=nil)
81
- font = :italic.uifont(size)
82
- self.font(font)
83
- end
84
-
85
- def underline
86
- underline_style(NSUnderlineStyleSingle)
87
- end
88
-
89
- def font(value)
90
- with_attributes({NSFontAttributeName => value.uifont})
91
- end
92
-
93
55
  def paragraph_style(value)
94
- with_attributes({NSParagraphStyleAttributeName => value})
95
- end
96
-
97
- def foreground_color(value)
98
- with_attributes({NSForegroundColorAttributeName => value.uicolor})
56
+ with_attributes({ NSParagraphStyleAttributeName => value })
99
57
  end
100
- alias color foreground_color
101
-
102
- def underline_style(value)
103
- with_attributes({NSUnderlineStyleAttributeName => value})
104
- end
105
-
106
- def background_color(value)
107
- with_attributes({NSBackgroundColorAttributeName => value.uicolor})
108
- end
109
- alias bg_color background_color
110
58
 
111
59
  def ligature(value)
112
- with_attributes({NSLigatureAttributeName => value})
60
+ with_attributes({ NSLigatureAttributeName => value })
113
61
  end
114
62
 
115
63
  def kern(value)
116
- with_attributes({NSKernAttributeName => value})
64
+ with_attributes({ NSKernAttributeName => value })
117
65
  end
118
66
 
119
67
  def stroke_width(value)
120
- with_attributes({NSStrokeWidthAttributeName => value})
121
- end
122
-
123
- def stroke_color(value)
124
- with_attributes({NSStrokeColorAttributeName => value.uicolor})
68
+ with_attributes({ NSStrokeWidthAttributeName => value })
125
69
  end
126
70
 
127
71
  def strikethrough_style(value)
128
- with_attributes({NSStrikethroughStyleAttributeName => value})
72
+ with_attributes({ NSStrikethroughStyleAttributeName => value })
129
73
  end
130
74
 
131
75
  def shadow(value)
132
- with_attributes({NSShadowAttributeName => value})
76
+ with_attributes({ NSShadowAttributeName => value })
133
77
  end
134
78
 
135
79
  def vertical_glyph_form(value)
136
- with_attributes({NSVerticalGlyphFormAttributeName => value})
137
- end
138
-
139
- def letterpress
140
- with_attributes({NSTextEffectAttributeName => NSTextEffectLetterpressStyle})
80
+ with_attributes({ NSVerticalGlyphFormAttributeName => value })
141
81
  end
142
82
 
143
83
  def with_attributes(attributes)
@@ -159,7 +99,9 @@ class NSAttributedString
159
99
  end
160
100
 
161
101
  def +(attributedstring)
162
- NSMutableAttributedString.alloc.initWithAttributedString(self) + attributedstring.nsattributedstring
102
+ string = NSMutableAttributedString.alloc.initWithAttributedString(self)
103
+ string.appendAttributedString(attributedstring.nsattributedstring)
104
+ string
163
105
  end
164
106
 
165
107
  end
@@ -172,7 +114,7 @@ class NSMutableAttributedString
172
114
  self
173
115
  end
174
116
 
175
- def +(attributedstring)
117
+ def <<(attributedstring)
176
118
  self.appendAttributedString(attributedstring.nsattributedstring)
177
119
  end
178
120
 
@@ -0,0 +1,96 @@
1
+ class NSString
2
+
3
+ def bold(size=nil)
4
+ font = :bold.uifont(size)
5
+ nsattributedstring({ NSFontAttributeName => font })
6
+ end
7
+
8
+ def italic(size=nil)
9
+ font = :italic.uifont(size)
10
+ nsattributedstring({ NSFontAttributeName => font })
11
+ end
12
+
13
+ def monospace(size=nil)
14
+ font = :monospace.uifont(size)
15
+ nsattributedstring({ NSFontAttributeName => font })
16
+ end
17
+
18
+ def underline(underline_style=nil)
19
+ underline_style ||= NSUnderlineStyleSingle
20
+ nsattributedstring({ NSUnderlineStyleAttributeName => underline_style })
21
+ end
22
+
23
+ end
24
+
25
+
26
+ class NSAttributedString
27
+
28
+ def sugarcube_nsattributedstring_dummy_method
29
+ KCTCharacterShapeAttributeName
30
+ KCTFontAttributeName
31
+ KCTKernAttributeName
32
+ KCTLigatureAttributeName
33
+ KCTForegroundColorAttributeName
34
+ KCTForegroundColorFromContextAttributeName
35
+ KCTParagraphStyleAttributeName
36
+ KCTStrokeWidthAttributeName
37
+ KCTStrokeColorAttributeName
38
+ KCTSuperscriptAttributeName
39
+ KCTUnderlineColorAttributeName
40
+ KCTUnderlineStyleAttributeName
41
+ KCTVerticalFormsAttributeName
42
+ KCTGlyphInfoAttributeName
43
+ KCTRunDelegateAttributeName
44
+ nil
45
+ end
46
+
47
+ def bold(size=nil)
48
+ font = :bold.uifont(size)
49
+ self.font(font)
50
+ end
51
+
52
+ def italic(size=nil)
53
+ font = :italic.uifont(size)
54
+ self.font(font)
55
+ end
56
+
57
+ def font(value)
58
+ with_attributes({ NSFontAttributeName => value.uifont })
59
+ end
60
+
61
+ def underline
62
+ underline_style(NSUnderlineStyleSingle)
63
+ end
64
+
65
+ def underline_style(value)
66
+ with_attributes({NSUnderlineStyleAttributeName => value})
67
+ end
68
+
69
+ def foreground_color(value)
70
+ with_attributes({ NSForegroundColorAttributeName => value.uicolor })
71
+ end
72
+ alias color foreground_color
73
+
74
+ def background_color(value)
75
+ with_attributes({ NSBackgroundColorAttributeName => value.uicolor })
76
+ end
77
+ alias bg_color background_color
78
+
79
+ def stroke_color(value)
80
+ with_attributes({ NSStrokeColorAttributeName => value.uicolor })
81
+ end
82
+
83
+ def superscript(amount=nil)
84
+ amount ||= 1
85
+ with_attributes({ KCTSuperscriptAttributeName => amount })
86
+ end
87
+
88
+ def subscript
89
+ superscript(-1)
90
+ end
91
+
92
+ def letterpress
93
+ with_attributes({ NSTextEffectAttributeName => NSTextEffectLetterpressStyle })
94
+ end
95
+
96
+ end
@@ -6,6 +6,7 @@ class NSAttributedString
6
6
  label.attributedText = self
7
7
  label.backgroundColor = :clear.uicolor
8
8
  label.sizeToFit
9
+ label
9
10
  end
10
11
  end
11
12
 
@@ -0,0 +1,5 @@
1
+ class NSFont
2
+ def nsfont
3
+ self
4
+ end
5
+ end
@@ -0,0 +1,66 @@
1
+ =begin
2
+ Example:
3
+
4
+ # fonts
5
+ :system.nsfont => NSFont.systemFontOfSize(NSFont.systemFontSize)
6
+ :label.nsfont => NSFont.systemFontOfSize(NSFont.labelFontSize)
7
+
8
+ You can extend the defaults by adding entries:
9
+
10
+ Symbol.nsfontsize[:big] = 40
11
+
12
+ :big.nsfont => NSFont
13
+
14
+ =end
15
+ class Symbol
16
+
17
+ def nsfont(size=nil)
18
+ size ||= NSFont.systemFontSize
19
+ # system fonts
20
+ if Symbol.nsfont.has_key? self
21
+ font = SugarCube.look_in(self, Symbol.nsfont)
22
+ if size.is_a?(Symbol)
23
+ size = size.nsfontsize
24
+ end
25
+
26
+ if font.is_a?(Symbol)
27
+ return NSFont.send(font, size)
28
+ else
29
+ return font.nsfont(size)
30
+ end
31
+ else
32
+ if size.is_a?(Symbol)
33
+ size = size.nsfontsize
34
+ end
35
+ return NSFont.systemFontOfSize(size)
36
+ end
37
+ end
38
+
39
+ def nsfontsize
40
+ size = SugarCube.look_in(self, Symbol.nsfontsize)
41
+ if size.is_a?(Symbol)
42
+ return NSFont.send(size)
43
+ end
44
+ return size.to_f
45
+ end
46
+
47
+ class << self
48
+ attr :nsfont
49
+ attr :nsfontsize
50
+ end
51
+
52
+ @nsfont = {
53
+ system: :"systemFontOfSize:",
54
+ bold: :"boldSystemFontOfSize:",
55
+ monospace: 'Courier New',
56
+ }
57
+
58
+ @nsfontsize = {
59
+ label: :labelFontSize,
60
+ button: :buttonFontSize,
61
+ small: :smallSystemFontSize,
62
+ system: :systemFontSize,
63
+ }
64
+
65
+
66
+ end
@@ -0,0 +1,72 @@
1
+ class NSString
2
+
3
+ def bold(size=nil)
4
+ font = :bold.nsfont(size)
5
+ nsattributedstring({ NSFontAttributeName => font })
6
+ end
7
+
8
+ def monospace(size=nil)
9
+ font = :monospace.nsfont(size)
10
+ nsattributedstring({ NSFontAttributeName => font })
11
+ end
12
+
13
+ def underline(underline_style=nil)
14
+ underline_style ||= NSSingleUnderlineStyle
15
+ nsattributedstring({ NSUnderlineStyleAttributeName => underline_style })
16
+ end
17
+
18
+ end
19
+
20
+
21
+ class NSAttributedString
22
+
23
+ def sugarcube_nsattributedstring_dummy_method
24
+ NSSuperscriptAttributeName
25
+ nil
26
+ end
27
+
28
+ def bold(size=nil)
29
+ font = :bold.nsfont(size)
30
+ self.font(font)
31
+ end
32
+
33
+ def font(value)
34
+ with_attributes({ NSFontAttributeName => value.nsfont })
35
+ end
36
+
37
+ def underline
38
+ underline_style(NSSingleUnderlineStyle)
39
+ end
40
+
41
+ def underline_style(value)
42
+ with_attributes({NSUnderlineStyleAttributeName => value})
43
+ end
44
+
45
+ def foreground_color(value)
46
+ with_attributes({ NSForegroundColorAttributeName => value.nscolor })
47
+ end
48
+ alias color foreground_color
49
+
50
+ def background_color(value)
51
+ with_attributes({ NSBackgroundColorAttributeName => value.nscolor })
52
+ end
53
+ alias bg_color background_color
54
+
55
+ def stroke_color(value)
56
+ with_attributes({ NSStrokeColorAttributeName => value.nscolor })
57
+ end
58
+
59
+ def superscript(amount=nil)
60
+ amount ||= 1
61
+ with_attributes({ NSSuperscriptAttributeName => amount })
62
+ end
63
+
64
+ def subscript
65
+ superscript(-1)
66
+ end
67
+
68
+ def letterpress
69
+ with_attributes({ NSTextEffectAttributeName => NSTextEffectLetterpressStyle })
70
+ end
71
+
72
+ end
@@ -11,6 +11,9 @@ Motion::Project::App.setup do |app|
11
11
  # the end of the list
12
12
  insert_point = app.files.find_index { |file| file =~ /^(?:\.\/)?app\// } || 0
13
13
 
14
+ Dir.glob(File.join(File.dirname(__FILE__), SugarCube.platform, 'sugarcube-attributedstring/**/*.rb')).reverse.each do |file|
15
+ app.files.insert(insert_point, file)
16
+ end
14
17
  Dir.glob(File.join(File.dirname(__FILE__), 'cocoa/sugarcube-attributedstring/**/*.rb')).reverse.each do |file|
15
18
  app.files.insert(insert_point, file)
16
19
  end
data/lib/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module SugarCube
2
- Version = '2.11.0'
2
+ Version = '2.11.1'
3
3
  end
@@ -0,0 +1,42 @@
1
+ describe 'NSAttributeString' do
2
+ describe "should support all attribute names" do
3
+ before do
4
+ @subject = 'test'.attrd
5
+ end
6
+
7
+ it "should be sane" do
8
+ @subject.isEqualToAttributedString('test'.attrd).should == true
9
+ end
10
+
11
+ # don't care about:
12
+ # it 'should have `attachment`' do
13
+ # @subject.isEqualToAttributedString('test'.attrd.attachment()).should != true
14
+ # end
15
+
16
+ it 'should have `ligature`' do
17
+ 'test'.attrd.ligature(2).should.have_string_attributes({ NSLigatureAttributeName => 2 })
18
+ end
19
+
20
+ it 'should have `kern`' do
21
+ 'test'.attrd.kern(1).should.have_string_attributes({ NSKernAttributeName => 1 })
22
+ end
23
+
24
+ it 'should have `stroke_width`' do
25
+ 'test'.attrd.stroke_width(1).should.have_string_attributes({ NSStrokeWidthAttributeName => 1 })
26
+ end
27
+
28
+ it 'should have `strikethrough_style`' do
29
+ 'test'.attrd.strikethrough_style(NSUnderlineStyleSingle).should.have_string_attributes({ NSStrikethroughStyleAttributeName => NSUnderlineStyleSingle })
30
+ end
31
+
32
+ it 'should have `shadow`' do
33
+ 'test'.attrd.shadow(NSShadow.alloc.init.tap{|s|s.shadowOffset = [1,1]}).should.have_string_attributes({ NSShadowAttributeName => NSShadow.alloc.init.tap{|s|s.shadowOffset = [1,1]} })
34
+ end
35
+
36
+ it 'should have `vertical_glyph_form`' do
37
+ 'test'.attrd.vertical_glyph_form(1).should.have_string_attributes({ NSVerticalGlyphFormAttributeName => 1 })
38
+ end
39
+
40
+ end
41
+
42
+ end
@@ -0,0 +1,6 @@
1
+ class Should
2
+ def have_string_attributes(attributes)
3
+ @object.should.be.kind_of(NSAttributedString)
4
+ @object.attributesAtIndex(0, effectiveRange:nil).should == attributes
5
+ end
6
+ end
@@ -4,32 +4,27 @@ describe 'NSAttributeString' do
4
4
 
5
5
  it 'should have #bold' do
6
6
  subject = 'test'.bold
7
- subject.should.be.kind_of(NSAttributedString)
8
- subject.attributesAtIndex(0, effectiveRange:nil).should == {'NSFont' => :bold.uifont}
7
+ subject.should.have_string_attributes({NSFontAttributeName => :bold.uifont})
9
8
  end
10
9
 
11
10
  it 'should have #italic' do
12
11
  subject = 'test'.italic
13
- subject.should.be.kind_of(NSAttributedString)
14
- subject.attributesAtIndex(0, effectiveRange:nil).should == {'NSFont' => :italic.uifont}
12
+ subject.should.have_string_attributes({NSFontAttributeName => :italic.uifont})
15
13
  end
16
14
 
17
15
  it 'should have #monospace' do
18
16
  subject = 'test'.monospace
19
- subject.should.be.kind_of(NSAttributedString)
20
- subject.attributesAtIndex(0, effectiveRange:nil).should == {'NSFont' => :monospace.uifont}
17
+ subject.should.have_string_attributes({NSFontAttributeName => :monospace.uifont})
21
18
  end
22
19
 
23
20
  it 'should have #underline' do
24
21
  subject = 'test'.underline
25
- subject.should.be.kind_of(NSAttributedString)
26
- subject.attributesAtIndex(0, effectiveRange:nil).should == {'NSUnderline' => NSUnderlineStyleSingle}
22
+ subject.should.have_string_attributes({NSUnderlineStyleAttributeName => NSUnderlineStyleSingle})
27
23
  end
28
24
 
29
25
  it 'should be chainable' do
30
26
  subject = 'test'.bold.underline
31
- subject.should.be.kind_of(NSAttributedString)
32
- subject.attributesAtIndex(0, effectiveRange:nil).should == {'NSFont' => :bold.uifont, 'NSUnderline' => NSUnderlineStyleSingle}
27
+ subject.should.have_string_attributes({NSFontAttributeName => :bold.uifont, NSUnderlineStyleAttributeName => NSUnderlineStyleSingle})
33
28
  end
34
29
 
35
30
  end
@@ -39,70 +34,56 @@ describe 'NSAttributeString' do
39
34
  @subject = 'test'.attrd
40
35
  end
41
36
 
42
- it "should be sane" do
43
- @subject.isEqualToAttributedString('test'.attrd).should == true
37
+ it 'should have `paragraph_style`' do
38
+ par_style = NSMutableParagraphStyle.alloc.init
39
+ par_style.alignment = NSTextAlignmentRight
40
+ 'test'.attrd.paragraph_style(par_style).should.have_string_attributes({ NSParagraphStyleAttributeName => par_style })
44
41
  end
45
42
 
46
43
  it 'should have `font`' do
47
- @subject.isEqualToAttributedString('test'.attrd.font(:bold.uifont)).should != true
48
- @subject.isEqualToAttributedString('test'.attrd.font('Helvetica')).should != true
49
- end
50
-
51
- it 'should have `paragraph_style`' do
52
- @subject.isEqualToAttributedString('test'.attrd.paragraph_style(NSMutableParagraphStyle.alloc.init.tap{|s| s.alignment = UITextAlignmentRight })).should != true
44
+ 'test'.attrd.font(:bold.uifont).should.have_string_attributes({ NSFontAttributeName => :bold.uifont })
45
+ 'test'.attrd.font('Helvetica').should.have_string_attributes({ NSFontAttributeName => 'Helvetica'.uifont })
53
46
  end
54
47
 
55
48
  it 'should have `foreground_color`' do
56
- @subject.isEqualToAttributedString('test'.attrd.foreground_color(UIColor.redColor)).should != true
57
- @subject.isEqualToAttributedString('test'.attrd.color(UIColor.redColor)).should != true
58
- end
59
-
60
- it 'should have `underline_style`' do
61
- @subject.isEqualToAttributedString('test'.attrd.underline_style(NSUnderlineStyleSingle)).should != true
49
+ 'test'.attrd.foreground_color(UIColor.redColor).should.have_string_attributes({ NSForegroundColorAttributeName => UIColor.redColor })
50
+ 'test'.attrd.color(UIColor.redColor).should.have_string_attributes({ NSForegroundColorAttributeName => UIColor.redColor })
62
51
  end
63
52
 
64
53
  it 'should have `background_color`' do
65
- @subject.isEqualToAttributedString('test'.attrd.background_color(UIColor.redColor)).should != true
66
- @subject.isEqualToAttributedString('test'.attrd.bg_color(UIColor.redColor)).should != true
54
+ 'test'.attrd.background_color(UIColor.redColor).should.have_string_attributes({ NSBackgroundColorAttributeName => UIColor.redColor })
55
+ 'test'.attrd.bg_color(UIColor.redColor).should.have_string_attributes({ NSBackgroundColorAttributeName => UIColor.redColor })
67
56
  end
68
57
 
69
- # don't care about:
70
- # it 'should have `attachment`' do
71
- # @subject.isEqualToAttributedString('test'.attrd.attachment()).should != true
72
- # end
73
-
74
- it 'should have `ligature`' do
75
- @subject.isEqualToAttributedString('test'.attrd.ligature(2)).should != true
76
- end
77
-
78
- it 'should have `kern`' do
79
- @subject.isEqualToAttributedString('test'.attrd.kern(1)).should != true
80
- end
81
-
82
- it 'should have `stroke_width`' do
83
- @subject.isEqualToAttributedString('test'.attrd.stroke_width(1)).should != true
58
+ it 'should have `stroke_color`' do
59
+ 'test'.attrd.stroke_color(UIColor.redColor).should.have_string_attributes({ NSStrokeColorAttributeName => UIColor.redColor })
84
60
  end
85
61
 
86
- it 'should have `stroke_color`' do
87
- @subject.isEqualToAttributedString('test'.attrd.stroke_color(UIColor.redColor)).should != true
62
+ it 'should have `underline_style`' do
63
+ subject = 'test'.attrd.underline_style(NSUnderlineStyleSingle)
64
+ subject.should.have_string_attributes({NSUnderlineStyleAttributeName => NSUnderlineStyleSingle})
88
65
  end
89
66
 
90
- it 'should have `strikethrough_style`' do
91
- @subject.isEqualToAttributedString('test'.attrd.strikethrough_style(NSUnderlineStyleSingle)).should != true
67
+ it 'should have `underline_style`' do
68
+ subject = 'test'.attrd.underline
69
+ subject.should.have_string_attributes({NSUnderlineStyleAttributeName => NSUnderlineStyleSingle})
92
70
  end
93
71
 
94
- it 'should have `shadow`' do
95
- @subject.isEqualToAttributedString('test'.attrd.shadow(NSShadow.alloc.init.tap{|s|s.shadowOffset = [1,1]})).should != true
72
+ it 'should have `superscript`' do
73
+ subject = 'test'.attrd.superscript
74
+ subject.should.have_string_attributes({KCTSuperscriptAttributeName => 1})
75
+ subject = 'test'.attrd.superscript(2)
76
+ subject.should.have_string_attributes({KCTSuperscriptAttributeName => 2})
96
77
  end
97
78
 
98
- it 'should have `vertical_glyph_form`' do
99
- @subject.isEqualToAttributedString('test'.attrd.vertical_glyph_form(1)).should != true
79
+ it 'should have `subscript`' do
80
+ subject = 'test'.attrd.subscript
81
+ subject.should.have_string_attributes({KCTSuperscriptAttributeName => -1})
100
82
  end
101
83
 
102
84
  it 'should have `letterpress`' do
103
- @subject.isEqualToAttributedString('test'.attrd.letterpress).should != true
85
+ 'test'.attrd.letterpress.should.have_string_attributes({ NSTextEffectAttributeName => NSTextEffectLetterpressStyle })
104
86
  end
105
-
106
87
  end
107
88
 
108
89
  end
@@ -0,0 +1,84 @@
1
+ describe 'NSAttributeString' do
2
+
3
+ describe 'NSString attribute string methods' do
4
+
5
+ it 'should have #bold' do
6
+ subject = 'test'.bold
7
+ subject.should.have_string_attributes({NSFontAttributeName => :bold.nsfont})
8
+ end
9
+
10
+ it 'should have #monospace' do
11
+ subject = 'test'.monospace
12
+ subject.should.have_string_attributes({NSFontAttributeName => :monospace.nsfont})
13
+ end
14
+
15
+ it 'should have #underline' do
16
+ subject = 'test'.underline
17
+ subject.should.have_string_attributes({NSUnderlineStyleAttributeName => NSUnderlineStyleSingle})
18
+ end
19
+
20
+ it 'should be chainable' do
21
+ subject = 'test'.bold.underline
22
+ subject.should.have_string_attributes({NSFontAttributeName => :bold.nsfont, NSUnderlineStyleAttributeName => NSUnderlineStyleSingle})
23
+ end
24
+
25
+ end
26
+
27
+ describe "should support all attribute names" do
28
+ before do
29
+ @subject = 'test'.attrd
30
+ end
31
+
32
+ it 'should have `paragraph_style`' do
33
+ par_style = NSMutableParagraphStyle.alloc.init
34
+ par_style.alignment = NSRightTextAlignment
35
+ 'test'.attrd.paragraph_style(par_style).should.have_string_attributes({ NSParagraphStyleAttributeName => par_style })
36
+ end
37
+
38
+ it 'should have `font`' do
39
+ 'test'.attrd.font(:bold.nsfont).should.have_string_attributes({ NSFontAttributeName => :bold.nsfont })
40
+ 'test'.attrd.font('Helvetica').should.have_string_attributes({ NSFontAttributeName => 'Helvetica'.nsfont })
41
+ end
42
+
43
+ it 'should have `foreground_color`' do
44
+ 'test'.attrd.foreground_color(NSColor.redColor).should.have_string_attributes({ NSForegroundColorAttributeName => NSColor.redColor })
45
+ 'test'.attrd.color(NSColor.redColor).should.have_string_attributes({ NSForegroundColorAttributeName => NSColor.redColor })
46
+ end
47
+
48
+ it 'should have `background_color`' do
49
+ 'test'.attrd.background_color(NSColor.redColor).should.have_string_attributes({ NSBackgroundColorAttributeName => NSColor.redColor })
50
+ 'test'.attrd.bg_color(NSColor.redColor).should.have_string_attributes({ NSBackgroundColorAttributeName => NSColor.redColor })
51
+ end
52
+
53
+ it 'should have `stroke_color`' do
54
+ 'test'.attrd.stroke_color(NSColor.redColor).should.have_string_attributes({ NSStrokeColorAttributeName => NSColor.redColor })
55
+ end
56
+
57
+ it 'should have `underline_style`' do
58
+ subject = 'test'.attrd.underline_style(NSUnderlineStyleSingle)
59
+ subject.should.have_string_attributes({NSUnderlineStyleAttributeName => NSUnderlineStyleSingle})
60
+ end
61
+
62
+ it 'should have `underline_style`' do
63
+ subject = 'test'.attrd.underline
64
+ subject.should.have_string_attributes({NSUnderlineStyleAttributeName => NSUnderlineStyleSingle})
65
+ end
66
+
67
+ it 'should have `superscript`' do
68
+ subject = 'test'.attrd.superscript
69
+ subject.should.have_string_attributes({NSSuperscriptAttributeName => 1})
70
+ subject = 'test'.attrd.superscript(2)
71
+ subject.should.have_string_attributes({NSSuperscriptAttributeName => 2})
72
+ end
73
+
74
+ it 'should have `subscript`' do
75
+ subject = 'test'.attrd.subscript
76
+ subject.should.have_string_attributes({NSSuperscriptAttributeName => -1})
77
+ end
78
+
79
+ it 'should have `letterpress`' do
80
+ 'test'.attrd.letterpress.should.have_string_attributes({ NSTextEffectAttributeName => NSTextEffectLetterpressStyle })
81
+ end
82
+ end
83
+
84
+ 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: 2.11.0
4
+ version: 2.11.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Colin T.A. Gray
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2014-11-05 00:00:00.000000000 Z
14
+ date: 2014-11-07 00:00:00.000000000 Z
15
15
  dependencies: []
16
16
  description: |
17
17
  == Description
@@ -93,6 +93,7 @@ files:
93
93
  - lib/ios/sugarcube-568/uiimage.rb
94
94
  - lib/ios/sugarcube-animations/animation_chain.rb
95
95
  - lib/ios/sugarcube-animations/uiview.rb
96
+ - lib/ios/sugarcube-attributedstring/nsattributedstring.rb
96
97
  - lib/ios/sugarcube-color/fixnum.rb
97
98
  - lib/ios/sugarcube-color/nsarray.rb
98
99
  - lib/ios/sugarcube-color/nsstring.rb
@@ -150,8 +151,11 @@ files:
150
151
  - lib/ios/sugarcube-uikit/uiwebview.rb
151
152
  - lib/osx/sugarcube-animations/nsview.rb
152
153
  - lib/osx/sugarcube-appkit/frameable.rb
154
+ - lib/osx/sugarcube-appkit/nsfont.rb
153
155
  - lib/osx/sugarcube-appkit/nsstring.rb
154
156
  - lib/osx/sugarcube-appkit/nsview.rb
157
+ - lib/osx/sugarcube-appkit/symbol.rb
158
+ - lib/osx/sugarcube-attributedstring/nsattributedstring.rb
155
159
  - lib/osx/sugarcube-color/fixnum.rb
156
160
  - lib/osx/sugarcube-color/nsarray.rb
157
161
  - lib/osx/sugarcube-color/nscolor.rb
@@ -212,12 +216,14 @@ files:
212
216
  - spec/cocoa/caanimation_spec.rb
213
217
  - spec/cocoa/calayer_spec.rb
214
218
  - spec/cocoa/nsarray_files_spec.rb
219
+ - spec/cocoa/nsattributedstring_spec.rb
215
220
  - spec/cocoa/nscoder_spec.rb
216
221
  - spec/cocoa/nsdata_files_spec.rb
217
222
  - spec/cocoa/nsdictionary_files_spec.rb
218
223
  - spec/cocoa/numeric_time_spec.rb
219
224
  - spec/cocoa/spritekit_spec.rb
220
225
  - spec/cocoa/timer_spec.rb
226
+ - spec/helpers/attributed_string.rb
221
227
  - spec/ios/568_spec.rb
222
228
  - spec/ios/animation_chain_spec.rb
223
229
  - spec/ios/color_components_spec.rb
@@ -274,6 +280,7 @@ files:
274
280
  - spec/osx/color_components_spec.rb
275
281
  - spec/osx/color_other_representations_spec.rb
276
282
  - spec/osx/color_spec.rb
283
+ - spec/osx/nsattributedstring_spec.rb
277
284
  - spec/osx/nsview_spec.rb
278
285
  - spec/osx/symbol_constants_spec.rb
279
286
  homepage: https://github.com/rubymotion/sugarcube
@@ -306,12 +313,14 @@ test_files:
306
313
  - spec/cocoa/caanimation_spec.rb
307
314
  - spec/cocoa/calayer_spec.rb
308
315
  - spec/cocoa/nsarray_files_spec.rb
316
+ - spec/cocoa/nsattributedstring_spec.rb
309
317
  - spec/cocoa/nscoder_spec.rb
310
318
  - spec/cocoa/nsdata_files_spec.rb
311
319
  - spec/cocoa/nsdictionary_files_spec.rb
312
320
  - spec/cocoa/numeric_time_spec.rb
313
321
  - spec/cocoa/spritekit_spec.rb
314
322
  - spec/cocoa/timer_spec.rb
323
+ - spec/helpers/attributed_string.rb
315
324
  - spec/ios/568_spec.rb
316
325
  - spec/ios/animation_chain_spec.rb
317
326
  - spec/ios/color_components_spec.rb
@@ -368,5 +377,6 @@ test_files:
368
377
  - spec/osx/color_components_spec.rb
369
378
  - spec/osx/color_other_representations_spec.rb
370
379
  - spec/osx/color_spec.rb
380
+ - spec/osx/nsattributedstring_spec.rb
371
381
  - spec/osx/nsview_spec.rb
372
382
  - spec/osx/symbol_constants_spec.rb