pdf-core 0.5.1 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,4 +1,4 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
2
 
3
3
  # prawn/core/stream.rb : Implements Stream objects
4
4
  #
@@ -18,7 +18,7 @@ module PDF
18
18
  end
19
19
 
20
20
  def <<(io)
21
- (@stream ||= '') << io
21
+ (@stream ||= +'') << io
22
22
  @filtered_stream = nil
23
23
  self
24
24
  end
@@ -44,7 +44,8 @@ module PDF
44
44
  @filtered_stream = @stream.dup
45
45
 
46
46
  @filters.each do |(filter_name, params)|
47
- if filter = PDF::Core::Filters.const_get(filter_name)
47
+ filter = PDF::Core::Filters.const_get(filter_name)
48
+ if filter
48
49
  @filtered_stream = filter.encode @filtered_stream, params
49
50
  end
50
51
  end
@@ -52,8 +53,6 @@ module PDF
52
53
 
53
54
  @filtered_stream
54
55
  # XXX Fillter stream
55
- else
56
- nil
57
56
  end
58
57
  end
59
58
 
@@ -75,12 +74,12 @@ module PDF
75
74
  filter_params = @filters.decode_params
76
75
 
77
76
  d = {
78
- :Length => filtered_stream.length
77
+ Length: filtered_stream.length
79
78
  }
80
79
  if filter_names.any?
81
80
  d[:Filter] = filter_names
82
81
  end
83
- if filter_params.any? {|f| !f.nil? }
82
+ if filter_params.any? { |f| !f.nil? }
84
83
  d[:DecodeParms] = filter_params
85
84
  end
86
85
 
@@ -91,7 +90,14 @@ module PDF
91
90
  end
92
91
 
93
92
  def inspect
94
- "#<#{self.class.name}:0x#{'%014x' % object_id} @stream=#{@stream.inspect}, @filters=#{@filters.inspect}>"
93
+ format(
94
+ '#<%<class>s:0x%<object_id>014x '\
95
+ '@stream=%<stream>s, @filters=%<filters>s>',
96
+ class: self.class.name,
97
+ object_id: object_id,
98
+ stream: @stream.inspect,
99
+ filters: @filters.inspect
100
+ )
95
101
  end
96
102
  end
97
103
  end
@@ -1,4 +1,4 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
2
 
3
3
  # prawn/core/text.rb : Implements low level text helpers for Prawn
4
4
  #
@@ -11,20 +11,34 @@ module PDF
11
11
  module Text #:nodoc:
12
12
  # These should be used as a base. Extensions may build on this list
13
13
  #
14
- VALID_OPTIONS = [:kerning, :size, :style]
15
- MODES = { :fill => 0, :stroke => 1, :fill_stroke => 2, :invisible => 3,
16
- :fill_clip => 4, :stroke_clip => 5, :fill_stroke_clip => 6,
17
- :clip => 7 }
14
+ VALID_OPTIONS = %i[kerning size style].freeze
15
+ MODES = {
16
+ fill: 0,
17
+ stroke: 1,
18
+ fill_stroke: 2,
19
+ invisible: 3,
20
+ fill_clip: 4,
21
+ stroke_clip: 5,
22
+ fill_stroke_clip: 6,
23
+ clip: 7
24
+ }.freeze
25
+
26
+ class BadFontFamily < StandardError
27
+ def initialize(message = 'Bad font family')
28
+ super
29
+ end
30
+ end
18
31
 
19
32
  attr_reader :skip_encoding
20
33
 
21
- # Low level call to set the current font style and extract text options from
22
- # an options hash. Should be called from within a save_font block
34
+ # Low level call to set the current font style and extract text options
35
+ # from an options hash. Should be called from within a save_font block
23
36
  #
24
37
  def process_text_options(options)
25
38
  if options[:style]
26
- raise "Bad font family" unless font.family
27
- font(font.family, :style => options[:style])
39
+ raise BadFontFamily unless font.family
40
+
41
+ font(font.family, style: options[:style])
28
42
  end
29
43
 
30
44
  # must compare against false to keep kerning on as default
@@ -40,23 +54,24 @@ module PDF
40
54
  # Defaults to true
41
55
  #
42
56
  def default_kerning?
43
- return true if !defined?(@default_kerning)
57
+ return true unless defined?(@default_kerning)
58
+
44
59
  @default_kerning
45
60
  end
46
61
 
47
- # Call with a boolean to set the document-wide kerning setting. This can be
48
- # overridden using the :kerning text option when drawing text or a text
62
+ # Call with a boolean to set the document-wide kerning setting. This can
63
+ # be overridden using the :kerning text option when drawing text or a text
49
64
  # box.
50
65
  #
51
66
  # pdf.default_kerning = false
52
- # pdf.text("hello world") # text is not kerned
53
- # pdf.text("hello world", :kerning => true) # text is kerned
67
+ # pdf.text('hello world') # text is not kerned
68
+ # pdf.text('hello world', :kerning => true) # text is kerned
54
69
  #
55
70
  def default_kerning(boolean)
56
71
  @default_kerning = boolean
57
72
  end
58
73
 
59
- alias_method :default_kerning=, :default_kerning
74
+ alias default_kerning= default_kerning
60
75
 
61
76
  # Call with no argument to retrieve the current default leading.
62
77
  #
@@ -65,12 +80,12 @@ module PDF
65
80
  # box.
66
81
  #
67
82
  # pdf.default_leading = 7
68
- # pdf.text("hello world") # a leading of 7 is used
69
- # pdf.text("hello world", :leading => 0) # a leading of 0 is used
83
+ # pdf.text('hello world') # a leading of 7 is used
84
+ # pdf.text('hello world', :leading => 0) # a leading of 0 is used
70
85
  #
71
86
  # Defaults to 0
72
87
  #
73
- def default_leading(number=nil)
88
+ def default_leading(number = nil)
74
89
  if number.nil?
75
90
  defined?(@default_leading) && @default_leading || 0
76
91
  else
@@ -78,7 +93,7 @@ module PDF
78
93
  end
79
94
  end
80
95
 
81
- alias_method :default_leading=, :default_leading
96
+ alias default_leading= default_leading
82
97
 
83
98
  # Call with no argument to retrieve the current text direction.
84
99
  #
@@ -87,8 +102,8 @@ module PDF
87
102
  # box.
88
103
  #
89
104
  # pdf.text_direction = :rtl
90
- # pdf.text("hello world") # prints "dlrow olleh"
91
- # pdf.text("hello world", :direction => :ltr) # prints "hello world"
105
+ # pdf.text('hello world') # prints 'dlrow olleh'
106
+ # pdf.text('hello world', :direction => :ltr) # prints 'hello world'
92
107
  #
93
108
  # Valid directions are:
94
109
  #
@@ -100,7 +115,7 @@ module PDF
100
115
  # * When printing left-to-right, the default text alignment is :left
101
116
  # * When printing right-to-left, the default text alignment is :right
102
117
  #
103
- def text_direction(direction=nil)
118
+ def text_direction(direction = nil)
104
119
  if direction.nil?
105
120
  defined?(@text_direction) && @text_direction || :ltr
106
121
  else
@@ -108,7 +123,7 @@ module PDF
108
123
  end
109
124
  end
110
125
 
111
- alias_method :text_direction=, :text_direction
126
+ alias text_direction= text_direction
112
127
 
113
128
  # Call with no argument to retrieve the current fallback fonts.
114
129
  #
@@ -121,16 +136,16 @@ module PDF
121
136
  # Call with an empty array to turn off fallback fonts
122
137
  #
123
138
  # file = "#{Prawn::DATADIR}/fonts/gkai00mp.ttf"
124
- # font_families["Kai"] = {
125
- # :normal => { :file => file, :font => "Kai" }
139
+ # font_families['Kai'] = {
140
+ # :normal => { :file => file, :font => 'Kai' }
126
141
  # }
