combine_pdf 1.0.10 → 1.0.11

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7fced5e9fb501777c32a0c483d00c9ae0ff3875406cd6367eb8a1ac5193a5ba3
4
- data.tar.gz: '08bdd4f49d69a25a2d83b0a28dc13d6e07c2e100f986404a516f1995f11db2b9'
3
+ metadata.gz: f292c2a6bcd884e255454fbc8da8607e35bd67f4d384bae7f3f24ecf5bab0fd2
4
+ data.tar.gz: 1e42415199a87b283161390c81304ba566e5db5910aba343b3ad636df3f1f4e1
5
5
  SHA512:
6
- metadata.gz: b55bfcb34ebc64b3fc9749dfb119bd719d873d814fa340443bf346aeab233de151c6d57f2c90cf25d50053c3880b0d3f946fa028ef353b4356e02537ef729467
7
- data.tar.gz: e1307d1b99aa5c174b2bde19311213fcd69248ba2fcb622e1497b1981e06fd026f7493c33fc30e38861460849c25f5072644223a241e7cf9e4b1489170c93cd4
6
+ metadata.gz: abe5f55e7e428216469b5203942409886fca98ba9746a949eba50df24bb82ae5068bcb2de8eec854a00aee9a12155e3c7befded73e154f2dbc0043cb9db62843
7
+ data.tar.gz: eeeb8e7c3d0e0ab27337dbf04fbb833973904e1f8cd76e2788fdd3dbc12400702f9a6870c18434ca7901030a35fb62d281ad9110c5cc9e3da19b394a9ddaff24
data/CHANGELOG.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  ***
4
4
 
5
+ #### Change log v.1.0.11
6
+
7
+ **Fix**: Fixed an issue where small floating point numbers would produce invalid PDF rendering (where exponent notation was used instead of decimal notation). Credit to @avit (Andrew Vit) for PR #139.
8
+
5
9
  #### Change log v.1.0.10
6
10
 
7
11
  **Fix**: Fixed an issue related to issue #131 where parsing would fail if the `xref` section appears to be misplaced within the PDF. Credit to @bharat303 (Bharat Godhani) for exposing this issue.
data/combine_pdf.gemspec CHANGED
@@ -22,4 +22,5 @@ Gem::Specification.new do |spec|
22
22
 
23
23
  spec.add_development_dependency "bundler", "~> 1.7"
24
24
  spec.add_development_dependency "rake", "~> 10.0"
25
+ spec.add_development_dependency "minitest"
25
26
  end
@@ -20,8 +20,10 @@ module CombinePDF
20
20
  return format_name_to_pdf object
21
21
  elsif object.is_a?(Array)
22
22
  return format_array_to_pdf object
23
- elsif object.is_a?(Numeric) || object.is_a?(TrueClass) || object.is_a?(FalseClass)
23
+ elsif object.is_a?(Integer) || object.is_a?(TrueClass) || object.is_a?(FalseClass)
24
24
  return object.to_s
25
+ elsif object.is_a?(Numeric) # Float or other non-integer
26
+ return sprintf('%f', object)
25
27
  elsif object.is_a?(Hash)
26
28
  return format_hash_to_pdf object
27
29
  else
@@ -47,7 +49,7 @@ module CombinePDF
47
49
  obj_bytes = object.bytes.to_a
48
50
  # object.force_encoding(Encoding::ASCII_8BIT)
49
51
  if object.length == 0 || obj_bytes.min <= 31 || obj_bytes.max >= 127 # || (obj_bytes[0] != 68 object.match(/[^D\:\d\+\-Z\']/))
50
- # A hexadecimal string shall be written as a sequence of hexadecimal digits (09 and either AF or af)
52
+ # A hexadecimal string shall be written as a sequence of hexadecimal digits (0-9 and either A-F or a-f)
51
53
  # encoded as ASCII characters and enclosed within angle brackets (using LESS-THAN SIGN (3Ch) and GREATER- THAN SIGN (3Eh)).
52
54
  "<#{object.unpack('H*')[0]}>".force_encoding(Encoding::ASCII_8BIT)
53
55
  else
@@ -1,3 +1,3 @@
1
1
  module CombinePDF
2
- VERSION = '1.0.10'.freeze
2
+ VERSION = '1.0.11'.freeze
3
3
  end
@@ -0,0 +1,22 @@
1
+ require 'bundler/setup'
2
+ require 'minitest/autorun'
3
+ require 'combine_pdf/renderer'
4
+
5
+ class CombinePDFRendererTest < Minitest::Test
6
+
7
+ class TestRenderer
8
+ include CombinePDF::Renderer
9
+
10
+ def test_object(object)
11
+ object_to_pdf(object)
12
+ end
13
+ end
14
+
15
+ def test_numeric_array_to_pdf
16
+ input = [1.234567, 0.000054, 5, -0.000099]
17
+ expected = "[1.234567 0.000054 5 -0.000099]".force_encoding('BINARY')
18
+ actual = TestRenderer.new.test_object(input)
19
+
20
+ assert_equal(expected, actual)
21
+ end
22
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: combine_pdf
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.10
4
+ version: 1.0.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Boaz Segev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-05-30 00:00:00.000000000 Z
11
+ date: 2018-06-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ruby-rc4
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '10.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: minitest
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
55
69
  description: A nifty gem, in pure Ruby, to parse PDF files and combine (merge) them
56
70
  with other PDF files, number the pages, watermark them or stamp them, create tables,
57
71
  add basic text objects etc` (all using the PDF file format).
@@ -82,6 +96,7 @@ files:
82
96
  - lib/combine_pdf/renderer.rb
83
97
  - lib/combine_pdf/version.rb
84
98
  - test/automated
99
+ - test/combine_pdf/renderer_test.rb
85
100
  - test/console
86
101
  - test/named_dest
87
102
  homepage: https://github.com/boazsegev/combine_pdf
@@ -104,11 +119,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
104
119
  version: '0'
105
120
  requirements: []
106
121
  rubyforge_project:
107
- rubygems_version: 2.7.3
122
+ rubygems_version: 2.7.6
108
123
  signing_key:
109
124
  specification_version: 4
110
125
  summary: Combine, stamp and watermark PDF files in pure Ruby.
111
126
  test_files:
112
127
  - test/automated
128
+ - test/combine_pdf/renderer_test.rb
113
129
  - test/console
114
130
  - test/named_dest