prawn-icon 1.1.1 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -7,26 +7,26 @@
7
7
  require 'spec_helper'
8
8
 
9
9
  describe Prawn::Icon do
10
+ let(:errors) { described_class::Errors }
11
+ let(:pdf) { create_pdf }
12
+
10
13
  describe '#initialize' do
11
14
  context 'valid icon family specifier' do
12
15
  it 'should be capable of creating icon instances' do
13
- pdf = create_pdf
14
16
  icon = Prawn::Icon.new 'fa-arrows', pdf
15
17
 
16
18
  expect(icon.unicode).to eq("\uf047")
17
19
  end
18
20
 
19
21
  it 'should raise an error if icon key is not found' do
20
- pdf = create_pdf
21
22
  proc = Proc.new { Prawn::Icon.new 'fa-__INVALID__', pdf }
22
23
 
23
- expect(proc).to raise_error(Prawn::Errors::IconNotFound)
24
+ expect(proc).to raise_error(errors::IconNotFound)
24
25
  end
25
26
  end
26
27
 
27
28
  context 'invalid icon specifier' do
28
29
  it 'should raise an error' do
29
- pdf = create_pdf
30
30
  proc = Proc.new { pdf.icon '__INVALID__ some text' }
31
31
 
32
32
  expect(proc).to raise_error(Prawn::Errors::UnknownFont)
@@ -44,7 +44,6 @@ describe Prawn::Icon do
44
44
 
45
45
  describe '#format_hash' do
46
46
  it 'should add :font and :content keys' do
47
- pdf = create_pdf
48
47
  icon = Prawn::Icon.new 'fa-arrows', pdf
49
48
  hash = icon.format_hash
50
49
 
@@ -53,7 +52,6 @@ describe Prawn::Icon do
53
52
  end
54
53
 
55
54
  it 'should rename key :color to :text_color' do
56
- pdf = create_pdf
57
55
  icon = Prawn::Icon.new 'fa-arrows', pdf, color: '0099ff'
58
56
  hash = icon.format_hash
59
57
 
@@ -64,7 +62,6 @@ describe Prawn::Icon do
64
62
 
65
63
  describe '#render' do
66
64
  it 'should render an icon to the page' do
67
- pdf = create_pdf
68
65
  pdf.icon('fa-arrows').render
69
66
  text = PDF::Inspector::Text.analyze(pdf.render)
70
67
 
@@ -75,7 +72,6 @@ describe Prawn::Icon do
75
72
  describe '#set' do
76
73
  context 'with dashes in key' do
77
74
  it 'should return the set as a symbol from key' do
78
- pdf = create_pdf
79
75
  set = Prawn::Icon.new('fa-arrows', pdf).set
80
76
 
81
77
  expect(set).to eq(:fa)
@@ -84,7 +80,6 @@ describe Prawn::Icon do
84
80
 
85
81
  context 'without dashes in key' do
86
82
  it 'raise an error about invalid keys' do
87
- pdf = create_pdf
88
83
  proc = Proc.new { Prawn::Icon.new 'some invalid key', pdf }
89
84
 
90
85
  expect(proc).to raise_error(Prawn::Errors::UnknownFont)
@@ -95,7 +90,6 @@ describe Prawn::Icon do
95
90
  describe '#unicode' do
96
91
  context 'valid icon key' do
97
92
  it 'should return a unicode character' do
98
- pdf = create_pdf
99
93
  icon = Prawn::Icon.new 'fa-arrows', pdf
100
94
 
101
95
  expect(valid_unicode?(icon.unicode)).to be true
@@ -104,10 +98,9 @@ describe Prawn::Icon do
104
98
 
105
99
  context 'invalid icon key' do
106
100
  it 'should raise IconNotFound' do
107
- pdf = create_pdf
108
101
  proc = Proc.new { Prawn::Icon.new 'fa-__INVALID__', pdf }
109
102
 
110
- expect(proc).to raise_error(Prawn::Errors::IconNotFound)
103
+ expect(proc).to raise_error(errors::IconNotFound)
111
104
  end
112
105
  end
113
106
  end
@@ -7,10 +7,11 @@
7
7
  require 'spec_helper'
8
8
 
9
9
  describe Prawn::Icon::Parser do
10
+ let(:pdf) { create_pdf }
11
+
10
12
  describe '::format' do
