pdfinfo 1.1.0 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
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