thingfish-processor-pdf 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- checksums.yaml.gz.sig +3 -0
- data.tar.gz.sig +0 -0
- data/.document +5 -0
- data/.editorconfig +14 -0
- data/.rdoc_options +16 -0
- data/.simplecov +9 -0
- data/ChangeLog +9 -0
- data/History.md +4 -0
- data/LICENSE.txt +20 -0
- data/Manifest.txt +14 -0
- data/README.md +76 -0
- data/Rakefile +94 -0
- data/lib/thingfish/processor/pdf.rb +62 -0
- data/spec/data/hi.pdf +0 -0
- data/spec/spec_helper.rb +49 -0
- data/spec/thingfish/processor/pdf_spec.rb +39 -0
- metadata +228 -0
- metadata.gz.sig +0 -0
checksums.yaml
ADDED
@@ -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
|
checksums.yaml.gz.sig
ADDED
data.tar.gz.sig
ADDED
Binary file
|
data/.document
ADDED
data/.editorconfig
ADDED
data/.rdoc_options
ADDED
@@ -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:
|
data/.simplecov
ADDED
data/ChangeLog
ADDED
@@ -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]
|
data/History.md
ADDED
data/LICENSE.txt
ADDED
@@ -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.
|
data/Manifest.txt
ADDED
data/README.md
ADDED
@@ -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
|
+
|
data/Rakefile
ADDED
@@ -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
|
+
|
data/spec/data/hi.pdf
ADDED
Binary file
|
data/spec/spec_helper.rb
ADDED
@@ -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: []
|
metadata.gz.sig
ADDED
Binary file
|