11
13
  it 'should return a raw prawn-formatted string on valid input' do
12
14
  string = '<icon>fa-arrows</icon>'
13
- pdf = create_pdf
14
15
  formatted = Prawn::Icon::Parser.format(pdf, string)
15
16
  match = "<font name=\"fa\"></font>"
16
17
 
@@ -23,7 +24,6 @@ describe Prawn::Icon::Parser do
23
24
  Here's some sample text.
24
25
  <i>more text</i>
25
26
  EOS
26
- pdf = create_pdf
27
27
  formatted = Prawn::Icon::Parser.format(pdf, string)
28
28
 
29
29
  expect(formatted).to eq(string)
@@ -31,7 +31,6 @@ describe Prawn::Icon::Parser do
31
31
 
32
32
  it 'should return the empty string if given the empty string' do
33
33
  string = ''
34
- pdf = create_pdf
35
34
  formatted = Prawn::Icon::Parser.format(pdf, string)
36
35
 
37
36
  expect(formatted).to be_empty
@@ -39,7 +38,6 @@ describe Prawn::Icon::Parser do
39
38
 
40
39
  it 'should raise an error when an icon key is invalid' do
41
40
  string = '<icon>an invalid key</icon>'
42
- pdf = create_pdf
43
41
  proc = Proc.new { Prawn::Icon::Parser.format(pdf, string) }
44
42
 
45
43
  expect(proc).to raise_error(Prawn::Errors::UnknownFont)
@@ -47,10 +45,9 @@ describe Prawn::Icon::Parser do
47
45
 
48
46
  it 'should raise an error when an icon is not found for valid set' do
49
47
  string = '<icon>fa-__INVALID__</icon>'
50
- pdf = create_pdf
51
48
  proc = Proc.new { Prawn::Icon::Parser.format(pdf, string) }
52
49
 
53
- expect(proc).to raise_error(Prawn::Errors::IconNotFound)
50
+ expect(proc).to raise_error(Prawn::Icon::Errors::IconNotFound)
54
51
  end
55
52
  end
56
53
 
@@ -122,7 +119,6 @@ describe Prawn::Icon::Parser do
122
119
  string = ''
123
120
  config = []
124
121
  content = contentize_string(string)
125
- pdf = create_pdf
126
122
  icons = Prawn::Icon::Parser.keys_to_unicode(pdf, content, config)
127
123
 
128
124
  expect(icons).to be_empty
@@ -133,7 +129,6 @@ describe Prawn::Icon::Parser do
133
129
  tokens = tokenize_string(string)
134
130
  content = contentize_string(string)
135
131
  config = Prawn::Icon::Parser.config_from_tokens(tokens)
136
- pdf = create_pdf
137
132
  icons = Prawn::Icon::Parser.keys_to_unicode(pdf, content, config)
138
133
  icon = icons.first[:content]
139
134
 
@@ -146,7 +141,6 @@ describe Prawn::Icon::Parser do
146
141
  tokens = tokenize_string(string)
147
142
  content = contentize_string(string)
148
143
  config = Prawn::Icon::Parser.config_from_tokens(tokens)
149
- pdf = create_pdf
150
144
  icons = Prawn::Icon::Parser.keys_to_unicode(pdf, content, config)
151
145
  icon = icons.first
152
146
 
@@ -164,7 +158,6 @@ describe Prawn::Icon::Parser do
164
158
  tokens = tokenize_string(string)
165
159
  content = contentize_string(string)
166
160
  config = Prawn::Icon::Parser.config_from_tokens(tokens)
167
- pdf = create_pdf
168
161
  icons = Prawn::Icon::Parser.keys_to_unicode(pdf, content, config)
169
162
  first = icons.first
170
163
  second = icons[1]
@@ -179,40 +172,50 @@ describe Prawn::Icon::Parser do
179
172
  end
180
173
 
181
174
  describe '::icon_tags' do
