ddr-models 2.3.2 → 2.4.0.rc1

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.
Files changed (62) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +2 -3
  3. data/ddr-models.gemspec +1 -1
  4. data/lib/ddr/auth.rb +10 -6
  5. data/lib/ddr/auth/group.rb +2 -1
  6. data/lib/ddr/auth/grouper_gateway.rb +7 -6
  7. data/lib/ddr/auth/permissions.rb +2 -1
  8. data/lib/ddr/auth/roles.rb +3 -2
  9. data/lib/ddr/auth/roles/role_set.rb +3 -2
  10. data/lib/ddr/datastreams/administrative_metadata_datastream.rb +3 -0
  11. data/lib/ddr/derivatives/png_generator.rb +1 -1
  12. data/lib/ddr/index/fields.rb +11 -1
  13. data/lib/ddr/index/filter.rb +4 -3
  14. data/lib/ddr/index/legacy_license_fields.rb +0 -2
  15. data/lib/ddr/index/query_clause.rb +2 -2
  16. data/lib/ddr/index/query_value.rb +6 -3
  17. data/lib/ddr/jobs.rb +5 -1
  18. data/lib/ddr/jobs/fits_file_characterization.rb +2 -40
  19. data/lib/ddr/jobs/fixity_check.rb +13 -0
  20. data/lib/ddr/jobs/job.rb +36 -0
  21. data/lib/ddr/jobs/queue.rb +27 -0
  22. data/lib/ddr/jobs/update_index.rb +13 -0
  23. data/lib/ddr/managers/derivatives_manager.rb +21 -17
  24. data/lib/ddr/models.rb +14 -2
  25. data/lib/ddr/models/access_controllable.rb +3 -6
  26. data/lib/ddr/models/admin_set.rb +5 -3
  27. data/lib/ddr/models/base.rb +2 -3
  28. data/lib/ddr/models/contact.rb +17 -0
  29. data/lib/ddr/models/file_characterization.rb +37 -0
  30. data/lib/ddr/models/has_admin_metadata.rb +2 -1
  31. data/lib/ddr/models/has_content.rb +4 -2
  32. data/lib/ddr/models/indexing.rb +5 -0
  33. data/lib/ddr/models/licenses/license.rb +5 -3
  34. data/lib/ddr/models/solr_document.rb +1 -1
  35. data/lib/ddr/models/version.rb +1 -1
  36. data/lib/ddr/models/with_content_file.rb +37 -0
  37. data/lib/ddr/vocab/asset.rb +3 -0
  38. data/spec/derivatives/png_generator_spec.rb +7 -0
  39. data/spec/factories/test_model_factories.rb +1 -1
  40. data/spec/fixtures/arrow1rightred_e0.gif +0 -0
  41. data/spec/fixtures/bird.jpg +0 -0
  42. data/spec/index/query_value_spec.rb +33 -0
  43. data/spec/jobs/fits_file_characterization_spec.rb +8 -44
  44. data/spec/jobs/fixity_check_spec.rb +22 -0
  45. data/spec/jobs/job_spec.rb +40 -0
  46. data/spec/jobs/update_index_spec.rb +22 -0
  47. data/spec/managers/derivatives_manager_spec.rb +16 -12
  48. data/spec/models/admin_set_spec.rb +3 -3
  49. data/spec/models/contact_spec.rb +22 -0
  50. data/spec/models/effective_license_spec.rb +17 -7
  51. data/spec/models/file_characterization_spec.rb +39 -0
  52. data/spec/models/has_admin_metadata_spec.rb +8 -5
  53. data/spec/models/indexing_spec.rb +2 -0
  54. data/spec/models/license_spec.rb +3 -1
  55. data/spec/models/solr_document_spec.rb +6 -3
  56. data/spec/models/with_content_file_spec.rb +37 -0
  57. data/spec/spec_helper.rb +2 -0
  58. metadata +43 -30
  59. data/lib/ddr/contacts.rb +0 -25
  60. data/lib/ddr/index_fields.rb +0 -14
  61. data/spec/auth/ldap_gateway_spec.rb +0 -9
  62. data/spec/contacts/contacts_spec.rb +0 -26
