command_wrap 0.3 → 0.4

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

Potentially problematic release.


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

@@ -1,33 +1,20 @@
1
1
  require 'RMagick'
2
+ require 'pdf-reader'
2
3
 
3
4
  module CommandWrap
4
5
 
5
6
  module Pdf
6
7
 
7
8
  def self.metas (path)
8
- metas = {}
9
-
10
- key = ''
11
- `#{CommandWrap::Config.pdftk} #{path} dump_data`.gsub("\r\n", "\n").gsub("\r", "\n").split("\n").each do |line|
12
- parts = line.split(':')
13
- parts[1] = parts[1].gsub('�', '')
14
- if parts[0] == 'InfoValue'
15
- if key != ''
16
- metas[key] = parts[1].strip
17
- key = ''
18
- end
19
- elsif parts[0] == 'InfoKey'
20
- key = parts[1].strip
21
- else
22
- metas[parts[0].strip] = parts[1].strip
23
- end
24
- end
25
-
26
- metas
9
+ receiver = MetaDataReceiver.new
10
+ PDF::Reader.file(path, receiver, :pages => false, :metadata => true)
11
+ receiver.regular
27
12
  end
28
13
 
29
14
  def self.pages (path)
30
- metas(path)['NumberOfPages'].to_i
15
+ receiver = PagesReceiver.new
16
+ PDF::Reader.file(path, receiver, {:metadata => true, :pages => false})
17
+ receiver.pages
31
18
  end
32
19
 
33
20
  # Generates an image of a pdf page
@@ -41,7 +28,24 @@ module CommandWrap
41
28
  def self.merge (target, *sources)
42
29
  `#{CommandWrap::Config.pdftk} #{sources.join(' ')} cat output #{target}`
43
30
  end
44
-
31
+
32
+ class PagesReceiver
33
+
34
+ attr_accessor :pages
35
+
36
+ def page_count (pages)
37
+ @pages = pages
38
+ end
39
+ end
40
+
41
+ class MetaDataReceiver
42
+ attr_accessor :regular
43
+
44
+ def metadata (data)
45
+ @regular = data
46
+ end
47
+ end
48
+
45
49
  end
46
50
 
47
51
  end
@@ -13,8 +13,7 @@ class PdfTest < Test::Unit::TestCase
13
13
  def test_metas
14
14
  assert_nothing_raised do
15
15
  metas = CommandWrap::Pdf.metas(TEST_PDF)
16
- assert_kind_of Hash, metas
17
- assert_equal 'OpenOffice.org 3.2', metas['Producer']
16
+ assert_equal 'OpenOffice.org 3.2', metas[:Producer]
18
17
  end
19
18
  end
20
19
 
metadata CHANGED
@@ -1,12 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: command_wrap
3
3
  version: !ruby/object:Gem::Version
4
- hash: 13
4
+ hash: 3
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 3
9
- version: "0.3"
8
+ - 4
9
+ version: "0.4"
10
10
  platform: ruby
11
11
  authors:
12
12
  - Stefaan Colman
@@ -33,6 +33,20 @@ dependencies:
33
33
  version: 2.13.1
34
34
  type: :runtime
35
35
  version_requirements: *id001
36
+ - !ruby/object:Gem::Dependency
37
+ name: pdf-reader
38
+ prerelease: false
39
+ requirement: &id002 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ hash: 3
45
+ segments:
46
+ - 0
47
+ version: "0"
48
+ type: :runtime
49
+ version_requirements: *id002
36
50
  description: A set of utility classes to extract meta data from different file types
37
51
  email:
38
52
  executables: []