ddr-models 2.1.0 → 2.1.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|