command_wrap 0.3 → 0.4

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.

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: []