thingfish-processor-pdf 0.1.0

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