@@ -0,0 +1,22 @@
1
+ require 'spec_helper'
2
+
3
+ module Ddr::Jobs
4
+ RSpec.describe FixityCheck do
5
+
6
+ it "should use the :fixity queue" do
7
+ expect(described_class.queue).to eq(:fixity)
8
+ end
9
+
10
+ describe ".perform" do
11
+ let!(:obj) { double(fixity_check: nil) }
12
+ before do
13
+ allow(ActiveFedora::Base).to receive(:find).with("test:1") { obj }
14
+ end
15
+ it "should call `fixity_check` on the object" do
16
+ expect(obj).to receive(:fixity_check)
17
+ described_class.perform("test:1")
18
+ end
19
+ end
20
+
21
+ end
22
+ end
@@ -0,0 +1,40 @@
1
+ module Ddr::Jobs
2
+ RSpec.describe Job do
3
+
4
+ before(:all) do
5
+ class TestJob
6
+ extend Job
7
+
8
+ @queue = :test
9
+
10
+ def perform(object_id)
11
+ puts object_id
12
+ end
13
+ end
14
+ end
15
+
16
+ after(:all) do
17
+ Ddr::Jobs.send(:remove_const, :TestJob)
18
+ end
19
+
20
+ let(:queued) do
21
+ [{"class"=>"Ddr::Jobs::TestJob", "args"=>["test-1"]},
22
+ {"class"=>"Ddr::Jobs::OtherJob", "args"=>["test-2"]},
23
+ {"class"=>"Ddr::Jobs::TestJob", "args"=>["test-3"]},
24
+ ]
25
+ end
26
+
27
+ before(:each) do
28
+ allow(Resque).to receive(:size).with(:test) { 3 }
29
+ allow(Resque).to receive(:peek).with(:test, 0, 3) { queued }
30
+ end
31
+
32
+ describe ".queued_object_ids" do
33
+ it "returns the list of object_ids for queued jobs of this type" do
34
+ expect(TestJob.queued_object_ids)
35
+ .to contain_exactly("test-1", "test-3")
36
+ end
37
+ end
38
+
39
+ end
40
+ end
@@ -0,0 +1,22 @@
1
+ require 'spec_helper'
2
+
3
+ module Ddr::Jobs
4
+ RSpec.describe UpdateIndex do
5
+
6
+ it "should use the :index queue" do
7
+ expect(described_class.queue).to eq(:index)
8
+ end
9
+
10
+ describe ".perform" do
11
+ let!(:obj) { double(update_index: nil) }
12
+ before do
13
+ allow(ActiveFedora::Base).to receive(:find).with("test:1") { obj }
14
+ end
15
+ it "should call `update_index` on the object" do
16
+ expect(obj).to receive(:update_index)
17
+ described_class.perform("test:1")
18
+ end
19
+ end
20
+
21
+ end
22
+ end
@@ -28,7 +28,7 @@ module Ddr
28
28
  context "all derivatives" do
29
29
  context "not multires_image_able" do
30
30
  let(:object) { ContentBearing.new }
31
- context "content is image" do
31
+ context "content is an image" do
32
32
  let(:file) { fixture_file_upload("imageA.tif", "image/tiff") }
33
33
  it "should generate a thumbnail and not a ptif" do
34
34
  expect(object.derivatives).to receive(:generate_derivative!).with(Ddr::Derivatives::DERIVATIVES[:thumbnail])
@@ -36,15 +36,7 @@ module Ddr
36
36
  object.derivatives.update_derivatives(:now)
37
37
  end
38
38
  end
39
- context "content is a PDF" do
40
- let(:file) { fixture_file_upload("sample.pdf", "application/pdf") }
41
- it "should generate a thumbnail and not a ptif" do
42
- expect(object.derivatives).to receive(:generate_derivative!).with(Ddr::Derivatives::DERIVATIVES[:thumbnail])
43
- expect(object.derivatives).to_not receive(:generate_derivative!).with(Ddr::Derivatives::DERIVATIVES[:multires_image])
44
- object.derivatives.update_derivatives(:now)
45
- end
46
- end
47
- context "content is neither an image nor a PDF" do
39
+ context "content is not an image" do
48
40
  let(:file) { fixture_file_upload("sample.docx", "application/vnd.openxmlformats-officedocument.wordprocessingml.document") }