182
- it 'should return valid input as prawn formatted text tags wrapping color tags' do
183
- icons = [
184
- { set: :fa, color: 'CCCCCC', content: "\uf001" }
185
- ]
186
- tags = Prawn::Icon::Parser.icon_tags(icons)
187
- match = "<font name=\"fa\"><color rgb=\"CCCCCC\">\uf001</color></font>"
188
-
189
- expect(tags.size).to eq(1)
190
- expect(tags.first).to eq(match)
191
- end
192
-
193
- it 'should return valid input as prawn formatted text tags without color' do
194
- icons = [
195
- { set: :fa, content: "\uf001" }
196
- ]
197
- tags = Prawn::Icon::Parser.icon_tags(icons)
198
- match = "<font name=\"fa\">\uf001</font>"
199
-
200
- expect(tags.size).to eq(1)
201
- expect(tags.first).to eq(match)
202
- end
203
-
204
- it 'should be capable of handling multiple icon fonts' do
205
- icons = [
206
- { set: :fa, content: "\uf001" },
207
- { set: :fi, content: "\uf001" }
208
- ]
209
- tags = Prawn::Icon::Parser.icon_tags(icons)
210
- match1 = "<font name=\"fa\">\uf001</font>"
211
- match2 = "<font name=\"fi\">\uf001</font>"
212
-
213
- expect(tags.size).to eq(2)
214
- expect(tags[0]).to eq(match1)
215
- expect(tags[1]).to eq(match2)
175
+ let(:tags) { Prawn::Icon::Parser.icon_tags(icons) }
176
+
177
+ context 'with color attribute' do
178
+ let(:icons) do
179
+ [
180
+ { set: :fa, color: 'CCCCCC', content: "\uf001" }
181
+ ]
182
+ end
183
+
184
+ it 'should return valid input as prawn formatted text tags wrapping color tags' do
185
+ match = "<font name=\"fa\"><color rgb=\"CCCCCC\">\uf001</color></font>"
186
+
187
+ expect(tags).to eq([match])
188
+ end
189
+ end
190
+
191
+ context 'without the color attribute' do
192
+ let(:icons) do
193
+ [
194
+ { set: :fa, content: "\uf001" }
195
+ ]
196
+ end
197
+
198
+ it 'should return valid input as prawn formatted text tags without color' do
199
+ match = "<font name=\"fa\">\uf001</font>"
200
+
201
+ expect(tags).to eq([match])
202
+ end
203
+ end
204
+
205
+ context 'with multiple icon fonts' do
206
+ let(:icons) do
207
+ [
208
+ { set: :fa, content: "\uf001" },
209
+ { set: :fi, content: "\uf001" }
210
+ ]
211
+ end
212
+
213
+ it 'should be capable of handling multiple icon fonts' do
214
+ match1 = "<font name=\"fa\">\uf001</font>"
215
+ match2 = "<font name=\"fi\">\uf001</font>"
216
+
217
+ expect(tags).to eq([match1, match2])
218
+ end
216
219
  end
217
220
  end
218
221
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: prawn-icon
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jesse Doyle
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-06-25 00:00:00.000000000 Z
11
+ date: 2016-09-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: prawn
@@ -50,14 +50,14 @@ dependencies:
50
50
  requirements:
51
51
  - - "~>"
52
52
  - !ruby/object:Gem::Version
53
- version: 3.4.0
53
+ version: 3.5.0
54
54
  type: :development
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  requirements:
58
58
  - - "~>"
59
59
  - !ruby/object:Gem::Version
60
- version: 3.4.0
60
+ version: 3.5.0
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: rubocop
63
63
  requirement: !ruby/object:Gem::Requirement
@@ -139,6 +139,8 @@ files:
139
139
  - examples/octicons.rb
140
140
  - examples/paymentfont.rb
141
141
  - lib/prawn/icon.rb
142
+ - lib/prawn/icon/base.rb
143
+ - lib/prawn/icon/errors.rb
142
144
  - lib/prawn/icon/font_data.rb
143
145
  - lib/prawn/icon/parser.rb
144
146
  - lib/prawn/icon/version.rb
@@ -147,6 +149,9 @@ files:
147
149
  - spec/spec_helper.rb
148
150
  - spec/support/parser_helper.rb
149
151
  - spec/support/pdf_helper.rb
152
+ - spec/unit/base_spec.rb
153
+ - spec/unit/errors/icon_key_empty_spec.rb
154
+ - spec/unit/errors/icon_not_found_spec.rb
150
155
  - spec/unit/font_data_spec.rb
151
156
  - spec/unit/icon_spec.rb
152
157
  - spec/unit/parser_spec.rb