prawn-icon 0.5.1 → 0.6.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.
- checksums.yaml +4 -4
- data/Gemfile +1 -1
- data/Rakefile +5 -1
- data/examples/fontawesome.rb +0 -1
- data/examples/foundation_icons.rb +0 -1
- data/examples/octicons.rb +0 -1
- data/lib/prawn/icon.rb +1 -0
- data/lib/prawn/icon/parser.rb +20 -7
- data/lib/prawn/icon/version.rb +1 -1
- data/prawn-icon.gemspec +6 -4
- data/spec/spec_helper.rb +0 -1
- data/spec/unit/parser_spec.rb +28 -0
- metadata +29 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 80513979342022341bfa4034755c950f119733f0
|
4
|
+
data.tar.gz: 22f383bfd1061435dc1174a04c2513dcce1020ef
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 97d67837e38a0fb9b2756700c0dd79e2f8418c2ef7f2537820f560f06e67c768526897d2443dc8f4232d2921918ca007d1225b84c6e9d01b1ec078eab6e84245
|
7
|
+
data.tar.gz: ab151bd81b30919fd63b7b28e0da33dfa93815bc23aae9103b7e2c66c340af8719d90326ccbce01f451bbcfaaca692a5706f8ccbee4a4df82267d1011275ae81
|
data/Gemfile
CHANGED
data/Rakefile
CHANGED
@@ -9,8 +9,9 @@ Bundler.setup
|
|
9
9
|
|
10
10
|
require 'rake'
|
11
11
|
require 'rspec/core/rake_task'
|
12
|
+
require 'rubocop/rake_task'
|
12
13
|
|
13
|
-
task :default => [:spec]
|
14
|
+
task :default => [:spec, :rubocop]
|
14
15
|
|
15
16
|
desc 'Run all rspec files'
|
16
17
|
RSpec::Core::RakeTask.new('spec') do |c|
|
@@ -28,3 +29,6 @@ task :legend do
|
|
28
29
|
end
|
29
30
|
puts 'All Done!'
|
30
31
|
end
|
32
|
+
|
33
|
+
RuboCop::RakeTask.new
|
34
|
+
|
data/examples/fontawesome.rb
CHANGED
data/examples/octicons.rb
CHANGED
data/lib/prawn/icon.rb
CHANGED
data/lib/prawn/icon/parser.rb
CHANGED
@@ -39,6 +39,8 @@ module Prawn
|
|
39
39
|
|
40
40
|
TAG_REGEX = /<icon[^>]*>[^<]*<\/icon>/mi
|
41
41
|
|
42
|
+
ATTR_REGEX = /(?<attr>[a-zA-Z]*)=["|'](?<val>(\w*[^["|']]))["|']/mi
|
43
|
+
|
42
44
|
class << self
|
43
45
|
def format(document, string)
|
44
46
|
tokens = string.scan(PARSER_REGEX)
|
@@ -58,16 +60,15 @@ module Prawn
|
|
58
60
|
tokens.each do |token|
|
59
61
|
# Skip the closing tag
|
60
62
|
next if token =~ /<\/icon>/i
|
61
|
-
|
62
63
|
icon = {}
|
63
64
|
|
64
|
-
#
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
icon[:color] = color[1] if color
|
65
|
+
# Convert [[1,2], [3,4]] to { :1 => 2, :3 => 4 }
|
66
|
+
attrs = token.scan(ATTR_REGEX).inject({}) do |k, v|
|
67
|
+
val = attr_hash(v)
|
68
|
+
k.merge!(val)
|
69
|
+
end
|
70
70
|
|
71
|
+
icon.merge!(attrs)
|
71
72
|
array << icon
|
72
73
|
end
|
73
74
|
|
@@ -120,6 +121,18 @@ module Prawn
|
|
120
121
|
|
121
122
|
icons
|
122
123
|
end
|
124
|
+
|
125
|
+
private
|
126
|
+
|
127
|
+
def attr_hash(value) #:nodoc:
|
128
|
+
# If attr == size, we must cast value to float,
|
129
|
+
# else symbolize the key and map it to value
|
130
|
+
if value[0] =~ /size/i
|
131
|
+
{ size: value[1].to_f }
|
132
|
+
else
|
133
|
+
{ value[0].to_sym => value[1] }
|
134
|
+
end
|
135
|
+
end
|
123
136
|
end
|
124
137
|
end
|
125
138
|
end
|
data/lib/prawn/icon/version.rb
CHANGED
data/prawn-icon.gemspec
CHANGED
@@ -7,8 +7,8 @@ Gem::Specification.new do |spec|
|
|
7
7
|
spec.platform = Gem::Platform::RUBY
|
8
8
|
spec.summary = 'Provides icon fonts for PrawnPDF'
|
9
9
|
spec.files = Dir.glob('{lib,spec,fonts,examples}/**/**/*') +
|
10
|
-
|
11
|
-
|
10
|
+
['prawn-icon.gemspec', 'Gemfile', 'Rakefile',
|
11
|
+
'COPYING', 'LICENSE', 'GPLv2', 'GPLv3']
|
12
12
|
spec.require_path = 'lib'
|
13
13
|
spec.required_ruby_version = '>= 1.9.3'
|
14
14
|
spec.required_rubygems_version = '>= 1.3.6'
|
@@ -20,9 +20,11 @@ Gem::Specification.new do |spec|
|
|
20
20
|
spec.email = ['jdoyle@ualberta.ca']
|
21
21
|
spec.licenses = ['RUBY', 'GPL-2', 'GPL-3']
|
22
22
|
|
23
|
-
spec.
|
23
|
+
spec.add_dependency('prawn', '>= 1.3.0', '< 3.0.0')
|
24
|
+
|
24
25
|
spec.add_development_dependency('pdf-inspector', '~> 1.1.0')
|
25
|
-
spec.add_development_dependency('rspec', '2.14.1')
|
26
|
+
spec.add_development_dependency('rspec', '~>2.14.1')
|
27
|
+
spec.add_development_dependency('rubocop', '~>0.27.0')
|
26
28
|
spec.add_development_dependency('mocha')
|
27
29
|
spec.add_development_dependency('rake')
|
28
30
|
spec.add_development_dependency('simplecov')
|
data/spec/spec_helper.rb
CHANGED
data/spec/unit/parser_spec.rb
CHANGED
@@ -55,6 +55,34 @@ describe Prawn::Icon::Parser do
|
|
55
55
|
end
|
56
56
|
|
57
57
|
describe '::config_from_tokens' do
|
58
|
+
it 'should handle attrs with double quotes' do
|
59
|
+
string = '<icon size="20">fa-arrows</icon>'
|
60
|
+
tokens = tokenize_string(string)
|
61
|
+
config = Prawn::Icon::Parser.config_from_tokens(tokens)
|
62
|
+
inner = config.first
|
63
|
+
|
64
|
+
expect(inner[:size]).to eq(20.0)
|
65
|
+
end
|
66
|
+
|
67
|
+
it 'should handle attrs with single quotes' do
|
68
|
+
string = "<icon size='20'>fa-arrows</icon>"
|
69
|
+
tokens = tokenize_string(string)
|
70
|
+
config = Prawn::Icon::Parser.config_from_tokens(tokens)
|
71
|
+
inner = config.first
|
72
|
+
|
73
|
+
expect(inner[:size]).to eq(20.0)
|
74
|
+
end
|
75
|
+
|
76
|
+
it 'should handle both single/double quotes in same string' do
|
77
|
+
string = '<icon color="0099FF" size=\'20\'>fa-arrows</icon>'
|
78
|
+
tokens = tokenize_string(string)
|
79
|
+
config = Prawn::Icon::Parser.config_from_tokens(tokens)
|
80
|
+
inner = config.first
|
81
|
+
|
82
|
+
expect(inner[:size]).to eq(20.0)
|
83
|
+
expect(inner[:color]).to eq('0099FF')
|
84
|
+
end
|
85
|
+
|
58
86
|
it 'should return an array containing only an empty hash' do
|
59
87
|
string = '<icon>fa-arrows</icon>'
|
60
88
|
tokens = tokenize_string(string)
|
metadata
CHANGED
@@ -1,29 +1,35 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: prawn-icon
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.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:
|
11
|
+
date: 2015-01-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: prawn
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - '>='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
20
|
-
|
19
|
+
version: 1.3.0
|
20
|
+
- - <
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 3.0.0
|
23
|
+
type: :runtime
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
24
|
-
- -
|
27
|
+
- - '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 1.3.0
|
30
|
+
- - <
|
25
31
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
32
|
+
version: 3.0.0
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
34
|
name: pdf-inspector
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -42,16 +48,30 @@ dependencies:
|
|
42
48
|
name: rspec
|
43
49
|
requirement: !ruby/object:Gem::Requirement
|
44
50
|
requirements:
|
45
|
-
- -
|
51
|
+
- - ~>
|
46
52
|
- !ruby/object:Gem::Version
|
47
53
|
version: 2.14.1
|
48
54
|
type: :development
|
49
55
|
prerelease: false
|
50
56
|
version_requirements: !ruby/object:Gem::Requirement
|
51
57
|
requirements:
|
52
|
-
- -
|
58
|
+
- - ~>
|
53
59
|
- !ruby/object:Gem::Version
|
54
60
|
version: 2.14.1
|
61
|
+
- !ruby/object:Gem::Dependency
|
62
|
+
name: rubocop
|
63
|
+
requirement: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - ~>
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: 0.27.0
|
68
|
+
type: :development
|
69
|
+
prerelease: false
|
70
|
+
version_requirements: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - ~>
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: 0.27.0
|
55
75
|
- !ruby/object:Gem::Dependency
|
56
76
|
name: mocha
|
57
77
|
requirement: !ruby/object:Gem::Requirement
|