49
41
  it "should generate neither a thumbnail nor a ptif" do
50
42
  expect(object.derivatives).to_not receive(:generate_derivative!).with(Ddr::Derivatives::DERIVATIVES[:thumbnail])
@@ -64,7 +56,7 @@ module Ddr
64
56
  end
65
57
  end
66
58
  context "content is not tiff image" do
67
- let(:file) { fixture_file_upload("sample.pdf", "application/pdf") }
59
+ let(:file) { fixture_file_upload("bird.jpg", "image/jpeg") }
68
60
  it "should generate a thumbnail but not a ptif" do
69
61
  expect(object.derivatives).to receive(:generate_derivative!).with(Ddr::Derivatives::DERIVATIVES[:thumbnail])
70
62
  expect(object.derivatives).to_not receive(:generate_derivative!).with(Ddr::Derivatives::DERIVATIVES[:multires_image])
@@ -85,7 +77,7 @@ module Ddr
85
77
  object.derivatives.update_derivatives(:now)
86
78
  end
87
79
  end
88
- end
80
+ end
89
81
 
90
82
  describe "derivative generation" do
91
83
  let(:file) { fixture_file_upload("imageA.tif", "image/tiff") }
@@ -120,6 +112,18 @@ end
120
112
  end
121
113
  end
122
114
 
115
+ describe "exception during derivative generation" do
116
+ let(:object) { ContentBearing.create }
117
+ before do
118
+ allow(Dir::Tmpname).to receive(:make_tmpname).with('', nil) { 'test-temp-dir' }
119
+ # simulate raising of exception during derivative generation
120
+ allow_any_instance_of(Ddr::Managers::DerivativesManager).to receive(:generate_derivative!).and_raise(StandardError)
121
+ end
122
+ it "should delete the temporary work directory" do
123
+ expect(File.exist?(File.join(Dir.tmpdir, 'test-temp-dir'))).to be false
124
+ end
125
+ end
126
+
123
127
  end
124
128
  end
125
129
  end
@@ -3,11 +3,12 @@ module Ddr::Models
3
3
 
4
4
  describe ".call" do
5
5
  subject { described_class.call(obj) }
6
+ let(:obj) { Item.new }
6
7
 
7
8
  describe "when the object has an admin set" do
8
- let(:obj) { double(admin_set: "dvs") }
9
9
  before do
10
- allow(described_class).to receive(:find).with(code: "dvs") do
10
+ obj.admin_set = "dvs"
11
+ allow(described_class).to receive(:get).with(:find, code: "dvs") do
11
12
  described_class.new("id"=>1, "code"=>"dvs", "title"=>"Data and Visualization Services", "created_at"=>"2015-09-15T16:15:58.514Z", "updated_at"=>"2015-09-15T16:15:58.514Z")
12
13
  end
13
14
  end
@@ -16,7 +17,6 @@ module Ddr::Models
16
17
  end
17
18
 
18
19
  describe "when the object does not have an admin set" do
19
- let(:obj) { double(admin_set: nil) }
20
20
  it { is_expected.to be_nil }
21
21
  end
22
22
  end
@@ -0,0 +1,22 @@
1
+ module Ddr::Models
2
+ RSpec.describe Contact do
3
+
4
+ describe ".call" do
5
+ subject { described_class.call(slug) }
6
+ let(:slug) { 'abc' }
7
+
8
+ before do
9
+ allow(described_class).to receive(:get).with(:find, slug: slug) do
10
+ described_class.new(
11
+ "id"=>1, "slug"=>"abc", "name"=>"A, B, and C Services", "short_name"=>"ABCS",
12
+ "url"=>"http://library.inst.edu/abc", "phone"=>"555-1234", "email"=>"abc@library.inst.edu",
13
+ "ask"=>"http://library.inst.edu/abc-ask", "created_at"=>"2015-09-15T16:15:58.514Z",
14
+ "updated_at"=>"2015-09-15T16:15:58.514Z")
15
+ end
16
+ end
17
+
18
+ its(:to_s) { is_expected.to eq("A, B, and C Services") }
19
+ end
20
+
21
+ end
22
+ end
@@ -6,34 +6,41 @@ module Ddr::Models
6
6
  let(:url) { "https://creativecommons.org/licenses/by-nc-nd/4.0/" }