127
142
  # file = "#{Prawn::DATADIR}/fonts/Action Man.dfont"
128
- # font_families["Action Man"] = {
129
- # :normal => { :file => file, :font => "ActionMan" },
143
+ # font_families['Action Man'] = {
144
+ # :normal => { :file => file, :font => 'ActionMan' },
130
145
  # }
131
- # fallback_fonts ["Times-Roman", "Kai"]
132
- # font "Action Man"
133
- # text "hello ƒ 你好"
146
+ # fallback_fonts ['Times-Roman', 'Kai']
147
+ # font 'Action Man'
148
+ # text 'hello ƒ 你好'
134
149
  # > hello prints in Action Man
135
150
  # > ƒ prints in Times-Roman
136
151
  # > 你好 prints in Kai
@@ -142,7 +157,7 @@ module PDF
142
157
  # * Increased overhead when fallback fonts are declared as each glyph is
143
158
  # checked to see whether it exists in the current font
144
159
  #
145
- def fallback_fonts(fallback_fonts=nil)
160
+ def fallback_fonts(fallback_fonts = nil)
146
161
  if fallback_fonts.nil?
147
162
  defined?(@fallback_fonts) && @fallback_fonts || []
148
163
  else
@@ -150,7 +165,7 @@ module PDF
150
165
  end
151
166
  end
152
167
 
153
- alias_method :fallback_fonts=, :fallback_fonts
168
+ alias fallback_fonts= fallback_fonts
154
169
 
155
170
  # Call with no argument to retrieve the current text rendering mode.
156
171
  #
@@ -158,7 +173,7 @@ module PDF
158
173
  # text rendering mode.
159
174
  #
160
175
  # pdf.text_rendering_mode(:stroke) do
161
- # pdf.text("Outlined Text")
176
+ # pdf.text('Outlined Text')
162
177
  # end
163
178
  #
164
179
  # Valid modes are:
@@ -169,14 +184,19 @@ module PDF
169
184
  # * :invisible - invisible text
170
185
  # * :fill_clip - fill text then add to path for clipping
171
186
  # * :stroke_clip - stroke text then add to path for clipping
172
- # * :fill_stroke_clip - fill then stroke text, then add to path for clipping
187
+ # * :fill_stroke_clip - fill then stroke text, then add to path for
188
+ # clipping
173
189
  # * :clip - add text to path for clipping
174
- def text_rendering_mode(mode=nil)
175
- return (defined?(@text_rendering_mode) && @text_rendering_mode || :fill) if mode.nil?
190
+ def text_rendering_mode(mode = nil)
191
+ if mode.nil?
192
+ return defined?(@text_rendering_mode) && @text_rendering_mode || :fill
193
+ end
194
+
176
195
  unless MODES.key?(mode)
177
- raise ArgumentError, "mode must be between one of #{MODES.keys.join(', ')} (#{mode})"
196
+ raise ArgumentError,
197
+ "mode must be between one of #{MODES.keys.join(', ')} (#{mode})"
178
198
  end
179
- original_mode = self.text_rendering_mode
199
+ original_mode = text_rendering_mode
180
200
 
181
201
  if original_mode == mode
182
202
  yield
@@ -197,8 +217,11 @@ module PDF
197
217
  # For horizontal text, a positive value will increase the space.
198
218
  # For veritical text, a positive value will decrease the space.
199
219
  #
200
- def character_spacing(amount=nil)
201
- return defined?(@character_spacing) && @character_spacing || 0 if amount.nil?
220
+ def character_spacing(amount = nil)
221
+ if amount.nil?
222
+ return defined?(@character_spacing) && @character_spacing || 0
223
+ end
224
+
202
225
  original_character_spacing = character_spacing
203
226
  if original_character_spacing == amount
204
227
  yield
@@ -215,8 +238,9 @@ module PDF
215
238
  # For horizontal text, a positive value will increase the space.
216
239
  # For veritical text, a positive value will decrease the space.
217
240
  #
218
- def word_spacing(amount=nil)
241
+ def word_spacing(amount = nil)
219
242
  return defined?(@word_spacing) && @word_spacing || 0 if amount.nil?
243
+
220
244
  original_word_spacing = word_spacing
221
245
  if original_word_spacing == amount
222
246
  yield
@@ -230,25 +254,54 @@ module PDF
230
254
  end
231
255
  end
232
256
 
257
+ # Set the horizontal scaling. amount is a number specifying the
258
+ # percentage of the normal width.
259
+ def horizontal_text_scaling(amount = nil)
260
+ if amount.nil?
261
+ return defined?(@horizontal_text_scaling) && @horizontal_text_scaling || 100
262
+ end
263
+
264
+ original_horizontal_text_scaling = horizontal_text_scaling
265
+ if original_horizontal_text_scaling == amount
266
+ yield
267
+ else
268
+ @horizontal_text_scaling = amount
269
+ add_content "\n#{PDF::Core.real(amount)} Tz"
270
+ yield
271
+ add_content "\n#{PDF::Core.real(original_horizontal_text_scaling)} Tz"
272
+ @horizontal_text_scaling = original_horizontal_text_scaling
273
+ end
274
+ end
275
+
233
276
  def add_text_content(text, x, y, options)
234
- chunks = font.encode_text(text,options)
277
+ chunks = font.encode_text(text, options)
235
278
 
236
279
  add_content "\nBT"
237
280
 
238
281
  if options[:rotate]
239
282
  rad = options[:rotate].to_f * Math::PI / 180
240
- array = [ Math.cos(rad), Math.sin(rad), -Math.sin(rad), Math.cos(rad), x, y ]
283
+ array = [
284
+ Math.cos(rad),
285
+ Math.sin(rad),
286
+ -Math.sin(rad),
287
+ Math.cos(rad),
288
+ x, y
289
+ ]
241
290
  add_content "#{PDF::Core.real_params(array)} Tm"
242
291
  else
243
- add_content "#{PDF::Core.real_params([x,y])} Td"
292
+ add_content "#{PDF::Core.real_params([x, y])} Td"
244
293
  end
245
294
 
246
295
  chunks.each do |(subset, string)|
247
296
  font.add_to_current_page(subset)
248
- add_content "/#{font.identifier_for(subset)} #{font_size} Tf"
297
+ add_content [
298
+ PDF::Core.pdf_object(font.identifier_for(subset), true),
299
+ PDF::Core.pdf_object(font_size, true),
300
+ 'Tf'
301
+ ].join(' ')
249
302
 
250
- operation = options[:kerning] && string.is_a?(Array) ? "TJ" : "Tj"
251
- add_content PDF::Core::PdfObject(string, true) << " " << operation
303
+ operation = options[:kerning] && string.is_a?(Array) ? 'TJ' : 'Tj'
304
+ add_content "#{PDF::Core.pdf_object(string, true)} #{operation}"
252
305
  end
253
306
 
254
307
  add_content "ET\n"
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PDF
4
+ module Core
5
+ module Utils
6
+ module_function
7
+
8
+ def deep_clone(object)
9
+ Marshal.load(Marshal.dump(object))
10
+ end
11
+ end
12
+ end
13
+ end
@@ -1,29 +1,44 @@
1
+ # frozen_string_literal: true
2
+
1
3
  Gem::Specification.new do |spec|
2
- spec.name = "pdf-core"
3
- spec.version = File.read(File.expand_path('VERSION', File.dirname(__FILE__))).strip
4
+ spec.name = 'pdf-core'
5
+ spec.version = '0.9.0'
4
6
  spec.platform = Gem::Platform::RUBY
