hydra-derivatives 3.4.2 → 3.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.circleci/config.yml +62 -0
- data/.solr_wrapper +2 -0
- data/Gemfile +1 -0
- data/README.md +33 -2
- data/Rakefile +12 -0
- data/VERSION +1 -1
- data/config/fcrepo_wrapper_test.yml +2 -2
- data/config/solr_wrapper_test.yml +2 -0
- data/hydra-derivatives.gemspec +3 -3
- data/lib/hydra/derivatives/logger.rb +2 -2
- data/lib/hydra/derivatives/processors/jpeg2k_image.rb +2 -8
- data/lib/hydra/derivatives/processors/processor.rb +0 -7
- data/lib/hydra/derivatives/services/persist_output_file_service.rb +1 -1
- data/solr/config/schema.xml +0 -2
- data/spec/processors/processor_spec.rb +19 -1
- data/spec/processors/video_spec.rb +17 -0
- data/spec/runners/runner_spec.rb +9 -0
- data/spec/services/persist_output_file_service_spec.rb +47 -0
- data/spec/services/tempfile_service_spec.rb +23 -0
- data/spec/spec_helper.rb +9 -2
- data/spec/units/audio_encoder_spec.rb +11 -0
- data/spec/units/derivatives_spec.rb +6 -0
- data/spec/units/logger_spec.rb +5 -0
- metadata +16 -9
- data/.travis.yml +0 -39
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 60d19f9f569bcbc802b64a375b73be6e019d62f9b2c6a9a0e6b35dbd2fcfe58a
|
4
|
+
data.tar.gz: 88f0cabb0114f725c9f8473cd793b6eb2fc274e575e6ae59bceeb50498551025
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 44611dab7f3cd84daf842d95953ed4ad8e2a3899e615c155848458620f1a066bf667f034c13e91c600614f6aadffc352d9dcd595bdfff7b96eefa76af7ccb33e
|
7
|
+
data.tar.gz: f47fef855a22d55db4c4088dbdddf1fb999b8427d0aa255f7510cf2581509ad0ce3239d08059b77bd00a91620054dcba6a50cc10c3e45114fe5fc37cc014856f
|
@@ -0,0 +1,62 @@
|
|
1
|
+
version: 2.1
|
2
|
+
orbs:
|
3
|
+
samvera: samvera/circleci-orb@0
|
4
|
+
jobs:
|
5
|
+
bundle_lint_test:
|
6
|
+
parameters:
|
7
|
+
ruby_version:
|
8
|
+
type: string
|
9
|
+
project:
|
10
|
+
type: string
|
11
|
+
bundler_version:
|
12
|
+
type: string
|
13
|
+
default: 2.0.1
|
14
|
+
executor:
|
15
|
+
name: 'samvera/ruby_fcrepo_solr'
|
16
|
+
ruby_version: << parameters.ruby_version >>
|
17
|
+
steps:
|
18
|
+
- samvera/cached_checkout
|
19
|
+
- run:
|
20
|
+
name: Install dependencies
|
21
|
+
command: |
|
22
|
+
sudo apt-get update
|
23
|
+
sudo apt-get install ghostscript ufraw-batch libpng-dev imagemagick ffmpeg libreoffice
|
24
|
+
- run:
|
25
|
+
name: Install Kakadu
|
26
|
+
command: |
|
27
|
+
if [ ! -d "kakadu" ]; then
|
28
|
+
mkdir ~/downloads
|
29
|
+
wget http://kakadusoftware.com/wp-content/uploads/2014/06/KDU77_Demo_Apps_for_Linux-x86-64_150710.zip -O ~/downloads/kakadu.zip
|
30
|
+
unzip ~/downloads/kakadu.zip
|
31
|
+
mv KDU77_Demo_Apps_for_Linux-x86-64_150710 kakadu
|
32
|
+
fi
|
33
|
+
sudo cp kakadu/*.so /usr/lib
|
34
|
+
sudo cp kakadu/* /usr/bin
|
35
|
+
|
36
|
+
- samvera/bundle_for_gem:
|
37
|
+
ruby_version: << parameters.ruby_version >>
|
38
|
+
bundler_version: << parameters.bundler_version >>
|
39
|
+
project: << parameters.project >>
|
40
|
+
cache_version: '2'
|
41
|
+
|
42
|
+
- samvera/install_solr_core
|
43
|
+
|
44
|
+
- samvera/rubocop
|
45
|
+
|
46
|
+
- samvera/parallel_rspec
|
47
|
+
|
48
|
+
workflows:
|
49
|
+
ci:
|
50
|
+
jobs:
|
51
|
+
- bundle_lint_test:
|
52
|
+
name: ruby2-4-6
|
53
|
+
ruby_version: 2.4.6
|
54
|
+
project: hydra-derivatives
|
55
|
+
- bundle_lint_test:
|
56
|
+
name: ruby2-5-5
|
57
|
+
ruby_version: 2.5.5
|
58
|
+
project: hydra-derivatives
|
59
|
+
- bundle_lint_test:
|
60
|
+
name: ruby2-6-3
|
61
|
+
ruby_version: 2.6.3
|
62
|
+
project: hydra-derivatives
|
data/.solr_wrapper
ADDED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Code:
|
4
4
|
[![Version](https://badge.fury.io/rb/hydra-derivatives.png)](http://badge.fury.io/rb/hydra-derivatives)
|
5
|
-
[![Build Status](https://
|
5
|
+
[![Build Status](https://circleci.com/gh/samvera/hydra-derivatives.svg?style=svg)](https://circleci.com/gh/samvera/hydra-derivatives)
|
6
6
|
[![Coverage Status](https://coveralls.io/repos/github/samvera/hydra-derivatives/badge.svg?branch=master)](https://coveralls.io/github/samvera/hydra-derivatives?branch=master)
|
7
7
|
|
8
8
|
Docs:
|
@@ -13,7 +13,7 @@ Jump In: [![Slack Status](http://slack.samvera.org/badge.svg)](http://slack.samv
|
|
13
13
|
|
14
14
|
# What is hydra-derivatives?
|
15
15
|
|
16
|
-
Derivative generation for
|
16
|
+
Derivative generation for Samvera applications.
|
17
17
|
|
18
18
|
## Product Owner & Maintenance
|
19
19
|
|
@@ -213,6 +213,37 @@ Instead, each directive may contain these arguments:
|
|
213
213
|
* `:compression` (Integer) : The left number of the compression ratio `n:1`, e.g. 12 will apply 12:1 compression. Default: 10.
|
214
214
|
* `:tile_size` (Integer) : Pixel dimension of the tiles. Default: 1024
|
215
215
|
|
216
|
+
# Development Environment
|
217
|
+
|
218
|
+
## Dependencies
|
219
|
+
|
220
|
+
* [ImageMagick](https://www.imagemagick.org)
|
221
|
+
* On a mac, do `brew install imagemagick`
|
222
|
+
* [LibreOffice](https://www.libreoffice.org/)
|
223
|
+
* * On a mac, do `brew cask install libreoffice`
|
224
|
+
* [Kakadu](http://kakadusoftware.com/)
|
225
|
+
* On a mac, extract the file and run the pkg installer therein (don't get distracted by the files called kdu_show)
|
226
|
+
* [Ghostscript](https://www.ghostscript.com/)
|
227
|
+
* On a mac, `brew install ghostscript`
|
228
|
+
* ufraw
|
229
|
+
* On a mac, `brew install ufraw`
|
230
|
+
* libvpx
|
231
|
+
* On a mac, `brew install libvpx`
|
232
|
+
* ffmpeg
|
233
|
+
* On a mac, `brew install ffmpeg`
|
234
|
+
* Ensure `libvpx` is installed first
|
235
|
+
|
236
|
+
## Running Tests
|
237
|
+
|
238
|
+
1. Run tests with `RAILS_ENV=test bundle exec rake ci`
|
239
|
+
|
240
|
+
## Running specific tests
|
241
|
+
|
242
|
+
If you don't want to run the whole suite all at once like CI, do the following:
|
243
|
+
|
244
|
+
1. Run the test servers with `rake derivatives:test_server`
|
245
|
+
2. Run the tests.
|
246
|
+
|
216
247
|
# Acknowledgments
|
217
248
|
|
218
249
|
This software has been developed by and is brought to you by the Samvera community. Learn more at the
|
data/Rakefile
CHANGED
@@ -29,6 +29,18 @@ namespace :derivatives do
|
|
29
29
|
Rake::Task['derivatives:rspec'].invoke
|
30
30
|
end
|
31
31
|
end
|
32
|
+
|
33
|
+
desc 'Start up test server'
|
34
|
+
task :test_server do
|
35
|
+
ENV["RAILS_ENV"] = "test"
|
36
|
+
with_test_server do
|
37
|
+
puts "Solr: http://localhost:#{ENV["SOLR_TEST_PORT"]}/solr"
|
38
|
+
puts "Fedora: http://localhost:#{ENV["FCREPO_TEST_PORT"]}/rest"
|
39
|
+
while(1) do
|
40
|
+
sleep(1)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
32
44
|
end
|
33
45
|
|
34
46
|
desc 'Run continuous integration build'
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
3.
|
1
|
+
3.5.0
|
data/hydra-derivatives.gemspec
CHANGED
@@ -4,7 +4,7 @@ Gem::Specification.new do |spec|
|
|
4
4
|
spec.name = "hydra-derivatives"
|
5
5
|
spec.version = version
|
6
6
|
spec.authors = ["Justin Coyne"]
|
7
|
-
spec.email = ["
|
7
|
+
spec.email = ["jenlindner@gmail.com", "jcoyne85@stanford.edu"]
|
8
8
|
spec.description = "Derivative generation plugin for hydra"
|
9
9
|
spec.summary = "Derivative generation plugin for hydra"
|
10
10
|
spec.license = "APACHE2"
|
@@ -19,9 +19,9 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.add_development_dependency 'fcrepo_wrapper', '~> 0.2'
|
20
20
|
spec.add_development_dependency 'rake', '~> 10.1'
|
21
21
|
spec.add_development_dependency 'rspec', '~> 3.1'
|
22
|
-
spec.add_development_dependency "solr_wrapper", "~> 0
|
22
|
+
spec.add_development_dependency "solr_wrapper", "~> 2.0"
|
23
23
|
|
24
|
-
spec.add_dependency 'active-fedora', '>= 11.3.1', '<
|
24
|
+
spec.add_dependency 'active-fedora', '>= 11.3.1', '< 14'
|
25
25
|
spec.add_dependency 'active_encode', '~>0.1'
|
26
26
|
spec.add_dependency 'activesupport', '>= 4.0', '< 6'
|
27
27
|
spec.add_dependency 'addressable', '~>2.5'
|
@@ -11,8 +11,8 @@ module Hydra::Derivatives
|
|
11
11
|
logger.respond_to? method_name
|
12
12
|
end
|
13
13
|
|
14
|
-
def respond_to_missing?(method_name,
|
15
|
-
logger.respond_to_missing
|
14
|
+
def respond_to_missing?(method_name, include_private = false)
|
15
|
+
logger.send(:respond_to_missing?, method_name, include_private)
|
16
16
|
end
|
17
17
|
|
18
18
|
private
|
@@ -99,15 +99,9 @@ module Hydra::Derivatives::Processors
|
|
99
99
|
File.unlink(file_path) unless file_path.nil?
|
100
100
|
end
|
101
101
|
|
102
|
-
def encode_file(recipe,
|
102
|
+
def encode_file(recipe, file_path:)
|
103
103
|
output_file = self.class.tmp_file('.jp2')
|
104
|
-
|
105
|
-
self.class.encode(opts[:file_path], recipe, output_file)
|
106
|
-
else
|
107
|
-
Hydra::Derivatives::TempfileService.create(source_file) do |f|
|
108
|
-
self.class.encode(f.path, recipe, output_file)
|
109
|
-
end
|
110
|
-
end
|
104
|
+
self.class.encode(file_path, recipe, output_file)
|
111
105
|
output_file_service.call(File.open(output_file, 'rb'), directives)
|
112
106
|
File.unlink(output_file)
|
113
107
|
end
|
@@ -19,13 +19,6 @@ module Hydra::Derivatives::Processors
|
|
19
19
|
raise "Processor is an abstract class. Implement `process' on #{self.class.name}"
|
20
20
|
end
|
21
21
|
|
22
|
-
# This governs the output key sent to the persist file service
|
23
|
-
# while this is adequate for storing in Fedora, it's not a great name for saving
|
24
|
-
# to the file system.
|
25
|
-
def output_file_id(name)
|
26
|
-
[out_prefix, name].join('_')
|
27
|
-
end
|
28
|
-
|
29
22
|
def output_filename_for(_name)
|
30
23
|
File.basename(source_path)
|
31
24
|
end
|
data/solr/config/schema.xml
CHANGED
@@ -168,7 +168,6 @@
|
|
168
168
|
<fieldType class="solr.TextField" name="textSuggest" positionIncrementGap="100">
|
169
169
|
<analyzer>
|
170
170
|
<tokenizer class="solr.KeywordTokenizerFactory"/>
|
171
|
-
<filter class="solr.StandardFilterFactory"/>
|
172
171
|
<filter class="solr.LowerCaseFilterFactory"/>
|
173
172
|
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
|
174
173
|
</analyzer>
|
@@ -338,7 +337,6 @@
|
|
338
337
|
<!-- <defaultSearchField>text</defaultSearchField> -->
|
339
338
|
|
340
339
|
<!-- SolrQueryParser configuration: defaultOperator="AND|OR" -->
|
341
|
-
<solrQueryParser defaultOperator="OR"/>
|
342
340
|
|
343
341
|
<!-- copyField commands copy one field to another at the time a document
|
344
342
|
is added to the index. It's used either to index the same field differently,
|
@@ -6,7 +6,7 @@ describe Hydra::Derivatives::Processors::Processor do
|
|
6
6
|
let(:object) { "Fake Object" }
|
7
7
|
let(:source_name) { 'content' }
|
8
8
|
let(:directives) { { thumb: "100x100>" } }
|
9
|
-
let(:file_path) {
|
9
|
+
let(:file_path) { Pathname.new("test/unicorn.jpg") }
|
10
10
|
|
11
11
|
describe "output_file_service" do
|
12
12
|
let(:custom_output_file_service) { "fake service" }
|
@@ -32,4 +32,22 @@ describe Hydra::Derivatives::Processors::Processor do
|
|
32
32
|
end
|
33
33
|
end
|
34
34
|
end
|
35
|
+
|
36
|
+
describe "#process" do
|
37
|
+
it "raises an implementation error" do
|
38
|
+
expect { subject.process }.to raise_error "Processor is an abstract class. Implement `process' on Hydra::Derivatives::Processors::Processor"
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
describe "#output_file" do
|
43
|
+
it "raises an implementation error" do
|
44
|
+
expect { subject.output_file }.to raise_error "Processor is an abstract class. Utilize an implementation of a PersistOutputFileService class in Hydra::Derivatives::Processors::Processor"
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
describe "#output_filename_for" do
|
49
|
+
it "returns the basename of the source file" do
|
50
|
+
expect(subject.output_filename_for("ignored")).to eq "unicorn.jpg"
|
51
|
+
end
|
52
|
+
end
|
35
53
|
end
|
@@ -38,5 +38,22 @@ describe Hydra::Derivatives::Processors::Video::Processor do
|
|
38
38
|
subject.process
|
39
39
|
end
|
40
40
|
end
|
41
|
+
|
42
|
+
context "when an mkv is requested" do
|
43
|
+
let(:directives) { { label: :thumb, format: 'mkv', url: 'http://localhost:8983/fedora/rest/dev/1234/thumbnail' } }
|
44
|
+
|
45
|
+
it "creates a fedora resource and infers the name" do
|
46
|
+
expect(subject).to receive(:encode_file).with("mkv", Hydra::Derivatives::Processors::Ffmpeg::OUTPUT_OPTIONS => "-s 320x240 -vcodec ffv1 -g 30 -b:v 345k -ac 2 -ab 96k -ar 44100", Hydra::Derivatives::Processors::Ffmpeg::INPUT_OPTIONS => "")
|
47
|
+
subject.process
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
context "when an unknown format is requested" do
|
52
|
+
let(:directives) { { label: :thumb, format: 'nocnv', url: 'http://localhost:8983/fedora/rest/dev/1234/thumbnail' } }
|
53
|
+
|
54
|
+
it "raises an ArgumentError" do
|
55
|
+
expect { subject.process }.to raise_error ArgumentError, "Unknown format `nocnv'"
|
56
|
+
end
|
57
|
+
end
|
41
58
|
end
|
42
59
|
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe Hydra::Derivatives::Runner do
|
4
|
+
describe ".processor_class" do
|
5
|
+
it "raises an error if it's not overridden" do
|
6
|
+
expect { described_class.processor_class }.to raise_error "Overide the processor_class method in a sub class"
|
7
|
+
end
|
8
|
+
end
|
9
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe Hydra::Derivatives::PersistOutputFileService do
|
4
|
+
let(:original_filename_class) do
|
5
|
+
Class.new do
|
6
|
+
def original_filename
|
7
|
+
"original filename"
|
8
|
+
end
|
9
|
+
|
10
|
+
def mime_type
|
11
|
+
"image/tiff"
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
describe ".call" do
|
17
|
+
it "raises an error if not implemented" do
|
18
|
+
expect { described_class.call(nil, nil) }.to raise_error NotImplementedError, "PersistOutputFileService is an abstract class. Implement `call' on Class"
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
describe ".determine_original_name" do
|
23
|
+
context "when given something with an original filename" do
|
24
|
+
it "returns it from that file" do
|
25
|
+
expect(described_class.determine_original_name(original_filename_class.new)).to eq "original filename"
|
26
|
+
end
|
27
|
+
end
|
28
|
+
context "when given something without an original filename" do
|
29
|
+
it "returns derivative" do
|
30
|
+
expect(described_class.determine_original_name("tardis")).to eq "derivative"
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
describe ".determine_mime_type" do
|
36
|
+
context "when given something with #mime_type" do
|
37
|
+
it "returns it from that file" do
|
38
|
+
expect(described_class.determine_mime_type(original_filename_class.new)).to eq "image/tiff"
|
39
|
+
end
|
40
|
+
end
|
41
|
+
context "when given something without #mime_type" do
|
42
|
+
it "returns application/octet-stream" do
|
43
|
+
expect(described_class.determine_mime_type("tardis")).to eq "application/octet-stream"
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -19,6 +19,14 @@ describe Hydra::Derivatives::TempfileService do
|
|
19
19
|
end
|
20
20
|
end
|
21
21
|
|
22
|
+
let(:class_with_tempfile) do
|
23
|
+
Class.new do
|
24
|
+
def to_tempfile
|
25
|
+
"stub"
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
22
30
|
let(:initialization_options) { { content: 'abc', mime_type: 'text/plain' } }
|
23
31
|
|
24
32
|
let(:file) { class_with_metadata_extraction.new(initialization_options) }
|
@@ -27,5 +35,20 @@ describe Hydra::Derivatives::TempfileService do
|
|
27
35
|
it 'has a method called to_tempfile' do
|
28
36
|
expect { |b| subject.tempfile(&b) }.to yield_with_args(Tempfile)
|
29
37
|
end
|
38
|
+
it "will call read on passed content if available" do
|
39
|
+
file_with_readable_content = class_with_metadata_extraction.new(content: StringIO.new("test"), mime_type: 'text/plain')
|
40
|
+
|
41
|
+
service = described_class.new(file_with_readable_content)
|
42
|
+
|
43
|
+
service.tempfile do |t|
|
44
|
+
expect(t.read).to eq "test"
|
45
|
+
end
|
46
|
+
end
|
47
|
+
it "delegates down to `to_tempfile` if available" do
|
48
|
+
tempfile_stub = class_with_tempfile.new
|
49
|
+
service = described_class.new(tempfile_stub)
|
50
|
+
|
51
|
+
expect(service.tempfile).to eq "stub"
|
52
|
+
end
|
30
53
|
end
|
31
54
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,12 +1,19 @@
|
|
1
1
|
ENV['environment'] ||= 'test'
|
2
|
+
ENV['RAILS_ENV'] = 'test'
|
2
3
|
|
3
4
|
require 'simplecov'
|
4
5
|
require 'coveralls'
|
5
|
-
|
6
|
+
|
7
|
+
SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter.new(
|
8
|
+
[
|
9
|
+
SimpleCov::Formatter::HTMLFormatter,
|
10
|
+
Coveralls::SimpleCov::Formatter
|
11
|
+
]
|
12
|
+
)
|
13
|
+
SimpleCov.minimum_coverage 100
|
6
14
|
SimpleCov.start do
|
7
15
|
add_filter '/spec'
|
8
16
|
end
|
9
|
-
Coveralls.wear!
|
10
17
|
|
11
18
|
# - RSpec adds ./lib to the $LOAD_PATH
|
12
19
|
require 'hydra/derivatives'
|
@@ -20,4 +20,15 @@ describe Hydra::Derivatives::AudioEncoder do
|
|
20
20
|
expect(audio_encoder).to eq('aac')
|
21
21
|
end
|
22
22
|
end
|
23
|
+
|
24
|
+
context "when ffmpeg is not installed" do
|
25
|
+
it "logs a warning" do
|
26
|
+
allow(ActiveFedora::Base.logger).to receive(:warn)
|
27
|
+
allow(Open3).to receive(:capture3).with('ffmpeg -codecs').and_raise StandardError
|
28
|
+
|
29
|
+
described_class.new
|
30
|
+
|
31
|
+
expect(ActiveFedora::Base.logger).to have_received(:warn).with('Unable to find ffmpeg')
|
32
|
+
end
|
33
|
+
end
|
23
34
|
end
|
@@ -40,6 +40,12 @@ describe Hydra::Derivatives do
|
|
40
40
|
end
|
41
41
|
end
|
42
42
|
describe "#{method}=" do
|
43
|
+
around do |example|
|
44
|
+
value = subject.config.send(method)
|
45
|
+
example.call
|
46
|
+
subject.send("#{method}=", value)
|
47
|
+
end
|
48
|
+
|
43
49
|
it 'stores config changes' do
|
44
50
|
expect { subject.send("#{method}=", "new_value") }.to change { subject.config.send(method) }.from(subject.config.send(method)).to("new_value")
|
45
51
|
end
|
data/spec/units/logger_spec.rb
CHANGED
@@ -14,6 +14,11 @@ describe Hydra::Derivatives::Logger do
|
|
14
14
|
end
|
15
15
|
end
|
16
16
|
|
17
|
+
it "delegates respond_to_missing" do
|
18
|
+
allow(ActiveFedora::Base.logger).to receive(:respond_to_missing?).with(:weird, false).and_return(true)
|
19
|
+
expect(described_class.respond_to_missing?(:weird)).to be_truthy
|
20
|
+
end
|
21
|
+
|
17
22
|
context "with garbage" do
|
18
23
|
it "raises an error" do
|
19
24
|
expect { described_class.garbage }.to raise_error(NoMethodError)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hydra-derivatives
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Justin Coyne
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-08-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -72,14 +72,14 @@ dependencies:
|
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: '0
|
75
|
+
version: '2.0'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: '0
|
82
|
+
version: '2.0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: active-fedora
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -89,7 +89,7 @@ dependencies:
|
|
89
89
|
version: 11.3.1
|
90
90
|
- - "<"
|
91
91
|
- !ruby/object:Gem::Version
|
92
|
-
version: '
|
92
|
+
version: '14'
|
93
93
|
type: :runtime
|
94
94
|
prerelease: false
|
95
95
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -99,7 +99,7 @@ dependencies:
|
|
99
99
|
version: 11.3.1
|
100
100
|
- - "<"
|
101
101
|
- !ruby/object:Gem::Version
|
102
|
-
version: '
|
102
|
+
version: '14'
|
103
103
|
- !ruby/object:Gem::Dependency
|
104
104
|
name: active_encode
|
105
105
|
requirement: !ruby/object:Gem::Requirement
|
@@ -204,16 +204,18 @@ dependencies:
|
|
204
204
|
version: '5'
|
205
205
|
description: Derivative generation plugin for hydra
|
206
206
|
email:
|
207
|
-
-
|
207
|
+
- jenlindner@gmail.com
|
208
|
+
- jcoyne85@stanford.edu
|
208
209
|
executables: []
|
209
210
|
extensions: []
|
210
211
|
extra_rdoc_files: []
|
211
212
|
files:
|
213
|
+
- ".circleci/config.yml"
|
212
214
|
- ".gitignore"
|
213
215
|
- ".rspec"
|
214
216
|
- ".rubocop.yml"
|
215
217
|
- ".rubocop_todo.yml"
|
216
|
-
- ".
|
218
|
+
- ".solr_wrapper"
|
217
219
|
- CODE_OF_CONDUCT.md
|
218
220
|
- CONTRIBUTING.md
|
219
221
|
- Gemfile
|
@@ -226,6 +228,7 @@ files:
|
|
226
228
|
- VERSION
|
227
229
|
- config/fcrepo_wrapper_test.yml
|
228
230
|
- config/jetty.yml
|
231
|
+
- config/solr_wrapper_test.yml
|
229
232
|
- doc/amazon_elastic_transcoder.md
|
230
233
|
- hydra-derivatives.gemspec
|
231
234
|
- lib/color_profiles/license.txt
|
@@ -306,9 +309,11 @@ files:
|
|
306
309
|
- spec/processors/shell_based_processor_spec.rb
|
307
310
|
- spec/processors/video_spec.rb
|
308
311
|
- spec/runners/active_encode_derivatives_spec.rb
|
312
|
+
- spec/runners/runner_spec.rb
|
309
313
|
- spec/services/audio_derivatives_spec.rb
|
310
314
|
- spec/services/persist_basic_contained_output_file_service_spec.rb
|
311
315
|
- spec/services/persist_external_file_output_file_service_spec.rb
|
316
|
+
- spec/services/persist_output_file_service_spec.rb
|
312
317
|
- spec/services/remote_source_file_spec.rb
|
313
318
|
- spec/services/retrieve_source_file_service_spec.rb
|
314
319
|
- spec/services/tempfile_service_spec.rb
|
@@ -338,7 +343,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
338
343
|
- !ruby/object:Gem::Version
|
339
344
|
version: '0'
|
340
345
|
requirements: []
|
341
|
-
rubygems_version: 3.0.
|
346
|
+
rubygems_version: 3.0.3
|
342
347
|
signing_key:
|
343
348
|
specification_version: 4
|
344
349
|
summary: Derivative generation plugin for hydra
|
@@ -367,9 +372,11 @@ test_files:
|
|
367
372
|
- spec/processors/shell_based_processor_spec.rb
|
368
373
|
- spec/processors/video_spec.rb
|
369
374
|
- spec/runners/active_encode_derivatives_spec.rb
|
375
|
+
- spec/runners/runner_spec.rb
|
370
376
|
- spec/services/audio_derivatives_spec.rb
|
371
377
|
- spec/services/persist_basic_contained_output_file_service_spec.rb
|
372
378
|
- spec/services/persist_external_file_output_file_service_spec.rb
|
379
|
+
- spec/services/persist_output_file_service_spec.rb
|
373
380
|
- spec/services/remote_source_file_spec.rb
|
374
381
|
- spec/services/retrieve_source_file_service_spec.rb
|
375
382
|
- spec/services/tempfile_service_spec.rb
|
data/.travis.yml
DELETED
@@ -1,39 +0,0 @@
|
|
1
|
-
language: ruby
|
2
|
-
cache: bundler
|
3
|
-
sudo: false
|
4
|
-
before_install:
|
5
|
-
- gem update --system
|
6
|
-
- gem install bundler
|
7
|
-
rvm:
|
8
|
-
- 2.3.8
|
9
|
-
- 2.4.5
|
10
|
-
- 2.5.3
|
11
|
-
- 2.6.0
|
12
|
-
env:
|
13
|
-
global:
|
14
|
-
- NOKOGIRI_USE_SYSTEM_LIBRARIES=true
|
15
|
-
jdk:
|
16
|
-
- oraclejdk8
|
17
|
-
notifications:
|
18
|
-
email:
|
19
|
-
recipients:
|
20
|
-
- "ul-dlt-applications@lists.psu.edu"
|
21
|
-
on_success: "change"
|
22
|
-
on_failure: "always"
|
23
|
-
irc:
|
24
|
-
channels:
|
25
|
-
- "irc.freenode.org#scholarsphere"
|
26
|
-
template:
|
27
|
-
- "%{repository}//%{branch}@%{commit} by %{author}: %{message} - %{build_url}"
|
28
|
-
addons:
|
29
|
-
apt:
|
30
|
-
sources:
|
31
|
-
- "trusty-media"
|
32
|
-
- sourceline: ppa:jonathonf/ffmpeg-3
|
33
|
-
packages:
|
34
|
-
- ghostscript
|
35
|
-
- ufraw-batch
|
36
|
-
- libpng-dev
|
37
|
-
- imagemagick
|
38
|
-
- ffmpeg
|
39
|
-
- libreoffice
|