7
7
 
8
8
  let(:license) { License.new(url: url) }
9
- before { allow(License).to receive(:find).with(url: url) { license } }
10
9
 
11
- let(:obj) { double(pid: "test:1", id: "test:1", license: nil, parent: nil, admin_policy: nil, admin_policy_id: nil) }
10
+ let(:obj) { Component.new(pid: "test:1") }
11
+ let(:parent) { Item.new(pid: "test:2") }
12
+ let(:admin_policy) { Collection.new(pid: "test:3") }
12
13
 
13
14
  describe "when the object has a license" do
14
- before { allow(obj).to receive(:license) { url } }
15
+ before do
16
+ allow(License).to receive(:call).with(obj) { license }
17
+ end
15
18
  it { is_expected.to eq(license) }
16
19
  end
17
20
 
18
21
  describe "when the object does not have a license" do
22
+ before do
23
+ allow(License).to receive(:call).with(obj) { nil }
24
+ end
19
25
  describe "and the object has a parent" do
20
- let(:parent) { double(pid: "test:2", license: nil) }
21
26
  before do
22
27
  allow(obj).to receive(:parent) { parent }
23
28
  end
24
29
  describe "and the parent has a license" do
25
30
  before do
26
- allow(parent).to receive(:license) { url }
31
+ allow(License).to receive(:call).with(parent) { license }
27
32
  end
28
33
  it { is_expected.to eq(license) }
29
34
  end
30
35
  describe "and the parent does not have a license" do
36
+ before do
37
+ allow(License).to receive(:call).with(parent) { nil }
38
+ end
31
39
  it { is_expected.to be_nil }
32
40
  end
33
41
  end
34
42
  describe "and the object does not have a parent" do
35
43
  describe "and the object has an admin policy" do
36
- let(:admin_policy) { double(pid: "test:3", id: "test:3", license: nil) }
37
44
  before { allow(obj).to receive(:admin_policy) { admin_policy } }
38
45
  describe "and the admin policy has a different id from the object" do
39
46
  before do
@@ -41,11 +48,14 @@ module Ddr::Models
41
48
  end
42
49
  describe "and the admin policy has a license" do
43
50
  before do
44
- allow(admin_policy).to receive(:license) { url }
51
+ allow(License).to receive(:call).with(admin_policy) { license }
45
52
  end
46
53
  it { is_expected.to eq(license) }
47
54
  end
48
55
  describe "and the admin policy does not have a license" do
56
+ before do
57
+ allow(License).to receive(:call).with(admin_policy) { nil }
58
+ end
49
59
  it { is_expected.to be_nil }
50
60
  end
51
61
  end
@@ -0,0 +1,39 @@
1
+ module Ddr::Models
2
+ RSpec.describe FileCharacterization do
3
+
4
+ subject { described_class.new(obj) }
5
+
6
+ before {
7
+ obj.content.checksumType = "SHA-1"
8
+ obj.save!
9
+ }
10
+
11
+ let(:obj) { FactoryGirl.create(:component) }
12
+ let(:fits_output) { "<fits/>" }
13
+
14
+ describe "when there is an error running FITS" do
15
+ before {
16
+ allow(subject).to receive(:run_fits).and_raise(FileCharacterization::FITSError)
17
+ }
18
+ specify {
19
+ begin
20
+ subject.call
21
+ rescue FileCharacterization::FITSError
22
+ ensure
23
+ expect(subject.fits).not_to have_content
24
+ end
25
+ }
26
+ end
27
+
28
+ describe "when FITS runs successfully" do
29
+ before {
30
+ allow(subject).to receive(:run_fits) { fits_output }
31
+ }
32
+ specify {
33
+ subject.call
34
+ expect(subject.fits.content).to eq(fits_output)
35
+ }
36
+ end
37
+
38
+ end
39
+ end
@@ -178,14 +178,17 @@ module Ddr::Models
178
178
 
179
179
  describe "contacts" do
