pdfinfo 1.1.0 → 1.2.0

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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/pdfinfo.rb +12 -1
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 23b45e11649bee36c2f385cb0306bfea02176fea
4
- data.tar.gz: 787ac72eb44158aa770b988e27bb1b77056ce36b
3
+ metadata.gz: 9c599fc8f36c8f2eaad1d072b30b702d1abc9283
4
+ data.tar.gz: 886c3593bd2bd6159ecca069c748265f14ad126c
5
5
  SHA512:
6
- metadata.gz: 11b841bf60de8835e2b9338781f07fa871f584f65c3849e1694bdc0fd46fcd626ec6a02160902f8516853b51f6cdb7930cb574f5b2119465f48d8fbfdaa8a75e
7
- data.tar.gz: 21411e292115d76a446410ee38e6db9c4be9090bc972ed754d6e92aa18a113ceec1bf8d961c12f3f600a7ea4dac0a967eb5be8010420eb7a0b0f935e51bc9ecd
6
+ metadata.gz: 901d3defb09ac65a5e1086e746f8a3d242efffc8e85b99159623f538a273d8b463b49002a95658a53f38ba0e94bb6df764726030111014cc8d1418c0bae40068
7
+ data.tar.gz: 6547e5457cdd88dfbcf2506208ce8dc2c501431806e5c6dc342aab0de84aef3f508dc0a71c451cb2a39313440ec8b5f4ef41fd5bc5decc65b69e310f2ef8acc9
data/lib/pdfinfo.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require 'open3'
2
2
  require 'shellwords'
3
+ require 'time'
3
4
 
4
5
  class Pdfinfo
5
6
  DIMENSIONS_REGEXP = /([\d\.]+) x ([\d\.]+)/
@@ -69,7 +70,7 @@ class Pdfinfo
69
70
  @pdf_version = info_hash['PDF version']
70
71
 
71
72
  @keywords = (info_hash['Keywords'] || '').split(/\s/)
72
- @creation_date = presence(info_hash['CreationDate']) ? Time.parse(info_hash['CreationDate']) : nil
73
+ @creation_date = parse_time(info_hash['CreationDate'])
73
74
 
74
75
  raw_usage_rights = Hash[info_hash['Encrypted'].scan(/(\w+):(\w+)/)]
75
76
  booleanize_usage_right = lambda {|val| !(raw_usage_rights[val] == 'no') }
@@ -101,6 +102,9 @@ class Pdfinfo
101
102
  @usage_rights[:add_notes]
102
103
  end
103
104
 
105
+ def to_hash
106
+ instance_variables.inject({}) {|h, var| h[var[1..-1].to_sym] = instance_variable_get(var); h }
107
+ end
104
108
  private
105
109
  def presence(val)
106
110
  (val.nil? || val.empty?) ? nil : val
@@ -114,4 +118,11 @@ class Pdfinfo
114
118
  return unless str
115
119
  str.match(DIMENSIONS_REGEXP).captures.map(&:to_f)
116
120
  end
121
+
122
+ def parse_time(str)
123
+ presence(str) ? Time.parse(str) : nil
124
+ rescue ArgumentError => e
125
+ warn(e.message)
126
+ nil
127
+ end
117
128
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pdfinfo
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Venegas
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-21 00:00:00.000000000 Z
11
+ date: 2014-11-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler