pdf_info 0.3.1 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of pdf_info might be problematic. Click here for more details.

data/.travis.yml ADDED
@@ -0,0 +1,17 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.8.7
4
+ - 1.9.2
5
+ - 1.9.3
6
+ - ruby-head
7
+ - jruby
8
+ - rbx
9
+ - ree
10
+
11
+ before_install:
12
+ - sudo apt-get update -qq
13
+ - sudo apt-get install -qq -y poppler-utils poppler-data
14
+
15
+ matrix:
16
+ allow_failures:
17
+ - rvm: ruby-head
data/README.md CHANGED
@@ -3,34 +3,46 @@ pdf_info
3
3
 
4
4
  Very simple wrapper to the [pdfinfo](http://linuxcommand.org/man_pages/pdfinfo1.html) unix tool, to provide the metadata information as a hash.
5
5
 
6
+ [![Build Status](https://travis-ci.org/newspaperclub/pdf_info.png)](https://travis-ci.org/newspaperclub/pdf_info)
7
+ [![Code Climate](https://codeclimate.com/badge.png)](https://codeclimate.com/github/newspaperclub/pdf_info)
8
+
6
9
  Usage
7
10
  --
8
11
 
9
- require 'pdf/info'
10
- info = PDF::Info.new('/Users/tom/tmp/magazine.pdf')
11
- pp info.metadata
12
+ ```ruby
13
+ require 'pdf/info'
14
+ info = PDF::Info.new('/Users/tom/tmp/magazine.pdf')
15
+ pp info.metadata
16
+ ```
12
17
 
13
18
  Gives you the following output:
14
19
 
15
- {:version=>1.3,
16
- :pages=>
17
- [[819.213, 1077.17],
18
- [819.213, 1077.17],
19
- [819.213, 1077.17],
20
- [819.213, 1077.17],
21
- [819.213, 1077.17],
22
- [819.213, 1077.17],
23
- [819.213, 1077.17],
24
- [819.213, 1077.17],
25
- [819.213, 1077.17],
26
- [819.213, 1077.17],
27
- [819.213, 1077.17],
28
- [819.213, 1077.17]],
29
- :page_count=>12,
30
- :encrypted=>false}
20
+ ```ruby
21
+ {
22
+ :version => 1.3,
23
+ :pages => [
24
+ [819.213, 1077.17],
25
+ [819.213, 1077.17],
26
+ [819.213, 1077.17],
27
+ [819.213, 1077.17],
28
+ [819.213, 1077.17],
29
+ [819.213, 1077.17],
30
+ [819.213, 1077.17],
31
+ [819.213, 1077.17],
32
+ [819.213, 1077.17],
33
+ [819.213, 1077.17],
34
+ [819.213, 1077.17],
35
+ [819.213, 1077.17]
36
+ ],
37
+ :page_count => 12,
38
+ :encrypted => false
39
+ }
40
+ ```
31
41
 
32
42
  Each of the pages has an individual size in PDF points - that's just how PDFs are. If you want more of the metadata that `pdfinfo` outputs, send us a patch.
33
43
 
34
44
  If you need to manually set the path to the `pdfinfo` binary:
35
45
 
36
- PDF::Info.command_path = "/usr/local/bin/pdfinfo"
46
+ ```ruby
47
+ PDF::Info.command_path = "/usr/local/bin/pdfinfo"
48
+ ```
data/lib/pdf/info.rb CHANGED
@@ -20,7 +20,7 @@ module PDF
20
20
  output = `#{self.class.command_path} "#{@pdf_path}" -f 1 -l -1`
21
21
  exit_code = $?
22
22
  case exit_code
23
- when 0
23
+ when 0 || nil
24
24
  return output
25
25
  else
26
26
  exit_error = PDF::Info::UnexpectedExitError.new
@@ -58,23 +58,24 @@ module PDF
58
58
  metadata[:encrypted] = pair.last == 'yes'
59
59
  when "Optimized"
60
60
  metadata[:optimized] = pair.last == 'yes'
61
+ when "Tagged"
62
+ metadata[:tagged] = pair.last == 'yes'
61
63
  when "PDF version"
62
64
  metadata[:version] = pair.last.to_f
63
- when "Title"
64
- metadata[:title] = pair.last.to_s.strip
65
- when "Creator"
66
- metadata[:creator] = pair.last.to_s.strip
67
- when "Producer"
68
- metadata[:producer] = pair.last.to_s.strip
69
- when "Subject"
70
- metadata[:subject] = pair.last.to_s.strip
65
+ when "CreationDate"
66
+ metadata[:creation_date] = DateTime.parse(pair.last)
67
+ when "ModDate"
68
+ metadata[:modification_date] = DateTime.parse(pair.last)
71
69
  when /^Page.*size$/
72
70
  metadata[:pages] ||= []
73
71
  metadata[:pages] << pair.last.scan(/[\d.]+/).map(&:to_f)
74
72
  metadata[:format] = pair.last.scan(/.*\(\w+\)$/).to_s
73
+ when String
74
+ metadata[pair.first.downcase.tr(" ", "_").to_sym] = pair.last.to_s.strip
75
75
  end
76
76
  end
77
- return metadata
77
+
78
+ metadata
78
79
  end
79
80
 
80
81
  end
@@ -1,6 +1,6 @@
1
1
  module PDF
2
2
  class Info
3
- VERSION = "0.3.1"
3
+ VERSION = "0.4.0"
4
4
  end
5
5
  end
6
6
 
@@ -97,10 +97,15 @@ describe PDF::Info do
97
97
  its([:creator]) { should == "PScript5.dll Version 5.2.2" }
98
98
  its([:version]) { should == 1.4 }
99
99
  its([:title]) { should == "Microsoft Word - sample.pdf.docx" }
100
- its([:encrypted]) { should == false }
101
- its([:optimized]) { should == false }
100
+ its([:encrypted]) { should be_false }
101
+ its([:optimized]) { should be_false }
102
102
  its([:producer]) { should == "GPL Ghostscript 8.15" }
103
103
  its([:subject]) { should be_nil }
104
+ its([:author]) { should eq "carlos"}
105
+ its([:creation_date]) { should eq DateTime.parse("2010-10-09T10:29:55+00:00")}
106
+ its([:modification_date]) { should eq DateTime.parse("2010-10-09T10:29:55+00:00")}
107
+ its([:tagged]) { should be_false }
108
+ its([:file_size]) { should eq "218882 bytes" }
104
109
  end
105
110
 
106
111
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pdf_info
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.4.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-02-21 00:00:00.000000000 Z
12
+ date: 2013-01-20 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
16
- requirement: &70196821154520 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,15 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70196821154520
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: rspec
27
- requirement: &70196821153700 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
35
  - - ! '>='
@@ -32,7 +37,12 @@ dependencies:
32
37
  version: '0'
33
38
  type: :development
34
39
  prerelease: false
35
- version_requirements: *70196821153700
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
36
46
  description:
37
47
  email:
38
48
  - tom@tomtaylor.co.uk
@@ -43,6 +53,7 @@ files:
43
53
  - .document
44
54
  - .gitignore
45
55
  - .rspec
56
+ - .travis.yml
46
57
  - Gemfile
47
58
  - LICENSE.txt
48
59
  - README.md
@@ -71,7 +82,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
71
82
  version: '0'
72
83
  segments:
73
84
  - 0
74
- hash: -587717729009839356
85
+ hash: -1371290085031323010
75
86
  required_rubygems_version: !ruby/object:Gem::Requirement
76
87
  none: false
77
88
  requirements:
@@ -80,10 +91,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
80
91
  version: '0'
81
92
  segments:
82
93
  - 0
83
- hash: -587717729009839356
94
+ hash: -1371290085031323010
84
95
  requirements: []
85
96
  rubyforge_project: pdf_info
86
- rubygems_version: 1.8.11
97
+ rubygems_version: 1.8.23
87
98
  signing_key:
88
99
  specification_version: 3
89
100
  summary: Wraps the pdfinfo command line tool to provide a hash of metadata