5
- spec.summary = "PDF::Core is used by Prawn to render PDF documents"
6
- spec.files = Dir.glob("{lib,spec}/**/**/*") +
7
- ["COPYING", "GPLv2", "GPLv3", "LICENSE"] +
8
- ["Gemfile", "Rakefile"] +
9
- ["pdf-core.gemspec"]
10
- spec.require_path = "lib"
11
- spec.required_ruby_version = '>= 1.9.3'
12
- spec.required_rubygems_version = ">= 1.3.6"
7
+ spec.summary = 'PDF::Core is used by Prawn to render PDF documents'
8
+ spec.files =
9
+ Dir.glob('lib/**/**/*') +
10
+ %w[COPYING GPLv2 GPLv3 LICENSE] +
11
+ %w[Gemfile Rakefile] +
12
+ ['pdf-core.gemspec']
13
+ spec.require_path = 'lib'
14
+ spec.required_ruby_version = '>= 2.5'
15
+ spec.required_rubygems_version = '>= 1.3.6'
16
+
17
+ spec.cert_chain = ['certs/pointlessone.pem']
18
+ if $PROGRAM_NAME.end_with? 'gem'
19
+ spec.signing_key = File.expand_path('~/.gem/gem-private_key.pem')
20
+ end
13
21
 
14
- #spec.test_files = Dir[ "spec/*_spec.rb" ]
15
- #spec.extra_rdoc_files = %w{README.md LICENSE COPYING GPLv2 GPLv3}
16
- #spec.rdoc_options << '--title' << 'Prawn Documentation' <<
22
+ # spec.extra_rdoc_files = %w{README.md LICENSE COPYING GPLv2 GPLv3}
23
+ # spec.rdoc_options << '--title' << 'Prawn Documentation' <<
17
24
  # '--main' << 'README.md' << '-q'
18
- spec.authors = ["Gregory Brown","Brad Ediger","Daniel Nelson","Jonathan Greenberg","James Healy"]
19
- spec.email = ["gregory.t.brown@gmail.com","brad@bradediger.com","dnelson@bluejade.com","greenberg@entryway.net","jimmy@deefa.com"]
20
- spec.rubyforge_project = "prawn"
21
- spec.licenses = ['RUBY', 'GPL-2', 'GPL-3']
22
- spec.add_development_dependency('pdf-reader', '~>1.2')
23
- spec.add_development_dependency('simplecov')
25
+ spec.authors = [
26
+ 'Gregory Brown', 'Brad Ediger', 'Daniel Nelson', 'Jonathan Greenberg',
27
+ 'James Healy'
28
+ ]
29
+ spec.email = [
30
+ 'gregory.t.brown@gmail.com', 'brad@bradediger.com', 'dnelson@bluejade.com',
31
+ 'greenberg@entryway.net', 'jimmy@deefa.com'
32
+ ]
33
+ spec.licenses = %w[PRAWN GPL-2.0 GPL-3.0]
24
34
  spec.add_development_dependency('pdf-inspector', '~> 1.1.0')
25
- spec.add_development_dependency('rspec')
35
+ spec.add_development_dependency('pdf-reader', '~>1.2')
26
36
  spec.add_development_dependency('rake')
27
- spec.homepage = "http://prawn.majesticseacreature.com"
28
- spec.description = "PDF::Core is used by Prawn to render PDF documents"
37
+ spec.add_development_dependency('rspec')
38
+ spec.add_development_dependency('rubocop', '~> 0.93')
39
+ spec.add_development_dependency('rubocop-performance', '~> 1.8')
40
+ spec.add_development_dependency('rubocop-rspec', '~> 1.44')
41
+ spec.add_development_dependency('simplecov')
42
+ spec.homepage = 'http://prawnpdf.org'
43
+ spec.description = 'PDF::Core is used by Prawn to render PDF documents'
29
44
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pdf-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gregory Brown
@@ -11,9 +11,44 @@ authors:
11
11
  - James Healy
12
12
  autorequire:
13
13
  bindir: bin
