thingfish-processor-pdf 0.1.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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 3bafaa82d18acc6c9ebbc53ff2a215081bd3005f
4
+ data.tar.gz: 0deeebcdaffd9f48db1f5b21251dc935822c75fa
5
+ SHA512:
6
+ metadata.gz: fa095fcec6dda7f2449e79848aef236bf9db297443fb76e2d18613cbe34867c431e2f19f9e44661719bafb98d4914fe1f407de46981e8419ee6766c9de88b44a
7
+ data.tar.gz: 893a73fddef12a2d370bba8713b12a2369e96924bd08eb02057b6ec513c541b5c25130710bd78da135e97cd6e50f827eeaef34cef2234cff2e158463f866a242
@@ -0,0 +1,3 @@
1
+ n�RD��_�Ut��Cs�gK�~��,��;KS$��2Հ*��v��!�;�}wIJ����h ��5�'�*?����EG��GAͦ.� {�}�9 �rr�D\4�eyJ|�n�-7/��Ƅ�K�
2
+ }���^����2����<X�+�nȐm��g�"�@V�
3
+ �?����p�`�4 ��Ƅ?��'�I�u�M�_����b
Binary file
@@ -0,0 +1,5 @@
1
+ lib/**/*.rb
2
+ README.md
3
+ ChangeLog.md
4
+
5
+ LICENSE.txt
@@ -0,0 +1,14 @@
1
+ # http://EditorConfig.org
2
+
3
+ # top-most EditorConfig file
4
+ root = true
5
+
6
+ # Unix-style newlines with a newline ending every file
7
+ [*]
8
+ end_of_line = lf
9
+ insert_final_newline = true
10
+
11
+ # Tab indentation
12
+ [**.*]
13
+ indent_style = tab
14
+
@@ -0,0 +1,16 @@
1
+ --- !ruby/object:RDoc::Options
2
+ encoding: UTF-8
3
+ static_path: []
4
+ rdoc_include:
5
+ - .
6
+ charset: UTF-8
7
+ exclude:
8
+ hyperlink_all: false
9
+ line_numbers: false
10
+ main_page: README.md
11
+ markup: markdown
12
+ show_hash: false
13
+ tab_width: 8
14
+ title: Thingfish-Processor-MP3 Documentation
15
+ visibility: :protected
16
+ webcvs:
@@ -0,0 +1,9 @@
1
+ # Simplecov config
2
+
3
+ SimpleCov.start do
4
+ add_filter 'spec'
5
+ add_filter 'integration'
6
+ add_group "Needing tests" do |file|
7
+ file.covered_percent < 90
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ 2016-11-16 Mahlon E. Smith <mahlon@laika.com>
2
+
3
+ * .document, .editorconfig, .gems, .hgignore, .hgsigs, .hgtags,
4
+ .pryrc, .rdoc_options, .ruby-gemset, .ruby-version, .simplecov,
5
+ Gemfile, History.md, LICENSE.txt, Manifest.txt, README.md, Rakefile,
6
+ lib/thingfish/processor/pdf.rb, spec/data/hi.pdf,
7
+ spec/spec_helper.rb, spec/thingfish/processor/pdf_spec.rb:
8
+ Initial release.
9
+ [266fe36d11dd] [tip]
@@ -0,0 +1,4 @@
1
+ ## v0.1.0 [2016-11-16] Mahlon E. Smith <mahlon@martini.nu>
2
+
3
+ Initial release.
4
+
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2016 Mahlon E. Smith
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,14 @@
1
+ .document
2
+ .editorconfig
3
+ .rdoc_options
4
+ .simplecov
5
+ ChangeLog
6
+ History.md
7
+ LICENSE.txt
8
+ Manifest.txt
9
+ README.md
10
+ Rakefile
11
+ lib/thingfish/processor/pdf.rb
12
+ spec/data/hi.pdf
13
+ spec/spec_helper.rb
14
+ spec/thingfish/processor/pdf_spec.rb
@@ -0,0 +1,76 @@
1
+ # Thingfish-Processor-PDF
2
+
3
+ home
4
+ : https:/bitbucket.org/mahlon/Thingfish-Processor-PDF
5
+
6
+
7
+ ## Description
8
+
9
+ This is a basic pdf processor plugin for the Thingfish digital asset
10
+ manager. It extracts PDF metadata from uploaded files.
11
+
12
+
13
+ ## Prerequisites
14
+
15
+ * Ruby
16
+
17
+
18
+ ## Installation
19
+
20
+ $ gem install thingfish-processor-pdf
21
+
22
+
23
+ ## Usage
24
+
25
+ Simply enable this processor in the *Thingfish* section of your configuration:
26
+
27
+ --
28
+ thingfish:
29
+ processors:
30
+ - pdf
31
+
32
+
33
+ ## Contributing
34
+
35
+ You can check out the current development source with Mercurial via its
36
+ {project page}[http://bitbucket.org/mahlon/thingfish-processor-pdf].
37
+
38
+ After checking out the source, run:
39
+
40
+ $ rake newb
41
+
42
+ This task will install any missing dependencies, run the tests/specs,
43
+ and generate the API documentation.
44
+
45
+
46
+ ## License
47
+
48
+ Copyright (c) 2016, Mahlon E. Smith
49
+ All rights reserved.
50
+
51
+ Redistribution and use in source and binary forms, with or without
52
+ modification, are permitted provided that the following conditions are met:
53
+
54
+ * Redistributions of source code must retain the above copyright notice,
55
+ this list of conditions and the following disclaimer.
56
+
57
+ * Redistributions in binary form must reproduce the above copyright notice,
58
+ this list of conditions and the following disclaimer in the documentation
59
+ and/or other materials provided with the distribution.
60
+
61
+ * Neither the name of the author/s, nor the names of the project's
62
+ contributors may be used to endorse or promote products derived from this
63
+ software without specific prior written permission.
64
+
65
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
66
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
67
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
68
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
69
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
70
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
71
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
72
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
73
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
74
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
75
+
76
+
@@ -0,0 +1,94 @@
1
+ #!/usr/bin/env rake
2
+
3
+ begin
4
+ require 'hoe'
5
+ rescue LoadError
6
+ abort "This Rakefile requires hoe (gem install hoe)"
7
+ end
8
+
9
+ GEMSPEC = 'thingfish-processor-pdf.gemspec'
10
+
11
+
12
+ Hoe.plugin :mercurial
13
+ Hoe.plugin :signing
14
+ Hoe.plugin :deveiate
15
+
16
+ Hoe.plugins.delete :rubyforge
17
+
18
+ hoespec = Hoe.spec 'thingfish-processor-pdf' do |spec|
19
+ spec.readme_file = 'README.md'
20
+ spec.history_file = 'History.md'
21
+ spec.extra_rdoc_files = FileList[ '*.rdoc', '*.md' ]
22
+ spec.urls = {
23
+ home: 'https://bitbucket.org/mahlon/thingfish-processor-pdf'
24
+ }
25
+
26
+ spec.extra_rdoc_files = FileList[ '*.rdoc', '*.md' ]
27
+ spec.license 'BSD-3-Clause'
28
+
29
+ spec.developer 'Mahlon E. Smith', 'mahlon@martini.nu'
30
+
31
+ spec.dependency 'thingfish', '~> 0.5'
32
+ spec.dependency 'pdf-reader', '~> 1.4'
33
+ spec.dependency 'loggability', '~> 0.11'
34
+
35
+ spec.dependency 'hoe-deveiate', '~> 0.8', :developer
36
+ spec.dependency 'simplecov', '~> 0.12', :developer
37
+ spec.dependency 'rdoc-generator-fivefish', '~> 0.1', :developer
38
+
39
+ spec.require_ruby_version( '>=2.3.1' )
40
+ spec.hg_sign_tags = true if spec.respond_to?( :hg_sign_tags= )
41
+ spec.check_history_on_release = true if spec.respond_to?( :check_history_on_release= )
42
+ end
43
+
44
+
45
+ ENV['VERSION'] ||= hoespec.spec.version.to_s
46
+
47
+ # Run the tests before checking in
48
+ task 'hg:precheckin' => [ :check_history, :check_manifest, :gemspec, :spec ]
49
+
50
+ task :test => :spec
51
+
52
+ # Rebuild the ChangeLog immediately before release
53
+ task :prerelease => 'ChangeLog'
54
+ CLOBBER.include( 'ChangeLog' )
55
+
56
+ desc "Build a coverage report"
57
+ task :coverage do
58
+ ENV["COVERAGE"] = 'yes'
59
+ Rake::Task[:spec].invoke
60
+ end
61
+ CLOBBER.include( 'coverage' )
62
+
63
+
64
+ # Use the fivefish formatter for docs generated from development checkout
65
+ if File.directory?( '.hg' )
66
+ require 'rdoc/task'
67
+
68
+ Rake::Task[ 'docs' ].clear
69
+ RDoc::Task.new( 'docs' ) do |rdoc|
70
+ rdoc.main = "README.rdoc"
71
+ rdoc.markup = 'markdown'
72
+ rdoc.rdoc_files.include( "*.rdoc", "ChangeLog", "lib/**/*.rb" )
73
+ rdoc.generator = :fivefish
74
+ rdoc.title = 'Thingfish-Processor-PDF'
75
+ rdoc.rdoc_dir = 'doc'
76
+ end
77
+ end
78
+
79
+ task :gemspec => GEMSPEC
80
+ file GEMSPEC => __FILE__
81
+ task GEMSPEC do |task|
82
+ spec = $hoespec.spec
83
+ spec.files.delete( '.gemtest' )
84
+ spec.signing_key = nil
85
+ spec.cert_chain = Rake::FileList[ 'certs/*.pem' ].to_a
86
+ spec.version = "#{spec.version.bump}.pre#{Time.now.strftime("%Y%m%d%H%M%S")}"
87
+ File.open( task.name, 'w' ) do |fh|
88
+ fh.write( spec.to_ruby )
89
+ end
90
+ end
91
+ CLOBBER.include( GEMSPEC.to_s )
92
+
93
+ task :default => :gemspec
94
+
@@ -0,0 +1,62 @@
1
+ # -*- ruby -*-
2
+ #encoding: utf-8
3
+
4
+ require 'pdf-reader'
5
+
6
+ require 'strelka'
7
+ require 'thingfish' unless defined?( Thingfish )
8
+ require 'thingfish/processor' unless defined?( Thingfish::Processor )
9
+
10
+
11
+ # Attach PDF metadata to the Adobe Portable Document Format.
12
+ class Thingfish::Processor::PDF < Thingfish::Processor
13
+ extend Loggability
14
+
15
+ # Package version
16
+ VERSION = '0.1.0'
17
+
18
+ # Version control revision
19
+ REVISION = %q$Revision: 266fe36d11dd $
20
+
21
+
22
+ # Loggability API -- log to the :thingfish logger
23
+ log_to :thingfish
24
+
25
+ # The list of handled types
26
+ handled_types 'application/pdf'
27
+
28
+
29
+ ### Synchronous processor API -- extract metadata from uploaded PDFs
30
+ ###
31
+ def on_request( request )
32
+ reader = ::PDF::Reader.new( request.body )
33
+ metadata = self.extract_pdf_metadata( reader )
34
+
35
+ request.add_metadata( metadata )
36
+ end
37
+
38
+
39
+ #########
40
+ protected
41
+ #########
42
+
43
+ ### Normalize metadata from the PDFReader object and return it as a hash.
44
+ ###
45
+ def extract_pdf_metadata( reader )
46
+ self.log.debug "Extracting PDF metadata..."
47
+
48
+ pdf_metadata = {
49
+ 'pdf:version' => reader.pdf_version,
50
+ 'pdf:pagecount' => reader.page_count,
51
+ }.reject {|_,v| v.nil? }
52
+
53
+ reader.info.each_pair do |key, val|
54
+ pdf_metadata[ "pdf:#{key}" ] = val unless val.is_a?( ::PDF::Reader::Reference )
55
+ end
56
+
57
+ self.log.debug " raw PDF metadata: %p" % [ pdf_metadata ]
58
+ return pdf_metadata
59
+ end
60
+
61
+ end # class Thingfish::Processor::PDF
62
+
Binary file
@@ -0,0 +1,49 @@
1
+ # -*- ruby -*-
2
+ #encoding: utf-8
3
+
4
+ require 'simplecov' if ENV['COVERAGE']
5
+
6
+ require 'rspec'
7
+
8
+ require 'mongrel2'
9
+ require 'mongrel2/testing'
10
+
11
+ require 'thingfish'
12
+ require 'thingfish/spechelpers'
13
+ require 'thingfish/processor/pdf'
14
+
15
+ require 'loggability/spechelpers'
16
+
17
+
18
+ module Thingfish::Processor::PDF::SpecHelpers
19
+
20
+ FIXTURE_DIR = Pathname( __FILE__ ).dirname + 'data'
21
+
22
+
23
+ ### Load and return the data from the fixture with the specified +filename+.
24
+ def fixture_data( filename )
25
+ fixture = FIXTURE_DIR + filename
26
+ return fixture.open( 'r', encoding: 'binary' )
27
+ end
28
+
29
+ end
30
+
31
+
32
+
33
+ ### Mock with RSpec
34
+ RSpec.configure do |config|
35
+ config.run_all_when_everything_filtered = true
36
+ config.filter_run :focus
37
+ config.order = 'random'
38
+ config.mock_with( :rspec ) do |mock|
39
+ mock.syntax = :expect
40
+ end
41
+
42
+ config.include( Mongrel2::SpecHelpers )
43
+ config.include( Thingfish::SpecHelpers )
44
+ config.include( Loggability::SpecHelpers )
45
+ config.include( Thingfish::Processor::PDF::SpecHelpers )
46
+ end
47
+
48
+
49
+
@@ -0,0 +1,39 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require_relative '../../spec_helper'
4
+
5
+ require 'rspec'
6
+
7
+ require 'thingfish'
8
+ require 'thingfish/processor'
9
+
10
+ require 'strelka'
11
+ require 'strelka/httprequest/metadata'
12
+
13
+
14
+ describe Thingfish::Processor, "PDF" do
15
+
16
+ before( :all ) do
17
+ Strelka::HTTPRequest.class_eval { include Strelka::HTTPRequest::Metadata }
18
+ end
19
+
20
+
21
+ let( :processor ) { described_class.create(:pdf) }
22
+
23
+ let( :factory ) do
24
+ Mongrel2::RequestFactory.new(
25
+ :route => '/',
26
+ :headers => {:accept => '*/*'})
27
+ end
28
+
29
+
30
+ it "extracts metadata from uploaded PDFs" do
31
+ req = factory.post( '/tf', fixture_data('hi.pdf'), 'Content-type' => 'application/pdf' )
32
+
33
+ processor.process_request( req )
34
+
35
+ expect( req.metadata ).to include( 'pdf:pagecount', 'pdf:producer' )
36
+ end
37
+ end
38
+
39
+ # vim: set nosta noet ts=4 sw=4 ft=rspec:
metadata ADDED
@@ -0,0 +1,228 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: thingfish-processor-pdf
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Mahlon E. Smith
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain:
11
+ - |
12
+ -----BEGIN CERTIFICATE-----
13
+ MIIDbDCCAlSgAwIBAgIBATANBgkqhkiG9w0BAQUFADA+MQ8wDQYDVQQDDAZtYWhs
14
+ b24xFzAVBgoJkiaJk/IsZAEZFgdtYXJ0aW5pMRIwEAYKCZImiZPyLGQBGRYCbnUw
15
+ HhcNMTYxMTE2MTkxMTMwWhcNMTcxMTE2MTkxMTMwWjA+MQ8wDQYDVQQDDAZtYWhs
16
+ b24xFzAVBgoJkiaJk/IsZAEZFgdtYXJ0aW5pMRIwEAYKCZImiZPyLGQBGRYCbnUw
17
+ ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDpXGN0YbMVpYv4EoiCxpQw
18
+ sxKdyhlkvpvENUkpEhbpnEuMKXgUfRHO4T/vBZf0h8eYgwnrHCRhAeIqesFKfoj9
19
+ mpEJk5JUuADOAz18aT+v24UqAtJdiwBJLuqhslSNB6CFXZv3OOMny9bjoJegz0hI
20
+ Fht9ppCuNmxJNd+L3zAX8lD01RUWNRC+8L5QLCjViJtjFDDCFfh9NCirs+XnTCzo
21
+ AJgFbsZIzFJtSiXUtFgscKr4Ik8ruhRbPbYbmx9rf6W74aTMPxggq/d3gj0Eh32y
22
+ WsXsQ5giVnmkbsRkBNu3QyZ8Xr5+7mvy5AWyqXKOrcW7lnYaob6Z9x/MGXGNeD6j
23
+ AgMBAAGjdTBzMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQWBBRY8ea6
24
+ +6kAaW7ukKph2/4MTAD8/TAcBgNVHREEFTATgRFtYWhsb25AbWFydGluaS5udTAc
25
+ BgNVHRIEFTATgRFtYWhsb25AbWFydGluaS5udTANBgkqhkiG9w0BAQUFAAOCAQEA
26
+ MxBPdbmfh3dJN51visg0QilqtyPbqxyd8YVm9wbkcmi1D2Sv9deppFvZ+pXyR+eq
27
+ qy/efw4F+3DAPw+9QNlPJG8DHQ8HrYPrf7wv5DPBpyKLD1atMGnoDb5gijIx5IMR
28
+ MxiffPYQsT7Noimqaz8KWqP1keDY9aqVKe3iDXUXKBV27sl9GhOt5jJ3rVW9ihok
29
+ KiEoBnrgQcZIEAOwfXbWT4IaIcOCgD+JloEesuHL72/3zP/vOcqZf4SOcne4+qti
30
+ DHE5pl144V24tqxZb65WTup/ov22SCXmpU8/wTeZVL3rePGRfwTJNpm+6iYszl7A
31
+ SixmX0X3SOeYg4FRkblUIA==
32
+ -----END CERTIFICATE-----
33
+ date: 2016-11-16 00:00:00.000000000 Z
34
+ dependencies:
35
+ - !ruby/object:Gem::Dependency
36
+ name: thingfish
37
+ requirement: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: '0.5'
42
+ type: :runtime
43
+ prerelease: false
44
+ version_requirements: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: '0.5'
49
+ - !ruby/object:Gem::Dependency
50
+ name: pdf-reader
51
+ requirement: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: '1.4'
56
+ type: :runtime
57
+ prerelease: false
58
+ version_requirements: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - "~>"
61
+ - !ruby/object:Gem::Version
62
+ version: '1.4'
63
+ - !ruby/object:Gem::Dependency
64
+ name: loggability
65
+ requirement: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '0.11'
70
+ type: :runtime
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - "~>"
75
+ - !ruby/object:Gem::Version
76
+ version: '0.11'
77
+ - !ruby/object:Gem::Dependency
78
+ name: hoe-mercurial
79
+ requirement: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - "~>"
82
+ - !ruby/object:Gem::Version
83
+ version: '1.4'
84
+ type: :development
85
+ prerelease: false
86
+ version_requirements: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - "~>"
89
+ - !ruby/object:Gem::Version
90
+ version: '1.4'
91
+ - !ruby/object:Gem::Dependency
92
+ name: hoe-deveiate
93
+ requirement: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - "~>"
96
+ - !ruby/object:Gem::Version
97
+ version: '0.8'
98
+ type: :development
99
+ prerelease: false
100
+ version_requirements: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - "~>"
103
+ - !ruby/object:Gem::Version
104
+ version: '0.8'
105
+ - !ruby/object:Gem::Dependency
106
+ name: hoe-highline
107
+ requirement: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - "~>"
110
+ - !ruby/object:Gem::Version
111
+ version: '0.2'
112
+ type: :development
113
+ prerelease: false
114
+ version_requirements: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - "~>"
117
+ - !ruby/object:Gem::Version
118
+ version: '0.2'
119
+ - !ruby/object:Gem::Dependency
120
+ name: simplecov
121
+ requirement: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - "~>"
124
+ - !ruby/object:Gem::Version
125
+ version: '0.12'
126
+ type: :development
127
+ prerelease: false
128
+ version_requirements: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - "~>"
131
+ - !ruby/object:Gem::Version
132
+ version: '0.12'
133
+ - !ruby/object:Gem::Dependency
134
+ name: rdoc-generator-fivefish
135
+ requirement: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - "~>"
138
+ - !ruby/object:Gem::Version
139
+ version: '0.1'
140
+ type: :development
141
+ prerelease: false
142
+ version_requirements: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - "~>"
145
+ - !ruby/object:Gem::Version
146
+ version: '0.1'
147
+ - !ruby/object:Gem::Dependency
148
+ name: rdoc
149
+ requirement: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - "~>"
152
+ - !ruby/object:Gem::Version
153
+ version: '4.0'
154
+ type: :development
155
+ prerelease: false
156
+ version_requirements: !ruby/object:Gem::Requirement
157
+ requirements:
158
+ - - "~>"
159
+ - !ruby/object:Gem::Version
160
+ version: '4.0'
161
+ - !ruby/object:Gem::Dependency
162
+ name: hoe
163
+ requirement: !ruby/object:Gem::Requirement
164
+ requirements:
165
+ - - "~>"
166
+ - !ruby/object:Gem::Version
167
+ version: '3.15'
168
+ type: :development
169
+ prerelease: false
170
+ version_requirements: !ruby/object:Gem::Requirement
171
+ requirements:
172
+ - - "~>"
173
+ - !ruby/object:Gem::Version
174
+ version: '3.15'
175
+ description: |-
176
+ This is a basic pdf processor plugin for the Thingfish digital asset
177
+ manager. It extracts PDF metadata from uploaded files.
178
+ email:
179
+ - mahlon@martini.nu
180
+ executables: []
181
+ extensions: []
182
+ extra_rdoc_files:
183
+ - History.md
184
+ - LICENSE.txt
185
+ - Manifest.txt
186
+ - README.md
187
+ files:
188
+ - ".document"
189
+ - ".editorconfig"
190
+ - ".rdoc_options"
191
+ - ".simplecov"
192
+ - ChangeLog
193
+ - History.md
194
+ - LICENSE.txt
195
+ - Manifest.txt
196
+ - README.md
197
+ - Rakefile
198
+ - lib/thingfish/processor/pdf.rb
199
+ - spec/data/hi.pdf
200
+ - spec/spec_helper.rb
201
+ - spec/thingfish/processor/pdf_spec.rb
202
+ homepage: https://bitbucket.org/mahlon/thingfish-processor-pdf
203
+ licenses:
204
+ - BSD-3-Clause
205
+ metadata: {}
206
+ post_install_message:
207
+ rdoc_options:
208
+ - "--main"
209
+ - README.md
210
+ require_paths:
211
+ - lib
212
+ required_ruby_version: !ruby/object:Gem::Requirement
213
+ requirements:
214
+ - - ">="
215
+ - !ruby/object:Gem::Version
216
+ version: 2.3.1
217
+ required_rubygems_version: !ruby/object:Gem::Requirement
218
+ requirements:
219
+ - - ">="
220
+ - !ruby/object:Gem::Version
221
+ version: '0'
222
+ requirements: []
223
+ rubyforge_project:
224
+ rubygems_version: 2.5.1
225
+ signing_key:
226
+ specification_version: 4
227
+ summary: This is a basic pdf processor plugin for the Thingfish digital asset manager
228
+ test_files: []
Binary file