spotlight-dor-resources 1.0.1 → 1.1.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/.rubocop_todo.yml +24 -2
- data/.travis.yml +4 -2
- data/Gemfile +18 -9
- data/README.md +2 -4
- data/Rakefile +8 -12
- data/app/controllers/spotlight/resources/dor_harvester_controller.rb +2 -11
- data/lib/spotlight/dor/resources/version.rb +1 -1
- data/spec/controllers/spotlight/resources/dor_harvester_controller_spec.rb +68 -0
- data/spec/spec_helper.rb +15 -12
- data/spec/test_app_templates/lib/generators/test_app_generator.rb +1 -1
- data/spotlight-dor-resources.gemspec +3 -3
- metadata +12 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 182216d0851743e3b7309ddc05271a0ba7c16cea
|
4
|
+
data.tar.gz: 21bf71fe88cb1e52a766404f60476519eddbe6f9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bd1fd4bfe26544a6e344d0195abb4c74bc8ced7cc8bf70e7a910926c08e48ed8928a90cf1429dab4c7022398d2f149ad6cbf483fad54a0a34681abb0dbd94f6a
|
7
|
+
data.tar.gz: 4fa9a09684202c7894f99f00cfb5bb2c10c7db5475c8adf3b19a257ce1e1d442228db2ea753d2746af52b50cb580f1961939376b5ec6218210802f8de702c7bd
|
data/.rubocop_todo.yml
CHANGED
@@ -1,3 +1,25 @@
|
|
1
|
+
# This configuration was generated by
|
2
|
+
# `rubocop --auto-gen-config`
|
3
|
+
# on 2016-07-07 21:30:11 -0500 using RuboCop version 0.41.2.
|
4
|
+
# The point is for the user to remove these configuration records
|
5
|
+
# one by one as the offenses are removed from the code base.
|
6
|
+
# Note that changes in the inspected code, or installation of new
|
7
|
+
# versions of RuboCop, may require this file to be generated again.
|
1
8
|
|
2
|
-
|
3
|
-
|
9
|
+
# Offense count: 1
|
10
|
+
Lint/UselessAccessModifier:
|
11
|
+
Exclude:
|
12
|
+
- 'lib/spotlight/dor/indexer.rb'
|
13
|
+
|
14
|
+
# Offense count: 7
|
15
|
+
# Configuration parameters: Max.
|
16
|
+
RSpec/ExampleLength:
|
17
|
+
Exclude:
|
18
|
+
- 'spec/lib/spotlight/dor/indexer_spec.rb'
|
19
|
+
- 'spec/models/spotlight/resources/dor_harvester_spec.rb'
|
20
|
+
|
21
|
+
# Offense count: 2
|
22
|
+
RSpec/VerifiedDoubles:
|
23
|
+
Exclude:
|
24
|
+
- 'spec/integration/gdor_integration_spec.rb'
|
25
|
+
- 'spec/models/spotlight/resources/dor_harvester_spec.rb'
|
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
@@ -13,10 +13,10 @@ group :test do
|
|
13
13
|
end
|
14
14
|
|
15
15
|
# BEGIN ENGINE_CART BLOCK
|
16
|
-
# engine_cart: 0.
|
17
|
-
# engine_cart stanza: 0.
|
16
|
+
# engine_cart: 0.10.0
|
17
|
+
# engine_cart stanza: 0.10.0
|
18
18
|
# the below comes from engine_cart, a gem used to test this Rails engine gem in the context of a Rails app.
|
19
|
-
file = File.expand_path(
|
19
|
+
file = File.expand_path('Gemfile', ENV['ENGINE_CART_DESTINATION'] || ENV['RAILS_ROOT'] || File.expand_path('.internal_test_app', File.dirname(__FILE__)))
|
20
20
|
if File.exist?(file)
|
21
21
|
begin
|
22
22
|
eval_gemfile file
|
@@ -27,13 +27,22 @@ if File.exist?(file)
|
|
27
27
|
else
|
28
28
|
Bundler.ui.warn "[EngineCart] Unable to find test application dependencies in #{file}, using placeholder dependencies"
|
29
29
|
|
30
|
-
|
30
|
+
if ENV['RAILS_VERSION']
|
31
|
+
if ENV['RAILS_VERSION'] == 'edge'
|
32
|
+
gem 'rails', github: 'rails/rails'
|
33
|
+
ENV['ENGINE_CART_RAILS_OPTIONS'] = '--edge --skip-turbolinks'
|
34
|
+
else
|
35
|
+
gem 'rails', ENV['RAILS_VERSION']
|
36
|
+
end
|
37
|
+
end
|
31
38
|
|
32
|
-
|
33
|
-
|
34
|
-
gem '
|
35
|
-
|
36
|
-
gem '
|
39
|
+
case ENV['RAILS_VERSION']
|
40
|
+
when /^4.2/
|
41
|
+
gem 'responders', '~> 2.0'
|
42
|
+
gem 'sass-rails', '>= 5.0'
|
43
|
+
gem 'coffee-rails', '~> 4.1.0'
|
44
|
+
when /^4.[01]/
|
45
|
+
gem 'sass-rails', '< 5.0'
|
37
46
|
end
|
38
47
|
end
|
39
48
|
# END ENGINE_CART BLOCK
|
data/README.md
CHANGED
@@ -25,7 +25,7 @@ Within a Spotlight application with `spotlight-dor-resources` installed, you cou
|
|
25
25
|
Note that Spotlight:
|
26
26
|
|
27
27
|
* is a Rails engine and needs to be used in the context of a Rails application. We use [engine_cart](https://github.com/cbeer/engine_cart) to create an internal test application at .internal_test_app.
|
28
|
-
* uses Solr as part of its integration tests. We use [
|
28
|
+
* uses Solr as part of its integration tests. We use [solr_wrapper](https://github.com/cbeer/solr_wrapper) to manage the Solr instance used for development and test.
|
29
29
|
|
30
30
|
Our `$ rake ci` task utilizes Solr and the testing rails app, with Spotlight installed, automatically.
|
31
31
|
|
@@ -40,9 +40,7 @@ This will download a test jetty instance (to run Solr), generate a testing app a
|
|
40
40
|
|
41
41
|
### Indexing with the generated test app
|
42
42
|
|
43
|
-
$
|
44
|
-
$ rake jetty:clean
|
45
|
-
$ rake jetty:start
|
43
|
+
$ solr_wrapper
|
46
44
|
$ bundle exec rake engine_cart:console
|
47
45
|
|
48
46
|
```ruby
|
data/Rakefile
CHANGED
@@ -4,8 +4,6 @@ rescue LoadError
|
|
4
4
|
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
|
5
5
|
end
|
6
6
|
|
7
|
-
ZIP_URL = 'https://github.com/projectblacklight/blacklight-jetty/archive/v4.10.4.zip'
|
8
|
-
|
9
7
|
Bundler::GemHelper.install_tasks
|
10
8
|
|
11
9
|
task default: [:ci, :rubocop]
|
@@ -16,19 +14,17 @@ RSpec::Core::RakeTask.new(:spec)
|
|
16
14
|
require 'rubocop/rake_task'
|
17
15
|
RuboCop::RakeTask.new(:rubocop)
|
18
16
|
|
19
|
-
require 'jettywrapper'
|
20
17
|
require 'engine_cart/rake_task'
|
21
|
-
require 'exhibits_solr_conf'
|
22
18
|
desc 'Run tests in generated test Rails app with generated Solr instance running'
|
23
|
-
task ci: ['engine_cart:generate'
|
19
|
+
task ci: ['engine_cart:generate'] do
|
20
|
+
require 'solr_wrapper'
|
21
|
+
require 'exhibits_solr_conf'
|
24
22
|
ENV['environment'] = 'test'
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
# run the tests
|
31
|
-
Rake::Task['spec'].invoke
|
23
|
+
SolrWrapper.wrap(port: '8983') do |solr|
|
24
|
+
solr.with_collection(name: 'blacklight-core', dir: ExhibitsSolrConf.path) do
|
25
|
+
# run the tests
|
26
|
+
Rake::Task['spec'].invoke
|
27
|
+
end
|
32
28
|
end
|
33
29
|
end
|
34
30
|
|
@@ -12,21 +12,12 @@ module Spotlight::Resources
|
|
12
12
|
@resource.update(resource_params)
|
13
13
|
|
14
14
|
if @resource.save_and_index
|
15
|
-
redirect_to spotlight.
|
16
|
-
else
|
17
|
-
redirect_to spotlight.new_exhibit_resource_path(current_exhibit)
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
def update
|
22
|
-
@resource.update(resource_params)
|
23
|
-
|
24
|
-
if @resource.save_and_index
|
25
|
-
redirect_to spotlight.admin_exhibit_catalog_index_path(current_exhibit)
|
15
|
+
redirect_to spotlight.admin_exhibit_catalog_path(current_exhibit)
|
26
16
|
else
|
27
17
|
redirect_to spotlight.new_exhibit_resource_path(current_exhibit)
|
28
18
|
end
|
29
19
|
end
|
20
|
+
alias update create
|
30
21
|
|
31
22
|
private
|
32
23
|
|
@@ -0,0 +1,68 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe Spotlight::Resources::DorHarvesterController, type: :controller do
|
4
|
+
routes { Spotlight::Dor::Resources::Engine.routes }
|
5
|
+
let(:resource) { double }
|
6
|
+
let(:exhibit) { FactoryGirl.create(:exhibit) }
|
7
|
+
let(:user) { FactoryGirl.create(:exhibit_admin, exhibit: exhibit) }
|
8
|
+
let(:attributes) { { druid_list: '' } }
|
9
|
+
|
10
|
+
before do
|
11
|
+
sign_in user
|
12
|
+
allow(Spotlight::Resources::DorHarvester).to receive(:instance).and_return(resource)
|
13
|
+
end
|
14
|
+
|
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
|
+
context 'when save is successful' do
|
22
|
+
let(:save_status) { true }
|
23
|
+
|
24
|
+
it 'goes to the exhibit' do
|
25
|
+
post :create, exhibit_id: exhibit.id, resources_dor_harvester: attributes
|
26
|
+
|
27
|
+
expect(response).to redirect_to Spotlight::Engine.routes.url_helpers.admin_exhibit_catalog_path(exhibit)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
context 'when save is unsuccessful' do
|
32
|
+
let(:save_status) { false }
|
33
|
+
|
34
|
+
it 'goes to the exhibit' do
|
35
|
+
post :create, exhibit_id: exhibit.id, resources_dor_harvester: attributes
|
36
|
+
|
37
|
+
expect(response).to redirect_to Spotlight::Engine.routes.url_helpers.new_exhibit_resource_path(exhibit)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
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
|
+
context 'when save is successful' do
|
49
|
+
let(:save_status) { true }
|
50
|
+
|
51
|
+
it 'goes to the exhibit' do
|
52
|
+
patch :update, exhibit_id: exhibit.id, resources_dor_harvester: attributes
|
53
|
+
|
54
|
+
expect(response).to redirect_to Spotlight::Engine.routes.url_helpers.admin_exhibit_catalog_path(exhibit)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
context 'when save is unsuccessful' do
|
59
|
+
let(:save_status) { false }
|
60
|
+
|
61
|
+
it 'goes to the exhibit' do
|
62
|
+
patch :update, exhibit_id: exhibit.id, resources_dor_harvester: attributes
|
63
|
+
|
64
|
+
expect(response).to redirect_to Spotlight::Engine.routes.url_helpers.new_exhibit_resource_path(exhibit)
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -3,28 +3,31 @@ ENV["RAILS_ENV"] ||= 'test'
|
|
3
3
|
require 'devise'
|
4
4
|
require 'engine_cart'
|
5
5
|
require 'vcr'
|
6
|
+
|
7
|
+
if ENV["COVERAGE"] or ENV["CI"]
|
8
|
+
require 'simplecov'
|
9
|
+
require 'coveralls' if ENV["CI"]
|
10
|
+
|
11
|
+
SimpleCov.root(File.expand_path('../..', __FILE__))
|
12
|
+
SimpleCov.formatter = Coveralls::SimpleCov::Formatter if ENV["CI"]
|
13
|
+
SimpleCov.start('rails') do
|
14
|
+
add_filter '/.internal_test_app'
|
15
|
+
add_filter '/lib/generators'
|
16
|
+
add_filter '/spec'
|
17
|
+
end
|
18
|
+
SimpleCov.command_name 'spec'
|
19
|
+
end
|
20
|
+
|
6
21
|
EngineCart.load_application!
|
7
22
|
|
8
23
|
require 'rspec/rails'
|
9
24
|
require 'capybara'
|
10
|
-
|
11
25
|
require 'factory_girl_rails'
|
12
26
|
FactoryGirl.definition_file_paths ||= []
|
13
27
|
FactoryGirl.definition_file_paths << "#{Gem.loaded_specs['blacklight-spotlight'].full_gem_path}/spec/factories"
|
14
28
|
FactoryGirl.find_definitions
|
15
29
|
|
16
30
|
require 'database_cleaner'
|
17
|
-
|
18
|
-
if ENV["COVERAGE"] or ENV["CI"]
|
19
|
-
require 'simplecov'
|
20
|
-
require 'coveralls' if ENV["CI"]
|
21
|
-
|
22
|
-
SimpleCov.formatter = Coveralls::SimpleCov::Formatter if ENV["CI"]
|
23
|
-
SimpleCov.start do
|
24
|
-
add_filter "/spec/"
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
31
|
require 'spotlight'
|
29
32
|
|
30
33
|
|
@@ -12,7 +12,7 @@ class TestAppGenerator < Rails::Generators::Base
|
|
12
12
|
|
13
13
|
def run_blacklight_generator
|
14
14
|
say_status('warning', 'GENERATING BL', :yellow)
|
15
|
-
generate 'blacklight:install', '--devise
|
15
|
+
generate 'blacklight:install', '--devise'
|
16
16
|
end
|
17
17
|
|
18
18
|
def run_spotlight_migrations
|
@@ -26,7 +26,7 @@ Gem::Specification.new do |spec|
|
|
26
26
|
# newer versions of harvestdor-indexer have performance improvements for collections
|
27
27
|
spec.add_dependency 'harvestdor-indexer', '~> 2.3'
|
28
28
|
spec.add_dependency 'rails'
|
29
|
-
spec.add_dependency 'blacklight-spotlight', '~> 0.
|
29
|
+
spec.add_dependency 'blacklight-spotlight', '~> 0.18'
|
30
30
|
spec.add_dependency 'parallel'
|
31
31
|
spec.add_dependency 'stanford-mods', '~> 2.1'
|
32
32
|
spec.add_development_dependency 'bundler', '~> 1.5'
|
@@ -36,10 +36,10 @@ Gem::Specification.new do |spec|
|
|
36
36
|
spec.add_development_dependency 'capybara'
|
37
37
|
spec.add_development_dependency 'vcr', '~> 3.0'
|
38
38
|
spec.add_development_dependency 'webmock'
|
39
|
-
spec.add_development_dependency '
|
39
|
+
spec.add_development_dependency 'solr_wrapper'
|
40
40
|
spec.add_development_dependency 'engine_cart', '~> 0.8'
|
41
41
|
spec.add_development_dependency 'database_cleaner'
|
42
|
-
spec.add_development_dependency 'exhibits_solr_conf'
|
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
45
|
|
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: 1.0
|
4
|
+
version: 1.1.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-
|
11
|
+
date: 2016-07-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -86,14 +86,14 @@ dependencies:
|
|
86
86
|
requirements:
|
87
87
|
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: '0.
|
89
|
+
version: '0.18'
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: '0.
|
96
|
+
version: '0.18'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: parallel
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -221,7 +221,7 @@ dependencies:
|
|
221
221
|
- !ruby/object:Gem::Version
|
222
222
|
version: '0'
|
223
223
|
- !ruby/object:Gem::Dependency
|
224
|
-
name:
|
224
|
+
name: solr_wrapper
|
225
225
|
requirement: !ruby/object:Gem::Requirement
|
226
226
|
requirements:
|
227
227
|
- - ">="
|
@@ -266,16 +266,16 @@ dependencies:
|
|
266
266
|
name: exhibits_solr_conf
|
267
267
|
requirement: !ruby/object:Gem::Requirement
|
268
268
|
requirements:
|
269
|
-
- - "
|
269
|
+
- - "~>"
|
270
270
|
- !ruby/object:Gem::Version
|
271
|
-
version: '0'
|
271
|
+
version: '0.1'
|
272
272
|
type: :development
|
273
273
|
prerelease: false
|
274
274
|
version_requirements: !ruby/object:Gem::Requirement
|
275
275
|
requirements:
|
276
|
-
- - "
|
276
|
+
- - "~>"
|
277
277
|
- !ruby/object:Gem::Version
|
278
|
-
version: '0'
|
278
|
+
version: '0.1'
|
279
279
|
- !ruby/object:Gem::Dependency
|
280
280
|
name: factory_girl_rails
|
281
281
|
requirement: !ruby/object:Gem::Requirement
|
@@ -344,6 +344,7 @@ files:
|
|
344
344
|
- lib/spotlight/dor/resources.rb
|
345
345
|
- lib/spotlight/dor/resources/engine.rb
|
346
346
|
- lib/spotlight/dor/resources/version.rb
|
347
|
+
- spec/controllers/spotlight/resources/dor_harvester_controller_spec.rb
|
347
348
|
- spec/integration/gdor_integration_spec.rb
|
348
349
|
- spec/lib/spotlight/dor/indexer_spec.rb
|
349
350
|
- spec/models/spotlight/resources/dor_harvester_spec.rb
|
@@ -376,11 +377,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
376
377
|
version: '0'
|
377
378
|
requirements: []
|
378
379
|
rubyforge_project:
|
379
|
-
rubygems_version: 2.
|
380
|
+
rubygems_version: 2.5.1
|
380
381
|
signing_key:
|
381
382
|
specification_version: 4
|
382
383
|
summary: Spotlight resource indexer for DOR resources.
|
383
384
|
test_files:
|
385
|
+
- spec/controllers/spotlight/resources/dor_harvester_controller_spec.rb
|
384
386
|
- spec/integration/gdor_integration_spec.rb
|
385
387
|
- spec/lib/spotlight/dor/indexer_spec.rb
|
386
388
|
- spec/models/spotlight/resources/dor_harvester_spec.rb
|