180
180
  before do
181
- allow(YAML).to receive(:load_file) { { 'a' => { 'name' => 'Contact A', 'short_name' => 'A' },
182
- 'b' => { 'name' => 'Contact B', 'short_name' => 'B' } } }
183
- Ddr::Contacts.load_contacts
181
+ allow(Ddr::Models::Contact).to receive(:get).with(:find, slug: 'xa') do
182
+ Ddr::Models::Contact.new('id'=>1, 'slug'=>'xa', 'name'=>'Contact A', 'short_name'=>'A')
183
+ end
184
+ allow(Ddr::Models::Contact).to receive(:get).with(:find, slug: 'yb') do
185
+ Ddr::Models::Contact.new('id'=>1, 'slug'=>'yb', 'name'=>'Contact B', 'short_name'=>'B')
186
+ end
184
187
  end
185
188
  describe "#research_help" do
186
- before { subject.research_help_contact = 'b' }
189
+ before { subject.research_help_contact = 'yb' }
187
190
  it "should return the appropriate contact" do
188
- expect(subject.research_help.slug).to eq('b')
191
+ expect(subject.research_help.slug).to eq('yb')
189
192
  end
190
193
  end
191
194
  end
@@ -21,6 +21,7 @@ module Ddr::Models
21
21
  obj.permanent_url = "http://id.library.duke.edu/ark:/99999/fk4zzz"
22
22
  obj.display_format = "Image"
23
23
  obj.roles.grant role1, role2, role3, role4
24
+ obj.aspace_id = "aspace_dccea43034e1b8261e14cf999e86449d"
24
25
  end
25
26
 
26
27
  its([Indexing::LICENSE]) { is_expected.to eq("cc-by-nc-nd-40") }
@@ -35,6 +36,7 @@ module Ddr::Models
35
36
  its([Indexing::ACCESS_ROLE]) { is_expected.to eq(obj.roles.to_json) }
36
37
  its([Indexing::POLICY_ROLE]) { is_expected.to contain_exactly(role2.agent.first, role3.agent.first, role4.agent.first) }
37
38
  its([Indexing::RESOURCE_ROLE]) { is_expected.to contain_exactly(role1.agent.first) }
39
+ its([Indexing::ASPACE_ID]) { is_expected.to eq("aspace_dccea43034e1b8261e14cf999e86449d") }
38
40
 
39
41
  end
40
42
  end
@@ -8,7 +8,9 @@ module Ddr::Models
8
8
  let(:url) { "http://example.com" }
9
9
  let(:obj) { double(pid: "test:1", license: url) }
10
10
  before do
11
- allow(described_class).to receive(:find).with(url: url) { described_class.new(url: url, title: "A License") }
11
+ allow(described_class).to receive(:get).with(:find, url: url) do
12
+ described_class.new(url: url, title: "A License")
13
+ end
12
14
  end
13
15
  its(:pid) { is_expected.to eq("test:1") }
14
16
  its(:to_s) { is_expected.to eq("A License") }
@@ -128,9 +128,12 @@ RSpec.describe SolrDocument, type: :model, contacts: true do
128
128
 
129
129
  describe "contacts" do
130
130
  before do
131
- allow(YAML).to receive(:load_file) { { 'xa' => { 'name' => 'Contact A', 'short_name' => 'A' },
132
- 'yb' => { 'name' => 'Contact B', 'short_name' => 'B' } } }
133
- Ddr::Contacts.load_contacts
131
+ allow(Ddr::Models::Contact).to receive(:get).with(:find, slug: 'xa') do
132
+ Ddr::Models::Contact.new('id'=>1, 'slug'=>'xa', 'name'=>'Contact A', 'short_name'=>'A')
133
+ end
134
+ allow(Ddr::Models::Contact).to receive(:get).with(:find, slug: 'yb') do
135
+ Ddr::Models::Contact.new('id'=>1, 'slug'=>'yb', 'name'=>'Contact B', 'short_name'=>'B')
136
+ end
134
137
  end
135
138
  describe "#research_help" do
136
139
  context "object has research help contact" do
