hyrax-active_encode 0.1.1 → 0.2.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.
- checksums.yaml +5 -5
- data/.circleci/config.yml +15 -3
- data/README.md +3 -2
- data/app/models/concerns/hyrax/active_encode/file_set_behavior.rb +6 -6
- data/app/models/hyrax/active_encode/watched_encode.rb +15 -0
- data/app/services/hyrax/active_encode/active_encode_derivative_service.rb +3 -2
- data/app/services/hyrax/active_encode/persist_active_encode_derivatives.rb +2 -6
- data/hyrax-active_encode.gemspec +2 -2
- data/lib/active_fedora/with_metadata/{external_file_uri_schema.rb → file_location_uri_schema.rb} +2 -2
- data/lib/generators/hyrax/active_encode/install_generator.rb +11 -3
- data/lib/hyrax/active_encode/version.rb +1 -1
- metadata +9 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 73154bcb27bea0f2301baba32d6e17ccd449952095b2f7f9a30aa22b7b62f3e1
|
4
|
+
data.tar.gz: a363e2428af93983a0fc555f17bf33db0ba86d4e36dc787403f89634e4c283d9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 876b31f68a51ad973e5e849cb73c794f0e6ae342e120e2e5e0deabc006f8dc90b7758776e556d625bcee4097d6bcce7dfa842bfcc2b6a16b9bdb682e5fd1a179
|
7
|
+
data.tar.gz: b06c533c0d0cac3ff136cf47df067b7e845aad4628509d7f79d634bd878dad9a92bafaa2b606176a681370e385ab799ca3784e8710bcf73b8b9bf73fa6386314
|
data/.circleci/config.yml
CHANGED
@@ -30,7 +30,7 @@ jobs:
|
|
30
30
|
BUNDLE_JOBS: 4
|
31
31
|
BUNDLE_RETRY: 3
|
32
32
|
NOKOGIRI_USE_SYSTEM_LIBRARIES: true
|
33
|
-
ENGINE_CART_RAILS_OPTIONS: --skip-git --skip-bundle --skip-listen --skip-spring --skip-yarn --skip-keeps --skip-coffee --skip-puma --skip-test
|
33
|
+
ENGINE_CART_RAILS_OPTIONS: --skip-git --skip-bundle --skip-listen --skip-spring --skip-yarn --skip-keeps --skip-coffee --skip-puma --skip-test
|
34
34
|
COVERALLS_PARALLEL: true
|
35
35
|
|
36
36
|
steps:
|
@@ -53,7 +53,7 @@ jobs:
|
|
53
53
|
|
54
54
|
- restore_cache:
|
55
55
|
keys:
|
56
|
-
-
|
56
|
+
- v2-internal-test-app-{{ checksum "hyrax-active_encode.gemspec" }}-{{ checksum "spec/test_app_templates/lib/generators/test_app_generator.rb" }}
|
57
57
|
|
58
58
|
# Download and cache dependencies
|
59
59
|
- restore_cache:
|
@@ -82,7 +82,19 @@ jobs:
|
|
82
82
|
- save_cache:
|
83
83
|
paths:
|
84
84
|
- ./.internal_test_app
|
85
|
-
key:
|
85
|
+
key: v2-internal-test-app-{{ checksum "hyrax-active_encode.gemspec" }}-{{ checksum "spec/test_app_templates/lib/generators/test_app_generator.rb" }}
|
86
|
+
|
87
|
+
- run:
|
88
|
+
name: Install test app dependencies
|
89
|
+
command: |
|
90
|
+
cd .internal_test_app
|
91
|
+
bundle install
|
92
|
+
|
93
|
+
- run:
|
94
|
+
name: Run the plugin generator
|
95
|
+
command: |
|
96
|
+
cd .internal_test_app
|
97
|
+
bundle exec rails g hyrax:active_encode:install
|
86
98
|
|
87
99
|
- run:
|
88
100
|
name: Load config into SolrCloud
|
data/README.md
CHANGED
@@ -12,13 +12,13 @@ gem 'hyrax-active_encode'
|
|
12
12
|
And then execute:
|
13
13
|
|
14
14
|
$ bundle
|
15
|
-
|
15
|
+
|
16
16
|
## Usage
|
17
17
|
|
18
18
|
To enable derivative generation through `active_encode` run the install generator which will modify the generated `FileSet` model:
|
19
19
|
|
20
20
|
$ rails g hyrax:active_encode:install
|
21
|
-
|
21
|
+
|
22
22
|
## Configuration
|
23
23
|
|
24
24
|
By default, hyrax-active_encode will use ActiveEncode's FFmpeg adapter and default ffmpeg options which will generate derivatives matching the defaults in Hyrax.
|
@@ -27,3 +27,4 @@ By default, hyrax-active_encode will use ActiveEncode's FFmpeg adapter and defau
|
|
27
27
|
|
28
28
|
`Hyrax::ActiveEncode::ActiveEncodeDerivativeService` can also be passed the ActiveEncode encode class to be used. By default this will be `ActiveEncode::Base`.
|
29
29
|
|
30
|
+
`Hyrax::ActiveEncode::WatchedEncode` is an optional `ActiveEncode::Base` subclass that includes `ActiveEncode::Polling` and `ActiveEncode::Persistence`. This optional encode class allows for tracking the encode process by saving the data from the encoding service in the `ActiveEncode::EncodeRecord` database table and saving the encode's global id on its associated file set.
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
require 'active_fedora/with_metadata/
|
2
|
+
require 'active_fedora/with_metadata/file_location_uri_schema'
|
3
3
|
|
4
4
|
module Hyrax
|
5
5
|
module ActiveEncode
|
@@ -7,11 +7,11 @@ module Hyrax
|
|
7
7
|
extend ActiveSupport::Concern
|
8
8
|
|
9
9
|
included do
|
10
|
-
|
11
|
-
|
10
|
+
property :encode_global_id, predicate: ::RDF::URI.new('http://avalonmediasystem.org/rdf/vocab/transcoding#workflowId'), multiple: false do |index|
|
11
|
+
index.as :symbol
|
12
|
+
end
|
12
13
|
|
13
|
-
|
14
|
-
# directly_contains :derivatives, through: :files, type: ::RDF::URI('http://pcdm.org/use#ServiceFile'), class_name: 'Hydra::PCDM::File'
|
14
|
+
ActiveFedora::WithMetadata::DefaultMetadataClassFactory.file_metadata_schemas += [ActiveFedora::WithMetadata::FileLocationUriSchema]
|
15
15
|
end
|
16
16
|
|
17
17
|
def build_derivative
|
@@ -26,7 +26,7 @@ module Hyrax
|
|
26
26
|
end
|
27
27
|
|
28
28
|
def derivatives_metadata
|
29
|
-
derivatives.collect { |f| { id: f.id, label: f.label.first,
|
29
|
+
derivatives.collect { |f| { id: f.id, label: f.label.first, file_location_uri: f.file_location_uri.first } }
|
30
30
|
end
|
31
31
|
end
|
32
32
|
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module Hyrax
|
3
|
+
module ActiveEncode
|
4
|
+
class WatchedEncode < ::ActiveEncode::Base
|
5
|
+
include ::ActiveEncode::Persistence
|
6
|
+
include ::ActiveEncode::Polling
|
7
|
+
|
8
|
+
around_create do |encode, block|
|
9
|
+
file_set_id = encode.options[:file_set_id]
|
10
|
+
block.call
|
11
|
+
::FileSet.find(file_set_id).update(encode_global_id: encode.to_global_id.to_s) if file_set_id
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -26,7 +26,8 @@ module Hyrax
|
|
26
26
|
end
|
27
27
|
|
28
28
|
def default_local_streaming
|
29
|
-
@@default_local_streaming
|
29
|
+
@@default_local_streaming = true unless defined?(@@default_local_streaming)
|
30
|
+
@@default_local_streaming
|
30
31
|
end
|
31
32
|
end
|
32
33
|
|
@@ -51,7 +52,7 @@ module Hyrax
|
|
51
52
|
# What should this return?
|
52
53
|
def derivative_url(file_label)
|
53
54
|
derivative = file_set.derivatives.find { |d| d.label.first == file_label }
|
54
|
-
derivative.nil? ? nil : derivative.
|
55
|
+
derivative.nil? ? nil : derivative.file_location_uri.first
|
55
56
|
end
|
56
57
|
|
57
58
|
def valid?
|
@@ -9,18 +9,14 @@ module Hyrax
|
|
9
9
|
# @option directives [String] file_set_id the id of the file set to add the derivative
|
10
10
|
def self.call(output, directives)
|
11
11
|
file_set = ActiveFedora::Base.find(directives[:file_set_id])
|
12
|
-
if directives[:local_streaming]
|
13
|
-
old_url = output.url
|
14
|
-
move_derivative(output, file_set)
|
15
|
-
output.url = Hyrax::Engine.routes.url_helpers.download_path(file_set, file: File.basename(old_url))
|
16
|
-
end
|
12
|
+
output.url = move_derivative(output, file_set) if directives[:local_streaming]
|
17
13
|
create_pcdm_file(output, file_set)
|
18
14
|
end
|
19
15
|
|
20
16
|
def self.create_pcdm_file(output, file_set)
|
21
17
|
pcdm_file = file_set.build_derivative
|
22
18
|
pcdm_file.label = output.label
|
23
|
-
pcdm_file.
|
19
|
+
pcdm_file.file_location_uri = output.url
|
24
20
|
pcdm_file.content = ''
|
25
21
|
file_set.save!
|
26
22
|
end
|
data/hyrax-active_encode.gemspec
CHANGED
@@ -18,13 +18,13 @@ Gem::Specification.new do |s|
|
|
18
18
|
f.match(%r{^(test|spec|features)/})
|
19
19
|
end
|
20
20
|
|
21
|
-
s.add_dependency "active_encode", "~> 0.
|
21
|
+
s.add_dependency "active_encode", "~> 0.5"
|
22
22
|
s.add_dependency "hyrax", "~> 2.1"
|
23
23
|
|
24
24
|
s.add_development_dependency 'bixby'
|
25
25
|
s.add_development_dependency 'coffee-rails'
|
26
26
|
s.add_development_dependency 'database_cleaner'
|
27
|
-
s.add_development_dependency 'engine_cart', '~> 2.
|
27
|
+
s.add_development_dependency 'engine_cart', '~> 2.2'
|
28
28
|
s.add_development_dependency 'fcrepo_wrapper'
|
29
29
|
s.add_development_dependency "rspec-rails", "~> 3.8"
|
30
30
|
s.add_development_dependency 'solr_wrapper'
|
data/lib/active_fedora/with_metadata/{external_file_uri_schema.rb → file_location_uri_schema.rb}
RENAMED
@@ -3,9 +3,9 @@
|
|
3
3
|
# added to it. This is most commonly used with ActiveFedora::File, when we want
|
4
4
|
# to add rdf triples to a non-rdf resource and have them persisted.
|
5
5
|
module ActiveFedora::WithMetadata
|
6
|
-
class
|
6
|
+
class FileLocationUriSchema < ActiveTriples::Schema
|
7
7
|
# Don't cast to keep values as RDF::URI instead of RDF::Resource
|
8
|
-
property :
|
8
|
+
property :file_location_uri, predicate: ::RDF::Vocab::EBUCore.locator, cast: false do |index|
|
9
9
|
index.as :stored_searchable
|
10
10
|
end
|
11
11
|
end
|
@@ -7,12 +7,20 @@ module Hyrax
|
|
7
7
|
source_root "../templates"
|
8
8
|
|
9
9
|
def enhance_file_set
|
10
|
+
# This module include has to come before Hyrax::FileSetBehavior since it finalizes properties
|
11
|
+
insert_into_file 'app/models/file_set.rb', before: 'include ::Hyrax::FileSetBehavior' do
|
12
|
+
"include Hyrax::ActiveEncode::FileSetBehavior\n "
|
13
|
+
end
|
14
|
+
# The indexer has to be set after Hyrax::FileSetBehavior in order to have effect
|
10
15
|
insert_into_file 'app/models/file_set.rb', after: 'include ::Hyrax::FileSetBehavior' do
|
11
|
-
"\n"
|
12
|
-
" include Hyrax::ActiveEncode::FileSetBehavior\n" \
|
13
|
-
" self.indexer = Hyrax::ActiveEncode::ActiveEncodeIndexer"
|
16
|
+
"\n self.indexer = Hyrax::ActiveEncode::ActiveEncodeIndexer"
|
14
17
|
end
|
15
18
|
end
|
19
|
+
|
20
|
+
def install_active_encode
|
21
|
+
rake 'active_encode:install:migrations'
|
22
|
+
rake 'db:migrate'
|
23
|
+
end
|
16
24
|
end
|
17
25
|
end
|
18
26
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hyrax-active_encode
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Colvard
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date:
|
15
|
+
date: 2019-04-17 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: active_encode
|
@@ -20,14 +20,14 @@ dependencies:
|
|
20
20
|
requirements:
|
21
21
|
- - "~>"
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version: '0.
|
23
|
+
version: '0.5'
|
24
24
|
type: :runtime
|
25
25
|
prerelease: false
|
26
26
|
version_requirements: !ruby/object:Gem::Requirement
|
27
27
|
requirements:
|
28
28
|
- - "~>"
|
29
29
|
- !ruby/object:Gem::Version
|
30
|
-
version: '0.
|
30
|
+
version: '0.5'
|
31
31
|
- !ruby/object:Gem::Dependency
|
32
32
|
name: hyrax
|
33
33
|
requirement: !ruby/object:Gem::Requirement
|
@@ -90,14 +90,14 @@ dependencies:
|
|
90
90
|
requirements:
|
91
91
|
- - "~>"
|
92
92
|
- !ruby/object:Gem::Version
|
93
|
-
version: '2.
|
93
|
+
version: '2.2'
|
94
94
|
type: :development
|
95
95
|
prerelease: false
|
96
96
|
version_requirements: !ruby/object:Gem::Requirement
|
97
97
|
requirements:
|
98
98
|
- - "~>"
|
99
99
|
- !ruby/object:Gem::Version
|
100
|
-
version: '2.
|
100
|
+
version: '2.2'
|
101
101
|
- !ruby/object:Gem::Dependency
|
102
102
|
name: fcrepo_wrapper
|
103
103
|
requirement: !ruby/object:Gem::Requirement
|
@@ -177,12 +177,13 @@ files:
|
|
177
177
|
- app/indexers/concerns/hyrax/active_encode/indexes_file_metadata.rb
|
178
178
|
- app/indexers/hyrax/active_encode/active_encode_indexer.rb
|
179
179
|
- app/models/concerns/hyrax/active_encode/file_set_behavior.rb
|
180
|
+
- app/models/hyrax/active_encode/watched_encode.rb
|
180
181
|
- app/services/hyrax/active_encode/active_encode_derivative_service.rb
|
181
182
|
- app/services/hyrax/active_encode/default_option_service.rb
|
182
183
|
- app/services/hyrax/active_encode/persist_active_encode_derivatives.rb
|
183
184
|
- bin/rails
|
184
185
|
- hyrax-active_encode.gemspec
|
185
|
-
- lib/active_fedora/with_metadata/
|
186
|
+
- lib/active_fedora/with_metadata/file_location_uri_schema.rb
|
186
187
|
- lib/generators/hyrax/active_encode/install_generator.rb
|
187
188
|
- lib/hyrax/active_encode.rb
|
188
189
|
- lib/hyrax/active_encode/engine.rb
|
@@ -207,8 +208,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
207
208
|
- !ruby/object:Gem::Version
|
208
209
|
version: '0'
|
209
210
|
requirements: []
|
210
|
-
|
211
|
-
rubygems_version: 2.6.14
|
211
|
+
rubygems_version: 3.0.3
|
212
212
|
signing_key:
|
213
213
|
specification_version: 4
|
214
214
|
summary: Hyrax plugin to enable audiovisual derivative generation through active_encode
|