spotlight-dor-resources 1.1.0 → 2.0.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 +4 -4
- data/.gitignore +0 -1
- data/.rspec +2 -0
- data/.rubocop.yml +0 -2
- data/app/models/spotlight/resources/dor_harvester.rb +3 -51
- data/app/services/spotlight/resources/dor_solr_document_builder.rb +62 -0
- data/lib/spotlight/dor/resources/version.rb +1 -1
- data/spec/controllers/spotlight/resources/dor_harvester_controller_spec.rb +2 -12
- data/spec/integration/gdor_integration_spec.rb +1 -3
- data/spec/lib/spotlight/dor/indexer_spec.rb +0 -2
- data/spec/models/spotlight/resources/dor_harvester_spec.rb +22 -51
- data/spec/services/spotlight/resources/dor_solr_document_builder_spec.rb +74 -0
- data/spec/spec_helper.rb +7 -3
- data/spec/test_app_templates/lib/generators/test_app_generator.rb +5 -1
- data/spec/test_app_templates/paper_trail.rb +1 -0
- data/spotlight-dor-resources.gemspec +5 -4
- metadata +31 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: c7c9626527848a815f94b5e897c644439a4130b5
|
|
4
|
+
data.tar.gz: a5bb46bce723dbdb76d9799a06954854a588f351
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e4f617b75c4659fb64a368eddf055168af6fcac6e9a8053aa3cd0d1c8d421ddf1e6083a3ce4f313dc453b246e9d59af9e1b90667325965d5566c40ce841a5e21
|
|
7
|
+
data.tar.gz: 8aae9489098370a7ce5982813ded06b216ecc29d1b8f9d33909041a9f6dc82abcf2de25e975b6a07468acfc63b47764d7fc685df1de635095107e6289111796d
|
data/.gitignore
CHANGED
data/.rspec
ADDED
data/.rubocop.yml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
module Spotlight::Resources
|
|
2
|
-
# Base Resource
|
|
2
|
+
# Base Resource harvester for objects in DOR
|
|
3
3
|
class DorHarvester < Spotlight::Resource
|
|
4
|
-
|
|
4
|
+
self.document_builder_class = Spotlight::Resources::DorSolrDocumentBuilder
|
|
5
5
|
|
|
6
6
|
store :data, accessors: [:druid_list]
|
|
7
7
|
|
|
@@ -11,25 +11,6 @@ module Spotlight::Resources
|
|
|
11
11
|
end
|
|
12
12
|
end
|
|
13
13
|
|
|
14
|
-
##
|
|
15
|
-
# Generate solr documents for the DOR resources identified by this object
|
|
16
|
-
#
|
|
17
|
-
# @return [Enumerator] an enumerator of solr document hashes for indexing
|
|
18
|
-
def to_solr
|
|
19
|
-
return to_enum(:to_solr) { size } unless block_given?
|
|
20
|
-
|
|
21
|
-
benchmark "Indexing resource #{inspect} (est. #{size} items)" do
|
|
22
|
-
base_doc = super
|
|
23
|
-
|
|
24
|
-
indexable_resources.each_with_index do |res, idx|
|
|
25
|
-
benchmark "Indexing item #{res.druid} in resource #{id} (#{idx} / #{size})" do
|
|
26
|
-
doc = to_solr_document(res)
|
|
27
|
-
yield base_doc.merge(doc) if doc
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
|
|
33
14
|
def resources
|
|
34
15
|
@resources ||= druids.map do |d|
|
|
35
16
|
Spotlight::Dor::Resources.indexer.resource d
|
|
@@ -37,11 +18,9 @@ module Spotlight::Resources
|
|
|
37
18
|
end
|
|
38
19
|
|
|
39
20
|
def druids
|
|
40
|
-
@druids ||= druid_list.split(
|
|
21
|
+
@druids ||= druid_list.split(/\s+/).reject(&:blank?)
|
|
41
22
|
end
|
|
42
23
|
|
|
43
|
-
private
|
|
44
|
-
|
|
45
24
|
##
|
|
46
25
|
# Enumerate the resource, and any collection members, that should be indexed
|
|
47
26
|
# into this exhibit
|
|
@@ -58,32 +37,5 @@ module Spotlight::Resources
|
|
|
58
37
|
end
|
|
59
38
|
end
|
|
60
39
|
end
|
|
61
|
-
|
|
62
|
-
##
|
|
63
|
-
# Estimate the number of documents this resource will create
|
|
64
|
-
def size
|
|
65
|
-
indexable_resources.size
|
|
66
|
-
end
|
|
67
|
-
|
|
68
|
-
##
|
|
69
|
-
# Generate the solr document hash for a given resource by applying the current
|
|
70
|
-
# indexer steps.
|
|
71
|
-
#
|
|
72
|
-
# @return [Hash]
|
|
73
|
-
def to_solr_document(resource)
|
|
74
|
-
Spotlight::Dor::Resources.indexer.solr_document(resource)
|
|
75
|
-
rescue RuntimeError => e
|
|
76
|
-
logger.error("Error processing #{resource.druid}: #{e}")
|
|
77
|
-
nil
|
|
78
|
-
rescue => e
|
|
79
|
-
logger.error("Error processing #{resource.druid}: #{e}")
|
|
80
|
-
raise e
|
|
81
|
-
end
|
|
82
|
-
|
|
83
|
-
##
|
|
84
|
-
# Write any logs (or benchmarking information) from this class to the gdor logs
|
|
85
|
-
def logger
|
|
86
|
-
Spotlight::Dor::Resources.indexer.logger
|
|
87
|
-
end
|
|
88
40
|
end
|
|
89
41
|
end
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
module Spotlight
|
|
2
|
+
module Resources
|
|
3
|
+
# Base Resource indexer for objects in DOR
|
|
4
|
+
class DorSolrDocumentBuilder < Spotlight::SolrDocumentBuilder
|
|
5
|
+
include ActiveSupport::Benchmarkable
|
|
6
|
+
|
|
7
|
+
delegate :indexable_resources, to: :resource
|
|
8
|
+
|
|
9
|
+
##
|
|
10
|
+
# Generate solr documents for the DOR resources identified by this object
|
|
11
|
+
#
|
|
12
|
+
# @return [Enumerator] an enumerator of solr document hashes for indexing
|
|
13
|
+
def to_solr
|
|
14
|
+
return to_enum(:to_solr) { size } unless block_given?
|
|
15
|
+
|
|
16
|
+
benchmark "Indexing resource #{inspect} (est. #{size} items)" do
|
|
17
|
+
base_doc = super
|
|
18
|
+
|
|
19
|
+
indexable_resources.each_with_index do |res, idx|
|
|
20
|
+
benchmark "Indexing item #{res.druid} in resource #{resource_id} (#{idx} / #{size})" do
|
|
21
|
+
doc = to_solr_document(res)
|
|
22
|
+
yield base_doc.merge(doc) if doc
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
private
|
|
29
|
+
|
|
30
|
+
def resource_id
|
|
31
|
+
resource.id
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
##
|
|
35
|
+
# Estimate the number of documents this resource will create
|
|
36
|
+
def size
|
|
37
|
+
indexable_resources.size
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
##
|
|
41
|
+
# Generate the solr document hash for a given resource by applying the current
|
|
42
|
+
# indexer steps.
|
|
43
|
+
#
|
|
44
|
+
# @return [Hash]
|
|
45
|
+
def to_solr_document(resource)
|
|
46
|
+
Spotlight::Dor::Resources.indexer.solr_document(resource)
|
|
47
|
+
rescue RuntimeError => e
|
|
48
|
+
logger.error("Error processing #{resource.druid}: #{e}")
|
|
49
|
+
nil
|
|
50
|
+
rescue => e
|
|
51
|
+
logger.error("Error processing #{resource.druid}: #{e}")
|
|
52
|
+
raise e
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
##
|
|
56
|
+
# Write any logs (or benchmarking information) from this class to the gdor logs
|
|
57
|
+
def logger
|
|
58
|
+
Spotlight::Dor::Resources.indexer.logger
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
require 'spec_helper'
|
|
2
|
-
|
|
3
1
|
RSpec.describe Spotlight::Resources::DorHarvesterController, type: :controller do
|
|
4
2
|
routes { Spotlight::Dor::Resources::Engine.routes }
|
|
5
3
|
let(:resource) { double }
|
|
@@ -10,14 +8,11 @@ RSpec.describe Spotlight::Resources::DorHarvesterController, type: :controller d
|
|
|
10
8
|
before do
|
|
11
9
|
sign_in user
|
|
12
10
|
allow(Spotlight::Resources::DorHarvester).to receive(:instance).and_return(resource)
|
|
11
|
+
expect(resource).to receive(:update).with(attributes)
|
|
12
|
+
allow(resource).to receive(:save_and_index).and_return(save_status)
|
|
13
13
|
end
|
|
14
14
|
|
|
15
15
|
describe '#create' do
|
|
16
|
-
before do
|
|
17
|
-
expect(resource).to receive(:update).with(attributes)
|
|
18
|
-
allow(resource).to receive(:save_and_index).and_return(save_status)
|
|
19
|
-
end
|
|
20
|
-
|
|
21
16
|
context 'when save is successful' do
|
|
22
17
|
let(:save_status) { true }
|
|
23
18
|
|
|
@@ -40,11 +35,6 @@ RSpec.describe Spotlight::Resources::DorHarvesterController, type: :controller d
|
|
|
40
35
|
end
|
|
41
36
|
|
|
42
37
|
describe '#update' do
|
|
43
|
-
before do
|
|
44
|
-
expect(resource).to receive(:update).with(attributes)
|
|
45
|
-
allow(resource).to receive(:save_and_index).and_return(save_status)
|
|
46
|
-
end
|
|
47
|
-
|
|
48
38
|
context 'when save is successful' do
|
|
49
39
|
let(:save_status) { true }
|
|
50
40
|
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
require 'spec_helper'
|
|
2
|
-
|
|
3
1
|
describe 'gdor indexing integration test', :vcr do
|
|
4
2
|
let :exhibit do
|
|
5
3
|
double(solr_data: {}, blacklight_config: Blacklight::Configuration.new)
|
|
@@ -9,7 +7,7 @@ describe 'gdor indexing integration test', :vcr do
|
|
|
9
7
|
r = Spotlight::Resources::DorHarvester.new(druid_list: 'xf680rd3068')
|
|
10
8
|
allow(r).to receive(:to_global_id).and_return('x')
|
|
11
9
|
allow(r).to receive(:exhibit).and_return(exhibit)
|
|
12
|
-
r.to_solr.first
|
|
10
|
+
r.document_builder.to_solr.first
|
|
13
11
|
end
|
|
14
12
|
|
|
15
13
|
it 'has a doc id' do
|
|
@@ -24,8 +24,28 @@ describe Spotlight::Resources::DorHarvester do
|
|
|
24
24
|
end
|
|
25
25
|
|
|
26
26
|
describe '#druids' do
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
context 'with a single item' do
|
|
28
|
+
subject { described_class.new druid_list: 'xf680rd3068' }
|
|
29
|
+
|
|
30
|
+
it 'extracts an array of DRUIDs from the list of druids' do
|
|
31
|
+
expect(subject.druids).to match_array 'xf680rd3068'
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
context 'with multiple items' do
|
|
36
|
+
subject { described_class.new druid_list: "xf680rd3068\nxf680rd3069" }
|
|
37
|
+
|
|
38
|
+
it 'extracts an array of DRUIDs from the list of druids' do
|
|
39
|
+
expect(subject.druids).to match_array %w(xf680rd3068 xf680rd3069)
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
context 'with crazy whitespace' do
|
|
44
|
+
subject { described_class.new druid_list: "\t xf680rd3068\t\r\nxf680rd3067\t\t" }
|
|
45
|
+
|
|
46
|
+
it 'extracts an array of DRUIDs from the list of druids' do
|
|
47
|
+
expect(subject.druids).to match_array %w(xf680rd3068 xf680rd3067)
|
|
48
|
+
end
|
|
29
49
|
end
|
|
30
50
|
end
|
|
31
51
|
|
|
@@ -61,53 +81,4 @@ describe Spotlight::Resources::DorHarvester do
|
|
|
61
81
|
subject.reindex
|
|
62
82
|
end
|
|
63
83
|
end
|
|
64
|
-
|
|
65
|
-
describe '#to_solr' do
|
|
66
|
-
before do
|
|
67
|
-
allow(Spotlight::Dor::Resources.indexer).to receive(:solr_document)
|
|
68
|
-
end
|
|
69
|
-
|
|
70
|
-
context 'with a collection' do
|
|
71
|
-
before do
|
|
72
|
-
allow(resource).to receive(:collection?).and_return(true)
|
|
73
|
-
end
|
|
74
|
-
|
|
75
|
-
it 'provides a solr document for the collection' do
|
|
76
|
-
allow(resource).to receive(:items).and_return([])
|
|
77
|
-
expect(Spotlight::Dor::Resources.indexer).to receive(:solr_document).with(resource).and_return(upstream: true)
|
|
78
|
-
expect(subject.to_solr.first).to include :upstream, :spotlight_resource_id_ssim, :spotlight_resource_type_ssim
|
|
79
|
-
end
|
|
80
|
-
|
|
81
|
-
it 'provides a solr document for the items too' do
|
|
82
|
-
item = double(druid: 'xyz')
|
|
83
|
-
allow(resource).to receive(:items).and_return([item])
|
|
84
|
-
expect(Spotlight::Dor::Resources.indexer).to receive(:solr_document).with(resource).and_return(collection: true)
|
|
85
|
-
expect(Spotlight::Dor::Resources.indexer).to receive(:solr_document).with(item).and_return(item: true)
|
|
86
|
-
solr_doc = subject.to_solr.to_a
|
|
87
|
-
expect(solr_doc.first).to include :collection
|
|
88
|
-
expect(solr_doc.last).to include :item
|
|
89
|
-
end
|
|
90
|
-
|
|
91
|
-
it 'traps indexing errors' do
|
|
92
|
-
allow(resource).to receive(:items).and_return([])
|
|
93
|
-
expect(Spotlight::Dor::Resources.indexer).to receive(:solr_document).and_raise(RuntimeError.new)
|
|
94
|
-
expect { subject.to_solr.to_a }.not_to raise_error
|
|
95
|
-
end
|
|
96
|
-
|
|
97
|
-
it 'log and raises other types of errors errors' do
|
|
98
|
-
allow(resource).to receive(:items).and_return([])
|
|
99
|
-
expect(Spotlight::Dor::Resources.indexer).to receive(:solr_document).and_raise(StandardError.new)
|
|
100
|
-
expect(subject.send(:logger)).to receive(:error).with(/Error processing xf680rd3068/)
|
|
101
|
-
expect { subject.to_solr.to_a }.to raise_error StandardError
|
|
102
|
-
end
|
|
103
|
-
end
|
|
104
|
-
|
|
105
|
-
context 'with a single item' do
|
|
106
|
-
it 'provides a solr document for the resource' do
|
|
107
|
-
allow(resource).to receive(:collection?).and_return(false)
|
|
108
|
-
expect(Spotlight::Dor::Resources.indexer).to receive(:solr_document).with(resource).and_return(upstream: true)
|
|
109
|
-
expect(subject.to_solr.first).to include :upstream, :spotlight_resource_id_ssim, :spotlight_resource_type_ssim
|
|
110
|
-
end
|
|
111
|
-
end
|
|
112
|
-
end
|
|
113
84
|
end
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe Spotlight::Resources::DorSolrDocumentBuilder do
|
|
4
|
+
let(:exhibit) { FactoryGirl.create(:exhibit) }
|
|
5
|
+
|
|
6
|
+
let :blacklight_solr do
|
|
7
|
+
double
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
subject { described_class.new harvester }
|
|
11
|
+
let(:harvester) { Spotlight::Resources::DorHarvester.new druid_list: 'xf680rd3068', exhibit: exhibit }
|
|
12
|
+
|
|
13
|
+
before do
|
|
14
|
+
allow(harvester).to receive(:blacklight_solr).and_return(blacklight_solr)
|
|
15
|
+
allow(harvester).to receive(:to_global_id).and_return('x')
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
let(:resource) { harvester.resources.first }
|
|
19
|
+
|
|
20
|
+
describe '#to_solr' do
|
|
21
|
+
before do
|
|
22
|
+
allow(Spotlight::Dor::Resources.indexer).to receive(:solr_document)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
context 'with a collection' do
|
|
26
|
+
before do
|
|
27
|
+
allow(resource).to receive(:collection?).and_return(true)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
it 'provides a solr document for the collection' do
|
|
31
|
+
allow(resource).to receive(:items).and_return([])
|
|
32
|
+
expect(Spotlight::Dor::Resources.indexer).to receive(:solr_document).with(resource).and_return(upstream: true)
|
|
33
|
+
expect(subject.to_solr.first).to include :upstream, :spotlight_resource_id_ssim, :spotlight_resource_type_ssim
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
context 'with items' do
|
|
37
|
+
let(:item) { instance_double('Harvestdor::Indexer::Resource', druid: 'xyz') }
|
|
38
|
+
|
|
39
|
+
before do
|
|
40
|
+
allow(resource).to receive(:items).and_return([item])
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
it 'provides a solr document for the items too' do
|
|
44
|
+
expect(Spotlight::Dor::Resources.indexer).to receive(:solr_document).with(resource).and_return(collection: true)
|
|
45
|
+
expect(Spotlight::Dor::Resources.indexer).to receive(:solr_document).with(item).and_return(item: true)
|
|
46
|
+
solr_doc = subject.to_solr.to_a
|
|
47
|
+
expect(solr_doc.first).to include :collection
|
|
48
|
+
expect(solr_doc.last).to include :item
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
it 'traps indexing errors' do
|
|
53
|
+
allow(resource).to receive(:items).and_return([])
|
|
54
|
+
expect(Spotlight::Dor::Resources.indexer).to receive(:solr_document).and_raise(RuntimeError.new)
|
|
55
|
+
expect { subject.to_solr.to_a }.not_to raise_error
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
it 'log and raises other types of errors errors' do
|
|
59
|
+
allow(resource).to receive(:items).and_return([])
|
|
60
|
+
expect(Spotlight::Dor::Resources.indexer).to receive(:solr_document).and_raise(StandardError.new)
|
|
61
|
+
expect(subject.send(:logger)).to receive(:error).with(/Error processing xf680rd3068/)
|
|
62
|
+
expect { subject.to_solr.to_a }.to raise_error StandardError
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
context 'with a single item' do
|
|
67
|
+
it 'provides a solr document for the resource' do
|
|
68
|
+
allow(resource).to receive(:collection?).and_return(false)
|
|
69
|
+
expect(Spotlight::Dor::Resources.indexer).to receive(:solr_document).with(resource).and_return(upstream: true)
|
|
70
|
+
expect(subject.to_solr.first).to include :upstream, :spotlight_resource_id_ssim, :spotlight_resource_type_ssim
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
end
|
data/spec/spec_helper.rb
CHANGED
|
@@ -30,7 +30,6 @@ FactoryGirl.find_definitions
|
|
|
30
30
|
require 'database_cleaner'
|
|
31
31
|
require 'spotlight'
|
|
32
32
|
|
|
33
|
-
|
|
34
33
|
Dir["./spec/support/**/*.rb"].sort.each {|f| require f}
|
|
35
34
|
|
|
36
35
|
VCR.configure do |config|
|
|
@@ -56,8 +55,13 @@ RSpec.configure do |config|
|
|
|
56
55
|
DatabaseCleaner.clean
|
|
57
56
|
end
|
|
58
57
|
|
|
59
|
-
|
|
60
|
-
|
|
58
|
+
if defined? Devise::Test::ControllerHelpers
|
|
59
|
+
config.include Devise::Test::ControllerHelpers, type: :controller
|
|
60
|
+
config.include Devise::Test::ControllerHelpers, type: :view
|
|
61
|
+
else
|
|
62
|
+
config.include Devise::TestHelpers, type: :controller
|
|
63
|
+
config.include Devise::TestHelpers, type: :view
|
|
64
|
+
end
|
|
61
65
|
config.include Warden::Test::Helpers, type: :feature
|
|
62
66
|
config.after(:each, type: :feature) { Warden.test_reset! }
|
|
63
67
|
config.include Capybara::DSL
|
|
@@ -36,7 +36,11 @@ class TestAppGenerator < Rails::Generators::Base
|
|
|
36
36
|
def configure_gdor
|
|
37
37
|
copy_file 'gdor.yml', 'config/gdor.yml', force: true
|
|
38
38
|
end
|
|
39
|
-
|
|
39
|
+
|
|
40
|
+
def configure_papertrail
|
|
41
|
+
copy_file 'paper_trail.rb', 'config/initializers/paper_trail.rb'
|
|
42
|
+
end
|
|
43
|
+
|
|
40
44
|
def run_spotlight_dor_resources_generator
|
|
41
45
|
generate 'spotlight:dor:resources:install'
|
|
42
46
|
end
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
PaperTrail.config.track_associations = false
|
|
@@ -24,9 +24,9 @@ Gem::Specification.new do |spec|
|
|
|
24
24
|
spec.add_dependency 'solrizer'
|
|
25
25
|
spec.add_dependency 'gdor-indexer', '>=0.5.0' # for new pub date methods
|
|
26
26
|
# newer versions of harvestdor-indexer have performance improvements for collections
|
|
27
|
-
spec.add_dependency 'harvestdor-indexer', '~> 2.3'
|
|
27
|
+
spec.add_dependency 'harvestdor-indexer', '~> 2.3', '>= 2.3.2'
|
|
28
28
|
spec.add_dependency 'rails'
|
|
29
|
-
spec.add_dependency 'blacklight-spotlight', '~> 0.
|
|
29
|
+
spec.add_dependency 'blacklight-spotlight', '~> 0.19'
|
|
30
30
|
spec.add_dependency 'parallel'
|
|
31
31
|
spec.add_dependency 'stanford-mods', '~> 2.1'
|
|
32
32
|
spec.add_development_dependency 'bundler', '~> 1.5'
|
|
@@ -42,10 +42,11 @@ Gem::Specification.new do |spec|
|
|
|
42
42
|
spec.add_development_dependency 'exhibits_solr_conf', '~> 0.1'
|
|
43
43
|
spec.add_development_dependency 'factory_girl_rails'
|
|
44
44
|
spec.add_development_dependency 'rubocop', '~> 0.36'
|
|
45
|
+
spec.add_development_dependency 'riiif', '~> 0.4.0' # optional dependency in production
|
|
45
46
|
|
|
46
47
|
# FIXME: we shouldn't need explicit sitemap_generator dependency here as it should come with spotlight
|
|
47
48
|
# but travis fails without it (though tests run fine locally)
|
|
48
|
-
# cbeer:
|
|
49
|
-
#
|
|
49
|
+
# cbeer: "we're injecting the dependency into the host app.
|
|
50
|
+
# maybe we're just missing a `bundle install` somewhere to fix that up"
|
|
50
51
|
spec.add_development_dependency 'sitemap_generator'
|
|
51
52
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: spotlight-dor-resources
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 2.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Chris Beer
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2016-07-
|
|
11
|
+
date: 2016-07-25 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: faraday
|
|
@@ -59,6 +59,9 @@ dependencies:
|
|
|
59
59
|
- - "~>"
|
|
60
60
|
- !ruby/object:Gem::Version
|
|
61
61
|
version: '2.3'
|
|
62
|
+
- - ">="
|
|
63
|
+
- !ruby/object:Gem::Version
|
|
64
|
+
version: 2.3.2
|
|
62
65
|
type: :runtime
|
|
63
66
|
prerelease: false
|
|
64
67
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -66,6 +69,9 @@ dependencies:
|
|
|
66
69
|
- - "~>"
|
|
67
70
|
- !ruby/object:Gem::Version
|
|
68
71
|
version: '2.3'
|
|
72
|
+
- - ">="
|
|
73
|
+
- !ruby/object:Gem::Version
|
|
74
|
+
version: 2.3.2
|
|
69
75
|
- !ruby/object:Gem::Dependency
|
|
70
76
|
name: rails
|
|
71
77
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -86,14 +92,14 @@ dependencies:
|
|
|
86
92
|
requirements:
|
|
87
93
|
- - "~>"
|
|
88
94
|
- !ruby/object:Gem::Version
|
|
89
|
-
version: '0.
|
|
95
|
+
version: '0.19'
|
|
90
96
|
type: :runtime
|
|
91
97
|
prerelease: false
|
|
92
98
|
version_requirements: !ruby/object:Gem::Requirement
|
|
93
99
|
requirements:
|
|
94
100
|
- - "~>"
|
|
95
101
|
- !ruby/object:Gem::Version
|
|
96
|
-
version: '0.
|
|
102
|
+
version: '0.19'
|
|
97
103
|
- !ruby/object:Gem::Dependency
|
|
98
104
|
name: parallel
|
|
99
105
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -304,6 +310,20 @@ dependencies:
|
|
|
304
310
|
- - "~>"
|
|
305
311
|
- !ruby/object:Gem::Version
|
|
306
312
|
version: '0.36'
|
|
313
|
+
- !ruby/object:Gem::Dependency
|
|
314
|
+
name: riiif
|
|
315
|
+
requirement: !ruby/object:Gem::Requirement
|
|
316
|
+
requirements:
|
|
317
|
+
- - "~>"
|
|
318
|
+
- !ruby/object:Gem::Version
|
|
319
|
+
version: 0.4.0
|
|
320
|
+
type: :development
|
|
321
|
+
prerelease: false
|
|
322
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
323
|
+
requirements:
|
|
324
|
+
- - "~>"
|
|
325
|
+
- !ruby/object:Gem::Version
|
|
326
|
+
version: 0.4.0
|
|
307
327
|
- !ruby/object:Gem::Dependency
|
|
308
328
|
name: sitemap_generator
|
|
309
329
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -327,6 +347,7 @@ extra_rdoc_files: []
|
|
|
327
347
|
files:
|
|
328
348
|
- ".gitignore"
|
|
329
349
|
- ".hound.yml"
|
|
350
|
+
- ".rspec"
|
|
330
351
|
- ".rubocop.yml"
|
|
331
352
|
- ".rubocop_todo.yml"
|
|
332
353
|
- ".travis.yml"
|
|
@@ -336,6 +357,7 @@ files:
|
|
|
336
357
|
- Rakefile
|
|
337
358
|
- app/controllers/spotlight/resources/dor_harvester_controller.rb
|
|
338
359
|
- app/models/spotlight/resources/dor_harvester.rb
|
|
360
|
+
- app/services/spotlight/resources/dor_solr_document_builder.rb
|
|
339
361
|
- app/views/spotlight/resources/dor_harvester/_form.html.erb
|
|
340
362
|
- config/locales/spotlight-dor-resources.en.yml
|
|
341
363
|
- config/routes.rb
|
|
@@ -348,10 +370,12 @@ files:
|
|
|
348
370
|
- spec/integration/gdor_integration_spec.rb
|
|
349
371
|
- spec/lib/spotlight/dor/indexer_spec.rb
|
|
350
372
|
- spec/models/spotlight/resources/dor_harvester_spec.rb
|
|
373
|
+
- spec/services/spotlight/resources/dor_solr_document_builder_spec.rb
|
|
351
374
|
- spec/spec_helper.rb
|
|
352
375
|
- spec/test_app_templates/catalog_controller.rb
|
|
353
376
|
- spec/test_app_templates/gdor.yml
|
|
354
377
|
- spec/test_app_templates/lib/generators/test_app_generator.rb
|
|
378
|
+
- spec/test_app_templates/paper_trail.rb
|
|
355
379
|
- spec/vcr_cassettes/gdor_indexing_integration_test/has_a_doc_id.yml
|
|
356
380
|
- spec/vcr_cassettes/gdor_indexing_integration_test/has_exhibit-specific_indexing.yml
|
|
357
381
|
- spec/vcr_cassettes/gdor_indexing_integration_test/has_spotlight_data.yml
|
|
@@ -377,7 +401,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
377
401
|
version: '0'
|
|
378
402
|
requirements: []
|
|
379
403
|
rubyforge_project:
|
|
380
|
-
rubygems_version: 2.
|
|
404
|
+
rubygems_version: 2.6.4
|
|
381
405
|
signing_key:
|
|
382
406
|
specification_version: 4
|
|
383
407
|
summary: Spotlight resource indexer for DOR resources.
|
|
@@ -386,10 +410,12 @@ test_files:
|
|
|
386
410
|
- spec/integration/gdor_integration_spec.rb
|
|
387
411
|
- spec/lib/spotlight/dor/indexer_spec.rb
|
|
388
412
|
- spec/models/spotlight/resources/dor_harvester_spec.rb
|
|
413
|
+
- spec/services/spotlight/resources/dor_solr_document_builder_spec.rb
|
|
389
414
|
- spec/spec_helper.rb
|
|
390
415
|
- spec/test_app_templates/catalog_controller.rb
|
|
391
416
|
- spec/test_app_templates/gdor.yml
|
|
392
417
|
- spec/test_app_templates/lib/generators/test_app_generator.rb
|
|
418
|
+
- spec/test_app_templates/paper_trail.rb
|
|
393
419
|
- spec/vcr_cassettes/gdor_indexing_integration_test/has_a_doc_id.yml
|
|
394
420
|
- spec/vcr_cassettes/gdor_indexing_integration_test/has_exhibit-specific_indexing.yml
|
|
395
421
|
- spec/vcr_cassettes/gdor_indexing_integration_test/has_spotlight_data.yml
|