@@ -0,0 +1,37 @@
1
+ module Ddr::Models
2
+ RSpec.describe WithContentFile do
3
+
4
+ let(:obj) { FactoryGirl.create(:component) }
5
+
6
+ before {
7
+ obj.content.checksumType = "SHA-1"
8
+ obj.save!
9
+ }
10
+
11
+ it "yields a temp file path to the block and deletes the temp file afterwards" do
12
+ WithContentFile.new(obj) do |path|
13
+ @path = path
14
+ expect(File.exist?(path)).to be true
15
+ end
16
+ expect(File.exist?(@path)).to be false
17
+ end
18
+
19
+ it "deletes the temp file even when an exception is raised in the block" do
20
+ begin
21
+ WithContentFile.new(obj) do |path|
22
+ @path = path
23
+ expect(File.exist?(path)).to be true
24
+ raise Error, "error"
25
+ end
26
+ rescue Error
27
+ expect(File.exist?(@path)).to be false
28
+ end
29
+ end
30
+
31
+ it "raises an exception when the checksum verification fails" do
32
+ allow(obj.content).to receive(:checksum) { "foo" }
33
+ expect { WithContentFile.new(obj) { |p| nil } }.to raise_error(ChecksumInvalid)
34
+ end
35
+
36
+ end
37
+ end
@@ -1,5 +1,7 @@
1
1
  ENV['RAILS_ENV'] ||= "test"
2
2
 
3
+ ENV['DDR_AUX_API_URL'] ||= "http://localhost:3000/api"
4
+
3
5
  require File.expand_path("../dummy/config/environment.rb", __FILE__)
4
6
 
5
7
  require "ddr-models"
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.3.2
4
+ version: 2.4.0.rc1
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-01 00:00:00.000000000 Z
12
+ date: 2015-12-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -25,6 +25,20 @@ dependencies:
25
25
  - - "~>"
26
26
  - !ruby/object:Gem::Version
27
27
  version: 4.1.6
28
+ - !ruby/object:Gem::Dependency
29
+ name: activeresource
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ version: '0'
28
42
  - !ruby/object:Gem::Dependency
29
43
  name: active-fedora
30
44
  requirement: !ruby/object:Gem::Requirement
@@ -185,26 +199,6 @@ dependencies:
185
199
  - - "~>"
186
200
  - !ruby/object:Gem::Version
187
201
  version: '1.12'
188
- - !ruby/object:Gem::Dependency
189
- name: ddr-aux-client
190
- requirement: !ruby/object:Gem::Requirement
191
- requirements:
192
- - - "~>"
193
- - !ruby/object:Gem::Version
194
- version: '1.2'
195
- - - ">="
196
- - !ruby/object:Gem::Version
197
- version: 1.2.2
198
- type: :runtime
199
- prerelease: false
200
- version_requirements: !ruby/object:Gem::Requirement
201
- requirements:
202
- - - "~>"
203
- - !ruby/object:Gem::Version
204
- version: '1.2'
205
- - - ">="
206
- - !ruby/object:Gem::Version
207
- version: 1.2.2
208
202
  - !ruby/object:Gem::Dependency
209
203
  name: ddr-antivirus
210
204
  requirement: !ruby/object:Gem::Requirement
@@ -428,7 +422,6 @@ files:
428
422
  - lib/ddr/auth/test_helpers.rb
429
423
  - lib/ddr/auth/user.rb
430
424
  - lib/ddr/auth/web_auth_context.rb
431
- - lib/ddr/contacts.rb
432
425
  - lib/ddr/datastreams.rb
433
426
  - lib/ddr/datastreams/administrative_metadata_datastream.rb
434
427
  - lib/ddr/datastreams/datastream_behavior.rb
@@ -469,10 +462,13 @@ files:
469
462
  - lib/ddr/index/query_value.rb
470
463
  - lib/ddr/index/response.rb
471
464
  - lib/ddr/index/unique_key_field.rb
472
- - lib/ddr/index_fields.rb
473
465
  - lib/ddr/jobs.rb
474
466
  - lib/ddr/jobs/fits_file_characterization.rb
467
+ - lib/ddr/jobs/fixity_check.rb
468
+ - lib/ddr/jobs/job.rb
475
469
  - lib/ddr/jobs/permanent_id.rb
470
+ - lib/ddr/jobs/queue.rb
471
+ - lib/ddr/jobs/update_index.rb
476
472
  - lib/ddr/managers.rb
477
473
  - lib/ddr/managers/derivatives_manager.rb
478
474
  - lib/ddr/managers/manager.rb
@@ -485,10 +481,12 @@ files:
485
481
  - lib/ddr/models/access_controllable.rb
486
482
  - lib/ddr/models/admin_set.rb
487
483
  - lib/ddr/models/base.rb
484
+ - lib/ddr/models/contact.rb
488
485
  - lib/ddr/models/describable.rb
489
486
  - lib/ddr/models/engine.rb
490
487
  - lib/ddr/models/error.rb
491
488
  - lib/ddr/models/event_loggable.rb
489
+ - lib/ddr/models/file_characterization.rb
492
490
  - lib/ddr/models/file_management.rb
493
491
  - lib/ddr/models/finding_aid.rb
494
492
  - lib/ddr/models/fixity_checkable.rb
@@ -510,6 +508,7 @@ files:
510
508
  - lib/ddr/models/struct_div.rb
511
509
  - lib/ddr/models/structure.rb
512
510
  - lib/ddr/models/version.rb
511
+ - lib/ddr/models/with_content_file.rb
513
512
  - lib/ddr/models/year_facet.rb
514
513
  - lib/ddr/notifications.rb
515
514
  - lib/ddr/utils.rb
@@ -531,7 +530,6 @@ files:
531
530
  - spec/auth/effective_roles_spec.rb
532
531
  - spec/auth/group_spec.rb
533
532
  - spec/auth/groups_spec.rb
534
- - spec/auth/ldap_gateway_spec.rb
535
533
  - spec/auth/legacy_default_permissions_spec.rb
536
534
  - spec/auth/legacy_permissions_spec.rb
537
535
  - spec/auth/roles/detached_role_set_spec.rb
@@ -542,7 +540,6 @@ files:
542
540
  - spec/auth/superuser_ability_spec.rb
543
541
  - spec/auth/user_spec.rb
544
542
  - spec/auth/web_auth_context_spec.rb
545
- - spec/contacts/contacts_spec.rb
546
543
  - spec/controllers/application_controller_spec.rb
547
544
  - spec/controllers/including_role_based_access_controls_enforcement_spec.rb
548
545
  - spec/controllers/users/sessions_controller_spec.rb
@@ -607,6 +604,8 @@ files:
607
604
  - spec/factories/user_factories.rb
608
605
  - spec/fixtures/16bit.tif
609
606
  - spec/fixtures/8bit.tif
607
+ - spec/fixtures/arrow1rightred_e0.gif
608
+ - spec/fixtures/bird.jpg
610
609
  - spec/fixtures/fits/document.xml
611
610
  - spec/fixtures/fits/image.xml
612
611
  - spec/fixtures/imageA.tif
@@ -619,7 +618,11 @@ files:
619
618
  - spec/index/filter_spec.rb
620
619
  - spec/index/filters_spec.rb
621
620
  - spec/index/query_spec.rb
621
+ - spec/index/query_value_spec.rb
622
622
  - spec/jobs/fits_file_characterization_spec.rb
623
+ - spec/jobs/fixity_check_spec.rb
624
+ - spec/jobs/job_spec.rb
625
+ - spec/jobs/update_index_spec.rb
623
626
  - spec/managers/derivatives_manager_spec.rb
624
627
  - spec/managers/technical_metadata_manager_spec.rb
625
628
  - spec/models/active_fedora_base_spec.rb
@@ -628,9 +631,11 @@ files:
628
631
  - spec/models/attachment_spec.rb
629
632
  - spec/models/collection_spec.rb
630
633
  - spec/models/component_spec.rb
634
+ - spec/models/contact_spec.rb
631
635
  - spec/models/descriptive_metadata_datastream_spec.rb
632
636
  - spec/models/effective_license_spec.rb
633
637
  - spec/models/events_spec.rb
638
+ - spec/models/file_characterization_spec.rb
634
639
  - spec/models/file_management_spec.rb
635
640
  - spec/models/finding_aid_spec.rb
636
641
  - spec/models/has_admin_metadata_spec.rb
@@ -643,6 +648,7 @@ files:
643
648
  - spec/models/struct_div_spec.rb
644
649
  - spec/models/structure_spec.rb
645
650
  - spec/models/target_spec.rb
651
+ - spec/models/with_content_file_spec.rb
646
652
  - spec/models/year_facet_spec.rb
647
653
  - spec/routing/user_routing_spec.rb
648
654
  - spec/spec_helper.rb
@@ -676,9 +682,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
676
682
  version: '0'
677
683
  required_rubygems_version: !ruby/object:Gem::Requirement
678
684
  requirements:
679
- - - ">="
685
+ - - ">"
680
686
  - !ruby/object:Gem::Version
681
- version: '0'
687
+ version: 1.3.1
682
688
  requirements: []
683
689
  rubyforge_project:
684
690
  rubygems_version: 2.2.2
@@ -695,7 +701,6 @@ test_files:
695
701
  - spec/auth/effective_roles_spec.rb
696
702
  - spec/auth/group_spec.rb
697
703
  - spec/auth/groups_spec.rb
698
- - spec/auth/ldap_gateway_spec.rb
699
704
  - spec/auth/legacy_default_permissions_spec.rb
700
705
  - spec/auth/legacy_permissions_spec.rb
701
706
  - spec/auth/roles/detached_role_set_spec.rb
@@ -706,7 +711,6 @@ test_files:
706
711
  - spec/auth/superuser_ability_spec.rb
707
712
  - spec/auth/user_spec.rb
708
713
  - spec/auth/web_auth_context_spec.rb
709
- - spec/contacts/contacts_spec.rb
710
714
  - spec/controllers/application_controller_spec.rb
711
715
  - spec/controllers/including_role_based_access_controls_enforcement_spec.rb
712
716
  - spec/controllers/users/sessions_controller_spec.rb
@@ -771,6 +775,8 @@ test_files:
771
775
  - spec/factories/user_factories.rb
772
776
  - spec/fixtures/16bit.tif
773
777
  - spec/fixtures/8bit.tif
778
+ - spec/fixtures/arrow1rightred_e0.gif
779
+ - spec/fixtures/bird.jpg
774
780
  - spec/fixtures/fits/document.xml
775
781
  - spec/fixtures/fits/image.xml
776
782
  - spec/fixtures/imageA.tif
@@ -783,7 +789,11 @@ test_files:
783
789
  - spec/index/filter_spec.rb
784
790
  - spec/index/filters_spec.rb
785
791
  - spec/index/query_spec.rb
792
+ - spec/index/query_value_spec.rb
786
793
  - spec/jobs/fits_file_characterization_spec.rb
794
+ - spec/jobs/fixity_check_spec.rb
795
+ - spec/jobs/job_spec.rb
796
+ - spec/jobs/update_index_spec.rb
787
797
  - spec/managers/derivatives_manager_spec.rb
788
798
  - spec/managers/technical_metadata_manager_spec.rb
789
799
  - spec/models/active_fedora_base_spec.rb
@@ -792,9 +802,11 @@ test_files:
792
802
  - spec/models/attachment_spec.rb
793
803
  - spec/models/collection_spec.rb
794
804
  - spec/models/component_spec.rb
805
+ - spec/models/contact_spec.rb
795
806
  - spec/models/descriptive_metadata_datastream_spec.rb
796
807
  - spec/models/effective_license_spec.rb
797
808
  - spec/models/events_spec.rb
809
+ - spec/models/file_characterization_spec.rb
798
810
  - spec/models/file_management_spec.rb
799
811
  - spec/models/finding_aid_spec.rb
800
812
  - spec/models/has_admin_metadata_spec.rb
@@ -807,6 +819,7 @@ test_files:
807
819
  - spec/models/struct_div_spec.rb
808
820
  - spec/models/structure_spec.rb
809
821
  - spec/models/target_spec.rb
822
+ - spec/models/with_content_file_spec.rb
810
823
  - spec/models/year_facet_spec.rb
811
824
  - spec/routing/user_routing_spec.rb
812
825
  - spec/spec_helper.rb