hydra-derivatives 0.0.5 → 0.0.6

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.
data/CONTRIBUTING.md CHANGED
@@ -78,6 +78,8 @@ You should also add yourself to the `CONTRIBUTORS.md` file in the root of the pr
78
78
 
79
79
  ### Submitting Changes
80
80
 
81
+ [Detailed Walkthrough of One Pull Request per Commit](http://ndlib.github.io/practices/one-commit-per-pull-request/)
82
+
81
83
  * Read the article ["Using Pull Requests"](https://help.github.com/articles/using-pull-requests) on GitHub.
82
84
  * Make sure your branch is up to date with its parent branch (i.e. master)
83
85
  * `git checkout master`
data/README.md CHANGED
@@ -1,5 +1,6 @@
1
1
  hydra-derivatives
2
2
  =================
3
+ [![Gem Version](https://badge.fury.io/rb/hydra-derivatives.png)](http://badge.fury.io/rb/hydra-derivatives)
3
4
 
4
5
  Derivative generation for hydra
5
6
 
@@ -47,8 +48,8 @@ Or a class like this:
47
48
  transform_datastream :content, { :mp3 => {format: 'mp3'}, :ogg => {format: 'ogg'} }, processor: :audio
48
49
  when 'video/avi'
49
50
  transform_datastream :content, { :mp4 => {format: 'mp4'}, :webm => {format: 'webm'} }, processor: :video
50
- when 'image/png', 'image/jpg'
51
- transform_datastream :content, { :medium => "300x300>", :thumb => "100x100>" }
51
+ when 'image/png', 'image/jpg', 'image/tiff'
52
+ transform_datastream :content, { :medium => "300x300>", :thumb => {size: "100x100>", datastream: 'thumbnail'} }
52
53
  end
53
54
  end
54
55
  end
@@ -63,20 +64,31 @@ And you add some content to it:
63
64
  obj.save
64
65
  ```
65
66
 
66
- Then when you call `obj.create_derivatives` a new datastream, called 'thumbnail' will have been created, with a downsized image in it.
67
+ Then when you call `obj.create_derivatives` two new datastreams, 'thumbnail' and 'content_medium', will have been created with downsized images in them.
67
68
 
68
69
  We recommend you run `obj.create_derivatives` in a background worker, because some derivative creation (especially videos) can take a long time.
69
70
 
70
71
  # Installation
71
72
 
73
+ Just add `gem 'hydra-derivatives'` to your Gemfile.
74
+
72
75
  ## Dependencies
73
76
 
74
77
  * [Fits](https://code.google.com/p/fits/)
78
+ * [FFMpeg](http://www.ffmpeg.org/)
75
79
  * [LibreOffice](https://www.libreoffice.org/)
76
80
 
77
- To enable LibreOffice and Fits.sh support, you must make sure they are on your path. Most people will put that in their .bash_profile or somewhere similar. For example:
81
+ To enable LibreOffice, FFMpeg and Fits.sh support, you make sure they are on your path. Most people will put that in their .bash_profile or somewhere similar. For example:
78
82
 
79
83
  ```bash
80
84
  # in .bash_profile
81
85
  export PATH=${PATH}:/Users/justin/workspace/fits-0.6.2:/Applications/LibreOffice.app/Contents/MacOS
82
86
  ```
87
+
88
+ Alternatively, you can configure their paths:
89
+ ```ruby
90
+ Hydra::Derivatives.ffmpeg_path = '/opt/local/ffmpeg/bin/ffmpeg'
91
+ Hydra::Derivatives.fits_path = '/opt/local/fits/bin/fits.sh'
92
+ Hydra::Derivatives.libreoffice_path = '/opt/local/libreoffice_path/bin/soffice'
93
+
94
+ ```
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.5
1
+ 0.0.6
@@ -23,7 +23,8 @@ Gem::Specification.new do |spec|
23
23
  spec.add_development_dependency "rspec"
24
24
 
25
25
  spec.add_dependency 'active-fedora'
26
- spec.add_dependency 'rmagick'
26
+ spec.add_dependency 'hydra-file_characterization'
27
+ spec.add_dependency 'mini_magick'
27
28
  spec.add_dependency 'activesupport', '>= 3.2.13', '< 5.0'
28
29
  end
29
30
 
@@ -1,5 +1,4 @@
1
1
  require 'active_fedora'
2
- require 'RMagick'
3
2
  module Hydra
4
3
  module Derivatives
5
4
  extend ActiveSupport::Concern
@@ -27,6 +27,12 @@ module Hydra
27
27
  'application/pdf'
28
28
  when 'odf'
29
29
  'application/vnd.oasis.opendocument.text'
30
+ when 'docx'
31
+ 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
32
+ when 'xslx'
33
+ 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
34
+ when 'pptx'
35
+ 'application/vnd.openxmlformats-officedocument.presentationml.presentation'
30
36
  else
31
37
  raise "I don't know about the format '#{format}'"
32
38
  end
@@ -1,58 +1,24 @@
1
- require 'open3'
1
+ require 'hydra-file_characterization'
2
2
  module Hydra
3
3
  module Derivatives
4
4
  module ExtractMetadata
5
- include Open3
6
5
 
7
6
  def extract_metadata
8
- out = nil
9
- to_tempfile do |f|
10
- out = run_fits!(f.path)
11
- end
12
- out
13
- end
14
-
15
- def to_tempfile &block
16
7
  return unless has_content?
17
- type = MIME::Types[mimeType].first
18
- logger.warn "Unable to find a registered mime type for #{mimeType.inspect} on #{pid}" unless type
19
- extension = type ? ".#{type.extensions.first}" : ''
20
-
21
- f = Tempfile.new(["#{pid}-#{dsVersionID}", extension])
22
- f.binmode
23
- if content.respond_to? :read
24
- f.write(content.read)
25
- else
26
- f.write(content)
8
+ Hydra::FileCharacterization.characterize(content, filename_for_characterization, :fits) do |config|
9
+ config[:fits] = Hydra::Derivatives.fits_path
27
10
  end
28
- f.close
29
- content.rewind if content.respond_to? :rewind
30
- yield(f)
31
- f.unlink
32
11
  end
33
12
 
34
- private
35
-
36
-
37
- def run_fits!(file_path)
38
- command = "#{fits_path} -i \"#{file_path}\""
39
- stdin, stdout, stderr, wait_thr = popen3(command)
40
- stdin.close
41
- out = stdout.read
42
- stdout.close
43
- err = stderr.read
44
- stderr.close
45
- exit_status = wait_thr.value
46
- raise "Unable to execute command \"#{command}\"\n#{err}" unless exit_status.success?
47
- out
48
- end
49
-
50
-
51
- def fits_path
52
- Hydra::Derivatives.fits_path
53
- end
13
+ protected
54
14
 
15
+ def filename_for_characterization
16
+ mime_type = MIME::Types[mimeType].first
17
+ logger.warn "Unable to find a registered mime type for #{mimeType.inspect} on #{pid}" unless mime_type
18
+ extension = mime_type ? ".#{mime_type.extensions.first}" : ''
19
+ "#{pid}-#{dsVersionID}#{extension}"
55
20
  end
21
+
56
22
  end
23
+ end
57
24
  end
58
-
@@ -1,3 +1,4 @@
1
+ require 'mini_magick'
1
2
  module Hydra
2
3
  module Derivatives
3
4
  class Image < Processor
@@ -16,33 +17,32 @@ module Hydra
16
17
  MIME::Types.type_for(format).first.to_s
17
18
  end
18
19
 
19
- def create_resized_image(output_ds, size, format, quality=nil)
20
- create_image(output_ds, format, quality) do |xfrm|
21
- if size
22
- xfrm.change_geometry!(size) do |cols, rows, img|
23
- img.resize!(cols, rows)
24
- end
25
- end
20
+ def create_resized_image(output_datastream, size, format, quality=nil)
21
+ create_image(output_datastream, format, quality) do |xfrm|
22
+ xfrm.resize(size) if size.present?
26
23
  end
27
- output_ds.mimeType = new_mime_type(format)
24
+ output_datastream.mimeType = new_mime_type(format)
28
25
  end
29
26
 
30
27
  def create_image(output_datastream, format, quality=nil)
31
28
  xfrm = load_image_transformer
32
29
  yield(xfrm) if block_given?
33
- output_datastream.content = if quality
34
- xfrm.to_blob { self.quality = quality; self.format = format.upcase }
35
- else
36
- xfrm.to_blob { self.format = format.upcase }
37
- end
30
+ xfrm.format(format)
31
+ xfrm.quality(quality.to_s) if quality
32
+ write_image(output_datastream, xfrm)
33
+ end
34
+
35
+ def write_image(output_datastream, xfrm)
36
+ stream = StringIO.new
37
+ xfrm.write(stream)
38
+ stream.rewind
39
+ output_datastream.content = stream
38
40
  end
39
41
 
40
42
  # Override this method if you want a different transformer, or need to load the
41
43
  # raw image from a different source (e.g. external datastream)
42
44
  def load_image_transformer
43
- Magick::ImageList.new.tap do |xformer|
44
- xformer.from_blob(source_datastream.content)
45
- end
45
+ MiniMagick::Image.read(source_datastream.content)
46
46
  end
47
47
  end
48
48
  end
@@ -28,7 +28,7 @@ module Hydra
28
28
  def codecs(format)
29
29
  case format
30
30
  when 'mp4'
31
- "-vcodec libx264 -acodec libfaac"
31
+ "-vcodec libx264 -acodec libfdk_aac"
32
32
  when 'webm'
33
33
  "-acodec libvorbis"
34
34
  else
Binary file
Binary file
@@ -0,0 +1,33 @@
1
+ require 'spec_helper'
2
+
3
+ module Hydra::Derivatives
4
+ describe ExtractMetadata do
5
+ let(:class_with_metadata_extraction) {
6
+ Class.new do
7
+ attr_reader :content, :mimeType, :pid, :dsVersionID
8
+ def initialize(options = {})
9
+ @content = options.fetch(:content, '')
10
+ @mimeType = options.fetch(:mime_type, nil)
11
+ @pid = options.fetch(:pid, 'pid-123')
12
+ @dsVersionID = options.fetch(:dsVersionID, 'version-id-1')
13
+ end
14
+ include Hydra::Derivatives::ExtractMetadata
15
+ def has_content?; content.present?; end
16
+ end
17
+ }
18
+ let(:initialization_options) { {content: 'abc', mime_type: 'text/plain'} }
19
+ subject { class_with_metadata_extraction.new(initialization_options) }
20
+
21
+ context '#extract_metadata' do
22
+ context 'without content' do
23
+ let(:initialization_options) { {content: '', mime_type: 'text/plain'} }
24
+ its(:extract_metadata) { should be_nil}
25
+ end
26
+
27
+ context 'with content' do
28
+ let(:mime_type) { 'image/jpeg' }
29
+ its(:extract_metadata) { should match("<identity format=\"Plain text\" mimetype=\"text/plain\"")}
30
+ end
31
+ end
32
+ end
33
+ end
data/spec/spec_helper.rb CHANGED
@@ -7,3 +7,4 @@ require 'hydra/derivatives'
7
7
  RSpec.configure do |config|
8
8
  end
9
9
 
10
+ $in_travis = !ENV['TRAVIS'].nil? && ENV['TRAVIS'] == 'true'
@@ -0,0 +1,22 @@
1
+ require "spec_helper"
2
+
3
+ class ExtractThing < ActiveFedora::Datastream
4
+ include Hydra::Derivatives::ExtractMetadata
5
+ attr_accessor :pid
6
+ end
7
+
8
+ describe Hydra::Derivatives::ExtractMetadata, :unless => $in_travis do
9
+ let(:subject) { ExtractThing.new }
10
+ let(:attachment) { File.open(File.expand_path('../../fixtures/world.png', __FILE__))}
11
+
12
+ describe "Image Content" do
13
+ it "should get a mime type" do
14
+ subject.content = attachment
15
+ subject.pid = "abc"
16
+ xml = subject.extract_metadata
17
+ doc = Nokogiri::HTML(xml)
18
+ identity = doc.xpath('//identity').first
19
+ identity.attr('mimetype').should == 'image/png'
20
+ end
21
+ end
22
+ end
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe "Transcoder" do
4
- before do
4
+ before(:all) do
5
5
  class ContentDatastream < ActiveFedora::Datastream
6
6
  include Hydra::Derivatives::ExtractMetadata
7
7
  end
@@ -14,7 +14,7 @@ describe "Transcoder" do
14
14
  delegate :mime_type, :to => :characterization, :unique => true
15
15
  has_file_datastream 'content', type: ContentDatastream
16
16
 
17
- makes_derivatives do |obj|
17
+ makes_derivatives do |obj|
18
18
  case obj.mime_type
19
19
  when 'application/pdf'
20
20
  obj.transform_datastream :content, { :thumb => "100x100>" }
@@ -25,10 +25,15 @@ describe "Transcoder" do
25
25
  when 'image/png', 'image/jpg'
26
26
  obj.transform_datastream :content, { :medium => "300x300>", :thumb => "100x100>", :access => {format: 'jpg', datastream: 'access'} }
27
27
  when 'application/vnd.ms-powerpoint'
28
- obj.transform_datastream :content, { :access => { :format=>'pdf' } }, processor: 'document'
28
+ obj.transform_datastream :content, { :preservation=> {:format => 'pptx'}, :access => { :format=>'pdf' } }, processor: 'document'
29
29
  when 'text/rtf'
30
30
  obj.transform_datastream :content, { :preservation=> {:format => 'odf' }, :access => { :format=>'pdf' } }, processor: 'document'
31
+ when 'application/msword'
32
+ obj.transform_datastream :content, { :access => { :format=>'pdf' }, :preservation=> {:format => 'docx' } }, processor: 'document'
33
+ when 'application/vnd.ms-excel'
34
+ obj.transform_datastream :content, { :access => { :format=>'pdf' }, :preservation=> {:format => 'xslx' } }, processor: 'document'
31
35
  end
36
+
32
37
  end
33
38
 
34
39
  makes_derivatives :generate_special_derivatives
@@ -41,6 +46,12 @@ describe "Transcoder" do
41
46
 
42
47
  end
43
48
  end
49
+
50
+ after(:all) do
51
+ GenericFile.all.each(&:destroy)
52
+ Object.send(:remove_const, :GenericFile);
53
+ Object.send(:remove_const, :ContentDatastream);
54
+ end
44
55
 
45
56
  describe "with an attached image" do
46
57
  let(:attachment) { File.open(File.expand_path('../../fixtures/world.png', __FILE__))}
@@ -89,7 +100,7 @@ describe "Transcoder" do
89
100
  let(:file) { GenericFile.new(mime_type: 'audio/wav').tap { |t| t.content.content = attachment; t.content.mimeType = 'audio/vnd.wav'; t.save } }
90
101
 
91
102
  it "should transcode" do
92
- expect(logger).to receive(:warn).with("Unable to find a registered mime type for \"audio/vnd.wav\" on #{file.pid}").at_least(1).times
103
+ expect(logger).to receive(:warn).with("Unable to find a registered mime type for \"audio/vnd.wav\" on #{file.pid}").twice
93
104
  file.create_derivatives
94
105
  file.datastreams['content_mp3'].should have_content
95
106
  file.datastreams['content_mp3'].mimeType.should == 'audio/mpeg'
@@ -131,6 +142,8 @@ describe "Transcoder" do
131
142
  file.create_derivatives
132
143
  file.datastreams['content_access'].should have_content
133
144
  file.datastreams['content_access'].mimeType.should == 'application/pdf'
145
+ file.datastreams['content_preservation'].should have_content
146
+ file.datastreams['content_preservation'].mimeType.should == 'application/vnd.openxmlformats-officedocument.presentationml.presentation'
134
147
  end
135
148
  end
136
149
 
@@ -146,4 +159,32 @@ describe "Transcoder" do
146
159
  file.datastreams['content_preservation'].mimeType.should == 'application/vnd.oasis.opendocument.text'
147
160
  end
148
161
  end
162
+
163
+ describe "with an attached word doc format", unless: ENV['TRAVIS'] == 'true' do
164
+ let(:attachment) { File.open(File.expand_path('../../fixtures/test.doc', __FILE__))}
165
+ let(:file) { GenericFile.new(mime_type: 'application/msword').tap { |t| t.content.content = attachment; t.save } }
166
+
167
+ it "should transcode" do
168
+ file.create_derivatives
169
+ file.datastreams['content_access'].should have_content
170
+ file.datastreams['content_access'].mimeType.should == 'application/pdf'
171
+ file.datastreams['content_preservation'].should have_content
172
+ file.datastreams['content_preservation'].mimeType.should == 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
173
+ end
174
+ end
175
+
176
+ describe "with an attached excel format", unless: ENV['TRAVIS'] == 'true' do
177
+ let(:attachment) { File.open(File.expand_path('../../fixtures/test.xls', __FILE__))}
178
+ let(:file) { GenericFile.new(mime_type: 'application/vnd.ms-excel').tap { |t| t.content.content = attachment; t.save } }
179
+
180
+ it "should transcode" do
181
+ file.create_derivatives
182
+ puts file.datastreams.inspect
183
+ file.datastreams['content_access'].should have_content
184
+ file.datastreams['content_access'].mimeType.should == 'application/pdf'
185
+ file.datastreams['content_preservation'].should have_content
186
+ file.datastreams['content_preservation'].mimeType.should == 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
187
+ end
188
+ end
189
+
149
190
  end
metadata CHANGED
@@ -1,18 +1,20 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hydra-derivatives
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Justin Coyne
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2013-07-25 00:00:00.000000000 Z
12
+ date: 2013-10-10 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: bundler
15
16
  requirement: !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
19
  - - ~>
18
20
  - !ruby/object:Gem::Version
@@ -20,6 +22,7 @@ dependencies:
20
22
  type: :development
21
23
  prerelease: false
22
24
  version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
23
26
  requirements:
24
27
  - - ~>
25
28
  - !ruby/object:Gem::Version
@@ -27,78 +30,105 @@ dependencies:
27
30
  - !ruby/object:Gem::Dependency
28
31
  name: rake
29
32
  requirement: !ruby/object:Gem::Requirement
33
+ none: false
30
34
  requirements:
31
- - - '>='
35
+ - - ! '>='
32
36
  - !ruby/object:Gem::Version
33
37
  version: '0'
34
38
  type: :development
35
39
  prerelease: false
36
40
  version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
37
42
  requirements:
38
- - - '>='
43
+ - - ! '>='
39
44
  - !ruby/object:Gem::Version
40
45
  version: '0'
41
46
  - !ruby/object:Gem::Dependency
42
47
  name: jettywrapper
43
48
  requirement: !ruby/object:Gem::Requirement
49
+ none: false
44
50
  requirements:
45
- - - '>='
51
+ - - ! '>='
46
52
  - !ruby/object:Gem::Version
47
53
  version: '0'
48
54
  type: :development
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
51
58
  requirements:
52
- - - '>='
59
+ - - ! '>='
53
60
  - !ruby/object:Gem::Version
54
61
  version: '0'
55
62
  - !ruby/object:Gem::Dependency
56
63
  name: rspec
57
64
  requirement: !ruby/object:Gem::Requirement
65
+ none: false
58
66
  requirements:
59
- - - '>='
67
+ - - ! '>='
60
68
  - !ruby/object:Gem::Version
61
69
  version: '0'
62
70
  type: :development
63
71
  prerelease: false
64
72
  version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
65
74
  requirements:
66
- - - '>='
75
+ - - ! '>='
67
76
  - !ruby/object:Gem::Version
68
77
  version: '0'
69
78
  - !ruby/object:Gem::Dependency
70
79
  name: active-fedora
71
80
  requirement: !ruby/object:Gem::Requirement
81
+ none: false
72
82
  requirements:
73
- - - '>='
83
+ - - ! '>='
74
84
  - !ruby/object:Gem::Version
75
85
  version: '0'
76
86
  type: :runtime
77
87
  prerelease: false
78
88
  version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
79
90
  requirements:
80
- - - '>='
91
+ - - ! '>='
81
92
  - !ruby/object:Gem::Version
82
93
  version: '0'
83
94
  - !ruby/object:Gem::Dependency
84
- name: rmagick
95
+ name: hydra-file_characterization
85
96
  requirement: !ruby/object:Gem::Requirement
97
+ none: false
86
98
  requirements:
87
- - - '>='
99
+ - - ! '>='
88
100
  - !ruby/object:Gem::Version
89
101
  version: '0'
90
102
  type: :runtime
91
103
  prerelease: false
92
104
  version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
93
106
  requirements:
94
- - - '>='
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ - !ruby/object:Gem::Dependency
111
+ name: mini_magick
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ! '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ! '>='
95
124
  - !ruby/object:Gem::Version
96
125
  version: '0'
97
126
  - !ruby/object:Gem::Dependency
98
127
  name: activesupport
99
128
  requirement: !ruby/object:Gem::Requirement
129
+ none: false
100
130
  requirements:
101
- - - '>='
131
+ - - ! '>='
102
132
  - !ruby/object:Gem::Version
103
133
  version: 3.2.13
104
134
  - - <
@@ -107,8 +137,9 @@ dependencies:
107
137
  type: :runtime
108
138
  prerelease: false
109
139
  version_requirements: !ruby/object:Gem::Requirement
140
+ none: false
110
141
  requirements:
111
- - - '>='
142
+ - - ! '>='
112
143
  - !ruby/object:Gem::Version
113
144
  version: 3.2.13
114
145
  - - <
@@ -148,46 +179,55 @@ files:
148
179
  - spec/fixtures/countdown.avi
149
180
  - spec/fixtures/piano_note.wav
150
181
  - spec/fixtures/sample.rtf
182
+ - spec/fixtures/test.doc
151
183
  - spec/fixtures/test.pdf
184
+ - spec/fixtures/test.xls
152
185
  - spec/fixtures/world.png
186
+ - spec/lib/hydra/derivatives/extract_metadata_spec.rb
153
187
  - spec/spec_helper.rb
154
188
  - spec/units/config_spec.rb
189
+ - spec/units/extract_spec.rb
155
190
  - spec/units/image_spec.rb
156
191
  - spec/units/transcoding_spec.rb
157
192
  - spec/units/video_spec.rb
158
193
  homepage: https://github.com/projecthydra/hydra-derivatives
159
194
  licenses:
160
195
  - APACHE2
161
- metadata: {}
162
196
  post_install_message:
163
197
  rdoc_options: []
164
198
  require_paths:
165
199
  - lib
166
200
  required_ruby_version: !ruby/object:Gem::Requirement
201
+ none: false
167
202
  requirements:
168
- - - '>='
203
+ - - ! '>='
169
204
  - !ruby/object:Gem::Version
170
205
  version: '0'
171
206
  required_rubygems_version: !ruby/object:Gem::Requirement
207
+ none: false
172
208
  requirements:
173
- - - '>='
209
+ - - ! '>='
174
210
  - !ruby/object:Gem::Version
175
211
  version: '0'
176
212
  requirements: []
177
213
  rubyforge_project:
178
- rubygems_version: 2.0.5
214
+ rubygems_version: 1.8.25
179
215
  signing_key:
180
- specification_version: 4
216
+ specification_version: 3
181
217
  summary: Derivative generation plugin for hydra
182
218
  test_files:
183
219
  - spec/fixtures/FlashPix.ppt
184
220
  - spec/fixtures/countdown.avi
185
221
  - spec/fixtures/piano_note.wav
186
222
  - spec/fixtures/sample.rtf
223
+ - spec/fixtures/test.doc
187
224
  - spec/fixtures/test.pdf
225
+ - spec/fixtures/test.xls
188
226
  - spec/fixtures/world.png
227
+ - spec/lib/hydra/derivatives/extract_metadata_spec.rb
189
228
  - spec/spec_helper.rb
190
229
  - spec/units/config_spec.rb
230
+ - spec/units/extract_spec.rb
191
231
  - spec/units/image_spec.rb
192
232
  - spec/units/transcoding_spec.rb
193
233
  - spec/units/video_spec.rb
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: 168e645949c93b6ed1981c164f86969d71024cea
4
- data.tar.gz: cecd38bd8f89d9de5d6e709cd3a409ee1792f4c7
5
- SHA512:
6
- metadata.gz: 5ccf06b680a87e68f1375d662439edaa451560bd3895c0262032fd8357b7d4f235b2ebf142ac5d2eb78d2aeeac3da2f337cf04473b329ce0e3063a329c4f46fd
7
- data.tar.gz: dc693c6c09dde061948bccae85c67576cea915e668d5b7d7bb5e9ca9544950ba9678e087df0b68360e4be5d90e1b9ed60c96c1c7276df37e73dd80c70ea9900a