ddr-models 2.1.0 → 2.1.1
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 +4 -4
- data/lib/ddr/managers/derivatives_manager.rb +16 -16
- data/lib/ddr/models.rb +8 -3
- data/lib/ddr/models/licenses/admin_policy_license.rb +11 -0
- data/lib/ddr/models/{effective_license.rb → licenses/effective_license.rb} +0 -0
- data/lib/ddr/models/licenses/inherited_license.rb +9 -0
- data/lib/ddr/models/{license.rb → licenses/license.rb} +0 -0
- data/lib/ddr/models/licenses/parent_license.rb +11 -0
- data/lib/ddr/models/solr_document.rb +1 -0
- data/lib/ddr/models/version.rb +1 -1
- data/spec/models/effective_license_spec.rb +33 -19
- metadata +7 -5
- data/lib/ddr/models/inherited_license.rb +0 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fbcdaa441af1221abeda5c6a468e74475cd6e7c8
|
4
|
+
data.tar.gz: da11574b2613a2a00df3adce76abcb4519b3c46b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c35091749c6e1c34a76aef939b85db065bd672e626c69201e1c1a9acf034e7eadf9203db5864eb60e0fa3567e9733acab048c78445f803129dd5e4ddd0aacf3b
|
7
|
+
data.tar.gz: cbaf8bdb8847ff9c2b85fe81946817660de3a4267fcbf80d1afe4a18bf467245eed8815f9b8b46bba3edc0650fe32d925247cb2b538bd85020a400f7e849eed9
|
@@ -51,23 +51,23 @@ module Ddr
|
|
51
51
|
end
|
52
52
|
|
53
53
|
def generate_derivative!(derivative)
|
54
|
-
Dir.
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
end
|
69
|
-
generator_output.close unless generator_output.closed?
|
54
|
+
tempdir = FileUtils.mkdir(File.join(Dir.tmpdir, Dir::Tmpname.make_tmpname('',nil))).first
|
55
|
+
generator_source = create_source_file(tempdir)
|
56
|
+
generator_output = File.new(File.join(tempdir, "output.out"), 'wb')
|
57
|
+
results = derivative.generator.new(generator_source.path, generator_output.path, derivative.options).generate
|
58
|
+
generator_source.close unless generator_source.closed?
|
59
|
+
if results.status.success?
|
60
|
+
generator_output = File.open(generator_output, 'rb')
|
61
|
+
object.reload if object.persisted?
|
62
|
+
object.add_file generator_output, derivative.datastream, mime_type: derivative.generator.output_mime_type
|
63
|
+
object.save!
|
64
|
+
else
|
65
|
+
Rails.logger.error results.stderr
|
66
|
+
raise Ddr::Models::DerivativeGenerationFailure,
|
67
|
+
"Failure generating #{derivative.name} for #{object.pid}: #{results.stderr}"
|
70
68
|
end
|
69
|
+
generator_output.close unless generator_output.closed?
|
70
|
+
FileUtils.remove_dir(tempdir)
|
71
71
|
end
|
72
72
|
|
73
73
|
def delete_derivative(derivative)
|
data/lib/ddr/models.rb
CHANGED
@@ -37,7 +37,6 @@ module Ddr
|
|
37
37
|
autoload :ContentModelError, 'ddr/models/error'
|
38
38
|
autoload :DerivativeGenerationFailure, 'ddr/models/error'
|
39
39
|
autoload :Describable
|
40
|
-
autoload :EffectiveLicense
|
41
40
|
autoload :Error
|
42
41
|
autoload :EventLoggable
|
43
42
|
autoload :FileManagement
|
@@ -52,13 +51,19 @@ module Ddr
|
|
52
51
|
autoload :HasStructMetadata
|
53
52
|
autoload :HasThumbnail
|
54
53
|
autoload :Indexing
|
55
|
-
autoload :InheritedLicense
|
56
|
-
autoload :License
|
57
54
|
autoload :SolrDocument
|
58
55
|
autoload :StructDiv
|
59
56
|
autoload :Structure
|
60
57
|
autoload :YearFacet
|
61
58
|
|
59
|
+
autoload_under "licenses" do
|
60
|
+
autoload :AdminPolicyLicense
|
61
|
+
autoload :EffectiveLicense
|
62
|
+
autoload :License
|
63
|
+
autoload :InheritedLicense
|
64
|
+
autoload :ParentLicense
|
65
|
+
end
|
66
|
+
|
62
67
|
# Base directory of default external file store
|
63
68
|
mattr_accessor :external_file_store
|
64
69
|
|
File without changes
|
File without changes
|
data/lib/ddr/models/version.rb
CHANGED
@@ -3,44 +3,58 @@ module Ddr::Models
|
|
3
3
|
|
4
4
|
subject { described_class.call(obj) }
|
5
5
|
|
6
|
-
let(:mock) { Struct.new(:license, :parent, :admin_policy, :pid) }
|
7
|
-
let(:obj) { mock.new }
|
8
|
-
|
9
6
|
let(:url) { "https://creativecommons.org/licenses/by-nc-nd/4.0/" }
|
10
7
|
|
11
8
|
let(:license) { License.new(url: url) }
|
12
9
|
before { allow(License).to receive(:find).with(url: url) { license } }
|
13
10
|
|
11
|
+
let(:obj) { double(pid: "test:1", id: "test:1", license: nil, parent: nil, admin_policy: nil, admin_policy_id: nil) }
|
12
|
+
|
14
13
|
describe "when the object has a license" do
|
15
|
-
before { obj.license
|
14
|
+
before { allow(obj).to receive(:license) { url } }
|
16
15
|
it { is_expected.to eq(license) }
|
17
16
|
end
|
18
17
|
|
19
18
|
describe "when the object does not have a license" do
|
20
|
-
describe "
|
21
|
-
let(:parent) {
|
19
|
+
describe "and the object has a parent" do
|
20
|
+
let(:parent) { double(pid: "test:2", license: nil) }
|
22
21
|
before do
|
23
|
-
|
24
|
-
|
22
|
+
allow(obj).to receive(:parent) { parent }
|
23
|
+
end
|
24
|
+
describe "and the parent has a license" do
|
25
|
+
before do
|
26
|
+
allow(parent).to receive(:license) { url }
|
27
|
+
end
|
28
|
+
it { is_expected.to eq(license) }
|
29
|
+
end
|
30
|
+
describe "and the parent does not have a license" do
|
31
|
+
it { is_expected.to be_nil }
|
25
32
|
end
|
26
|
-
it { is_expected.to eq(license) }
|
27
33
|
end
|
28
|
-
describe "
|
29
|
-
describe "
|
30
|
-
|
31
|
-
|
34
|
+
describe "and the object does not have a parent" do
|
35
|
+
describe "and the object has an admin policy" do
|
36
|
+
let(:admin_policy) { double(pid: "test:3", id: "test:3", license: nil) }
|
37
|
+
before { allow(obj).to receive(:admin_policy) { admin_policy } }
|
38
|
+
describe "and the admin policy has a different id from the object" do
|
32
39
|
before do
|
33
|
-
|
34
|
-
|
40
|
+
allow(obj).to receive(:admin_policy_id) { "test:3" }
|
41
|
+
end
|
42
|
+
describe "and the admin policy has a license" do
|
43
|
+
before do
|
44
|
+
allow(admin_policy).to receive(:license) { url }
|
45
|
+
end
|
46
|
+
it { is_expected.to eq(license) }
|
47
|
+
end
|
48
|
+
describe "and the admin policy does not have a license" do
|
49
|
+
it { is_expected.to be_nil }
|
35
50
|
end
|
36
|
-
it { is_expected.to eq(license) }
|
37
51
|
end
|
38
|
-
describe "and the admin policy
|
39
|
-
before { obj.
|
52
|
+
describe "and the admin policy has the same id as the object" do
|
53
|
+
before { allow(obj).to receive(:admin_policy_id) { obj.id } }
|
40
54
|
it { is_expected.to be_nil }
|
41
55
|
end
|
42
56
|
end
|
43
|
-
describe "
|
57
|
+
describe "and the object does not have an admin policy" do
|
44
58
|
it { is_expected.to be_nil }
|
45
59
|
end
|
46
60
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ddr-models
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1.
|
4
|
+
version: 2.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jim Coble
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-
|
12
|
+
date: 2015-10-07 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -486,7 +486,6 @@ files:
|
|
486
486
|
- lib/ddr/models/admin_set.rb
|
487
487
|
- lib/ddr/models/base.rb
|
488
488
|
- lib/ddr/models/describable.rb
|
489
|
-
- lib/ddr/models/effective_license.rb
|
490
489
|
- lib/ddr/models/engine.rb
|
491
490
|
- lib/ddr/models/error.rb
|
492
491
|
- lib/ddr/models/event_loggable.rb
|
@@ -502,8 +501,11 @@ files:
|
|
502
501
|
- lib/ddr/models/has_struct_metadata.rb
|
503
502
|
- lib/ddr/models/has_thumbnail.rb
|
504
503
|
- lib/ddr/models/indexing.rb
|
505
|
-
- lib/ddr/models/
|
506
|
-
- lib/ddr/models/
|
504
|
+
- lib/ddr/models/licenses/admin_policy_license.rb
|
505
|
+
- lib/ddr/models/licenses/effective_license.rb
|
506
|
+
- lib/ddr/models/licenses/inherited_license.rb
|
507
|
+
- lib/ddr/models/licenses/license.rb
|
508
|
+
- lib/ddr/models/licenses/parent_license.rb
|
507
509
|
- lib/ddr/models/solr_document.rb
|
508
510
|
- lib/ddr/models/struct_div.rb
|
509
511
|
- lib/ddr/models/structure.rb
|
@@ -1,13 +0,0 @@
|
|
1
|
-
module Ddr::Models
|
2
|
-
class InheritedLicense
|
3
|
-
|
4
|
-
def self.call(obj)
|
5
|
-
if obj.respond_to?(:parent) && obj.parent
|
6
|
-
EffectiveLicense.call obj.parent
|
7
|
-
elsif obj.admin_policy && (obj.admin_policy != obj)
|
8
|
-
EffectiveLicense.call obj.admin_policy
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
|
-
end
|
13
|
-
end
|