14
- cert_chain: []
15
- date: 2015-03-12 00:00:00.000000000 Z
14
+ cert_chain:
15
+ - |
16
+ -----BEGIN CERTIFICATE-----
17
+ MIIDODCCAiCgAwIBAgIBATANBgkqhkiG9w0BAQsFADAjMSEwHwYDVQQDDBhhbGV4
18
+ L0RDPXBvaW50bGVzcy9EQz1vbmUwHhcNMjAwODAxMTQxMjE1WhcNMjEwODAxMTQx
19
+ MjE1WjAjMSEwHwYDVQQDDBhhbGV4L0RDPXBvaW50bGVzcy9EQz1vbmUwggEiMA0G
20
+ CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDPOVLPGEK+eaP6zJfifrpWvPTg4qo3
21
+ XNJJPom80SwqX2hVCVsRDK4RYgKUQqKRQzHhlx14wZHwWLETBVbNDGX3uqyCnTWU
22
+ JUKh3ydiZShXpNHoV/NW7hhEYvNsDcBAjYTmbvXOhuYCo0Tz/0N2Oiun/0wIICtP
23
+ vytY9TY0/lklWjAbsqJjNOu3o8IYkJBAN/rU96E/6WhFwjnxLcTnV9RfFRXdjG5j
24
+ CughoB2xSwKX8gwbQ8fsnaZRmdyDGYNpz6sGF0zycfiLkTttbLA2nYATCALy98CH
25
+ nsyZNsTjb4WINCuY2yEDjwesw9f/ROkNC68EgQ5M+aMjp+D0WcYGfzojAgMBAAGj
26
+ dzB1MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQWBBRPgIwSVbeonua/
27
+ Ny/8576oxdUbrjAdBgNVHREEFjAUgRJhbGV4QHBvaW50bGVzcy5vbmUwHQYDVR0S
28
+ BBYwFIESYWxleEBwb2ludGxlc3Mub25lMA0GCSqGSIb3DQEBCwUAA4IBAQAzhGxF
29
+ M0bXJ9GWD9vdVHOyzBQBJcJAvnsz2yV3+r4eJBsQynFIscsea8lHFL/d1eHYP0mN
30
+ k0fhK+WDcPlrj0Sn/Ezhk2qogTIekwDOK6pZkGRQzD45leJqQMnYd+/TXK3ri485
31
+ Gi4oJ6NitnnUT59SQnjD5JcENfc0EcRzclmVRFE8W4O+ORgo4Dypq1rwYUzxeyUk
32
+ mP5jNBWtH+hGUph28GQb0Hph6YnQb8zEFB88Xq80PK1SzkIPHpbTBk9mwPf6ypeX
33
+ Un1TJEahAlgENVml6CyDXSwk0H8N1V3gm1mb9Fe1T2Z/kAzvjo0qTDEtMVLU7Bxh
34
+ uqMUrdETjTnRYCVq
35
+ -----END CERTIFICATE-----
36
+ date: 2020-10-24 00:00:00.000000000 Z
16
37
  dependencies:
38
+ - !ruby/object:Gem::Dependency
39
+ name: pdf-inspector
40
+ requirement: !ruby/object:Gem::Requirement
41
+ requirements:
42
+ - - "~>"
43
+ - !ruby/object:Gem::Version
44
+ version: 1.1.0
45
+ type: :development
46
+ prerelease: false
47
+ version_requirements: !ruby/object:Gem::Requirement
48
+ requirements:
49
+ - - "~>"
50
+ - !ruby/object:Gem::Version
51
+ version: 1.1.0
17
52
  - !ruby/object:Gem::Dependency
18
53
  name: pdf-reader
19
54
  requirement: !ruby/object:Gem::Requirement
@@ -29,7 +64,7 @@ dependencies:
29
64
  - !ruby/object:Gem::Version
30
65
  version: '1.2'
31
66
  - !ruby/object:Gem::Dependency
32
- name: simplecov
67
+ name: rake
33
68
  requirement: !ruby/object:Gem::Requirement
34
69
  requirements:
35
70
  - - ">="
@@ -43,35 +78,63 @@ dependencies:
43
78
  - !ruby/object:Gem::Version
44
79
  version: '0'
45
80
  - !ruby/object:Gem::Dependency
46
- name: pdf-inspector
81
+ name: rspec
82
+ requirement: !ruby/object:Gem::Requirement
83
+ requirements:
84
+ - - ">="
85
+ - !ruby/object:Gem::Version
86
+ version: '0'
87
+ type: :development
88
+ prerelease: false
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - ">="
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ - !ruby/object:Gem::Dependency
95
+ name: rubocop
47
96
  requirement: !ruby/object:Gem::Requirement
48
97
  requirements:
49
98
  - - "~>"
50
99
  - !ruby/object:Gem::Version
51
- version: 1.1.0
100
+ version: '0.93'
52
101
  type: :development
53
102
  prerelease: false
54
103
  version_requirements: !ruby/object:Gem::Requirement
55
104
  requirements:
56
105
  - - "~>"
57
106
  - !ruby/object:Gem::Version
58
- version: 1.1.0
107
+ version: '0.93'
59
108
  - !ruby/object:Gem::Dependency
60
- name: rspec
109
+ name: rubocop-performance
61
110
  requirement: !ruby/object:Gem::Requirement
62
111
  requirements:
63
- - - ">="
112
+ - - "~>"
64
113
  - !ruby/object:Gem::Version
65
- version: '0'
114
+ version: '1.8'
66
115
  type: :development
67
116
  prerelease: false
68
117
  version_requirements: !ruby/object:Gem::Requirement
69
118
  requirements:
70
- - - ">="
119
+ - - "~>"
71
120
  - !ruby/object:Gem::Version
72
- version: '0'
121
+ version: '1.8'
73
122
  - !ruby/object:Gem::Dependency
74
- name: rake
123
+ name: rubocop-rspec
124
+ requirement: !ruby/object:Gem::Requirement
125
+ requirements:
126
+ - - "~>"
127
+ - !ruby/object:Gem::Version
128
+ version: '1.44'
129
+ type: :development
130
+ prerelease: false
131
+ version_requirements: !ruby/object:Gem::Requirement
132
+ requirements:
133
+ - - "~>"
134
+ - !ruby/object:Gem::Version
135
+ version: '1.44'
136
+ - !ruby/object:Gem::Dependency
137
+ name: simplecov
75
138
  requirement: !ruby/object:Gem::Requirement
76
139
  requirements:
77
140
  - - ">="
@@ -121,20 +184,13 @@ files:
121
184
  - lib/pdf/core/renderer.rb
122
185
  - lib/pdf/core/stream.rb
123
186
  - lib/pdf/core/text.rb
187
+ - lib/pdf/core/utils.rb
124
188
  - pdf-core.gemspec
125
- - spec/decimal_rounding_spec.rb
126
- - spec/filters_spec.rb
127
- - spec/name_tree_spec.rb
128
- - spec/object_store_spec.rb
129
- - spec/pdf_object_spec.rb
130
- - spec/reference_spec.rb
131
- - spec/spec_helper.rb
132
- - spec/stream_spec.rb
133
- homepage: http://prawn.majesticseacreature.com
189
+ homepage: http://prawnpdf.org
134
190
  licenses:
135
- - RUBY
136
- - GPL-2
137
- - GPL-3
191
+ - PRAWN
192
+ - GPL-2.0
193
+ - GPL-3.0
138
194
  metadata: {}
139
195
  post_install_message:
140
196
  rdoc_options: []
@@ -144,17 +200,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
144
200
  requirements:
145
201
  - - ">="
146
202
  - !ruby/object:Gem::Version
147
- version: 1.9.3
203
+ version: '2.5'
148
204
  required_rubygems_version: !ruby/object:Gem::Requirement
149
205
  requirements:
150
206
  - - ">="
151
207
  - !ruby/object:Gem::Version
152
208
  version: 1.3.6
153
209
  requirements: []
154
- rubyforge_project: prawn
155
- rubygems_version: 2.2.2
210
+ rubygems_version: 3.0.3
156
211
  signing_key:
157
212
  specification_version: 4
158
213
  summary: PDF::Core is used by Prawn to render PDF documents
159
214
  test_files: []
160
- has_rdoc: