blacklight_iiif_search 0.0.1.pre.alpha
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/Rakefile +46 -0
- data/app/controllers/concerns/blacklight_iiif_search/controller.rb +48 -0
- data/app/models/blacklight_iiif_search/iiif_search.rb +36 -0
- data/app/models/blacklight_iiif_search/iiif_search_annotation.rb +43 -0
- data/app/models/blacklight_iiif_search/iiif_search_response.rb +103 -0
- data/app/models/blacklight_iiif_search/iiif_suggest_response.rb +56 -0
- data/app/models/blacklight_iiif_search/iiif_suggest_search.rb +37 -0
- data/app/models/concerns/blacklight_iiif_search/annotation_behavior.rb +28 -0
- data/app/models/concerns/blacklight_iiif_search/ignored.rb +13 -0
- data/app/models/concerns/blacklight_iiif_search/search_behavior.rb +15 -0
- data/lib/blacklight_iiif_search.rb +14 -0
- data/lib/blacklight_iiif_search/engine.rb +14 -0
- data/lib/blacklight_iiif_search/routes.rb +12 -0
- data/lib/blacklight_iiif_search/version.rb +3 -0
- data/lib/generators/blacklight_iiif_search/controller_generator.rb +37 -0
- data/lib/generators/blacklight_iiif_search/install_generator.rb +52 -0
- data/lib/generators/blacklight_iiif_search/model_generator.rb +17 -0
- data/lib/generators/blacklight_iiif_search/routes_generator.rb +26 -0
- data/lib/generators/blacklight_iiif_search/solr_generator.rb +87 -0
- data/lib/generators/blacklight_iiif_search/templates/iiif_search_builder.rb +15 -0
- data/lib/generators/blacklight_iiif_search/templates/solr/lib/solr-tokenizing_suggester-7.x.jar +0 -0
- data/lib/railties/blacklight_iiif_search.rake +15 -0
- data/spec/controllers/catalog_controller_spec.rb +99 -0
- data/spec/fixtures/sample_solr_documents.yml +272 -0
- data/spec/iiif_search_shared.rb +49 -0
- data/spec/models/blacklight_iiif_search/iiif_search_annotation_spec.rb +36 -0
- data/spec/models/blacklight_iiif_search/iiif_search_response_spec.rb +73 -0
- data/spec/models/blacklight_iiif_search/iiif_search_spec.rb +23 -0
- data/spec/models/blacklight_iiif_search/iiif_suggest_response_spec.rb +43 -0
- data/spec/models/blacklight_iiif_search/iiif_suggest_search_spec.rb +36 -0
- data/spec/models/concerns/blacklight_iiif_search/annotation_behavior_spec.rb +31 -0
- data/spec/models/concerns/blacklight_iiif_search/ignored_spec.rb +10 -0
- data/spec/models/concerns/blacklight_iiif_search/search_behavior_spec.rb +12 -0
- data/spec/spec_helper.rb +26 -0
- data/spec/test_app_templates/lib/generators/test_app_generator.rb +13 -0
- metadata +238 -0
@@ -0,0 +1,49 @@
|
|
1
|
+
# shared variables that can be used across specs
|
2
|
+
# https://relishapp.com/rspec/rspec-core/docs/example-groups/shared-context
|
3
|
+
RSpec.shared_context 'iiif_search_shared' do
|
4
|
+
let(:parent_id) { '7s75dn48d' }
|
5
|
+
let(:page_id) { '7s75dn58n' }
|
6
|
+
let(:query_term) { 'sugar' }
|
7
|
+
let(:suggest_query_term) { 'be' }
|
8
|
+
let(:snippet) { 'Twelve pounds of <em>sugar</em>, two quarts of water' }
|
9
|
+
let(:controller) { CatalogController.new }
|
10
|
+
let(:blacklight_config) { controller.blacklight_config }
|
11
|
+
let(:search_params) do
|
12
|
+
{ q: query_term, solr_document_id: parent_id, date: 'foo' }
|
13
|
+
end
|
14
|
+
let(:suggest_search_params) do
|
15
|
+
{ q: suggest_query_term, solr_document_id: parent_id, date: 'foo' }
|
16
|
+
end
|
17
|
+
let(:parent_document) { controller.fetch(parent_id)[1] }
|
18
|
+
let(:page_document) { controller.fetch(page_id)[1] }
|
19
|
+
let(:repository) { Blacklight::Solr::Repository.new(blacklight_config) }
|
20
|
+
|
21
|
+
let(:iiif_search) do
|
22
|
+
BlacklightIiifSearch::IiifSearch.new(search_params,
|
23
|
+
blacklight_config.iiif_search,
|
24
|
+
parent_document)
|
25
|
+
end
|
26
|
+
|
27
|
+
let(:iiif_suggest_search) do
|
28
|
+
BlacklightIiifSearch::IiifSuggestSearch.new(suggest_search_params,
|
29
|
+
repository,
|
30
|
+
controller)
|
31
|
+
end
|
32
|
+
|
33
|
+
let(:iiif_suggest_response) do
|
34
|
+
BlacklightIiifSearch::IiifSuggestResponse.new(iiif_suggest_search.suggest_results,
|
35
|
+
suggest_search_params,
|
36
|
+
controller)
|
37
|
+
end
|
38
|
+
|
39
|
+
before do
|
40
|
+
controller.params = search_params
|
41
|
+
blacklight_config.search_builder_class = IiifSearchBuilder
|
42
|
+
controller.request = ActionDispatch::TestRequest.new(env: :test,
|
43
|
+
host: 'http://0.0.0.0')
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
RSpec.configure do |rspec|
|
48
|
+
rspec.include_context 'iiif_search_shared', include_shared: true
|
49
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'iiif_search_shared'
|
2
|
+
RSpec.describe BlacklightIiifSearch::IiifSearchAnnotation do
|
3
|
+
include_context 'iiif_search_shared'
|
4
|
+
|
5
|
+
let(:iiif_search_annotation) do
|
6
|
+
described_class.new(page_document, query_term, 0, snippet, controller, parent_document)
|
7
|
+
end
|
8
|
+
|
9
|
+
describe 'class' do
|
10
|
+
it 'is a IiifSearchAnnotation' do
|
11
|
+
expect(iiif_search_annotation.class).to eq(described_class)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
describe '#as_hash' do
|
16
|
+
subject { iiif_search_annotation.as_hash }
|
17
|
+
it 'returns the correct object' do
|
18
|
+
expect(subject.class).to eq(IIIF::Presentation::Annotation)
|
19
|
+
end
|
20
|
+
it 'has a text resource' do
|
21
|
+
expect(subject.resource.class).to eq(IIIF::Presentation::Resource)
|
22
|
+
end
|
23
|
+
it 'has an "on" property' do
|
24
|
+
expect(subject['on']).not_to be_blank
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
describe '#text_resource_for_annotation' do
|
29
|
+
subject { iiif_search_annotation.text_resource_for_annotation }
|
30
|
+
it 'returns the correct object' do
|
31
|
+
expect(subject.class).to eq(IIIF::Presentation::Resource)
|
32
|
+
expect(subject['chars']).to include(query_term)
|
33
|
+
expect(subject['chars']).not_to include('<em>')
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,73 @@
|
|
1
|
+
require 'iiif_search_shared'
|
2
|
+
RSpec.describe BlacklightIiifSearch::IiifSearchResponse do
|
3
|
+
include_context 'iiif_search_shared'
|
4
|
+
|
5
|
+
let(:solr_response) do
|
6
|
+
controller.search_results(iiif_search.solr_params).first
|
7
|
+
end
|
8
|
+
let(:iiif_search_response) do
|
9
|
+
described_class.new(solr_response, parent_document, controller)
|
10
|
+
end
|
11
|
+
|
12
|
+
describe 'class' do
|
13
|
+
it 'is a IiifSearchResponse' do
|
14
|
+
expect(iiif_search_response.class).to eq(described_class)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
describe '#annotation_list' do
|
19
|
+
subject { iiif_search_response.annotation_list }
|
20
|
+
|
21
|
+
it 'returns an OrderedHash' do
|
22
|
+
expect(subject.class).to eq(IIIF::OrderedHash)
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'has the correct content' do
|
26
|
+
expect(subject['@id']).not_to be_falsey
|
27
|
+
expect(subject['@type']).to eq('sc:AnnotationList')
|
28
|
+
expect(subject['resources']).not_to be_blank
|
29
|
+
expect(subject['within']).not_to be_blank
|
30
|
+
expect(subject['hits']).not_to be_blank
|
31
|
+
end
|
32
|
+
|
33
|
+
let(:hit) { subject['hits'].first }
|
34
|
+
it 'has properly formatted search:Hit' do
|
35
|
+
expect(hit[:@type]).to eq('search:Hit')
|
36
|
+
expect(hit[:annotations].first).to eq(subject['resources'].first['@id'])
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
describe '#resources' do
|
41
|
+
subject { iiif_search_response.resources }
|
42
|
+
it 'returns an array of IiifSearchAnnotation objects' do
|
43
|
+
expect(subject.length).to eq(2)
|
44
|
+
expect(subject.first.class).to eq(IIIF::Presentation::Annotation)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
describe '#clean_params' do
|
49
|
+
subject { iiif_search_response.clean_params }
|
50
|
+
it 'returns an array of acceptable parameters' do
|
51
|
+
expect(subject).to include('q')
|
52
|
+
expect(subject).not_to include('date')
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
# TODO: fix ActionController::UrlGenerationError:
|
57
|
+
# No route matches {:action=>"iiif_search", :controller=>"catalog", "page"=>100, "q"=>"teachers"},
|
58
|
+
# missing required keys: [:solr_document_id]
|
59
|
+
# this method calls solr_document_iiif_search_url
|
60
|
+
# missing :solr_document_id only seems to be an issue with the spec
|
61
|
+
describe '#paged_url' do
|
62
|
+
it 'returns a solr_document URL with the page param'
|
63
|
+
# expect(iiif_search_response.paged_url(100)).to include('page=100')
|
64
|
+
end
|
65
|
+
|
66
|
+
describe '#within' do
|
67
|
+
subject { iiif_search_response.within }
|
68
|
+
it 'returns a IIIF::Presentation::Layer object' do
|
69
|
+
expect(subject.class).to eq(IIIF::Presentation::Layer)
|
70
|
+
expect(subject['ignored']).to include('date')
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'iiif_search_shared'
|
2
|
+
RSpec.describe BlacklightIiifSearch::IiifSearch do
|
3
|
+
include_context 'iiif_search_shared'
|
4
|
+
|
5
|
+
describe 'class' do
|
6
|
+
it 'is an IiifSearch' do
|
7
|
+
expect(iiif_search.class).to eq(described_class)
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
describe '#solr_params' do
|
12
|
+
it 'responds to #solr_params' do
|
13
|
+
expect(iiif_search).to respond_to(:solr_params)
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'returns a hash of parameters' do
|
17
|
+
solr_params = iiif_search.solr_params
|
18
|
+
expect(solr_params[:q]).to eq(query_term)
|
19
|
+
expect(solr_params[:rows]).to eq(iiif_search.rows)
|
20
|
+
expect(solr_params[:f]).not_to be_nil
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'iiif_search_shared'
|
2
|
+
RSpec.describe BlacklightIiifSearch::IiifSuggestResponse do
|
3
|
+
include_context 'iiif_search_shared'
|
4
|
+
|
5
|
+
describe 'class' do
|
6
|
+
it 'is an IiifSuggestResponse' do
|
7
|
+
expect(iiif_suggest_response.class).to eq(described_class)
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
describe '#term_list' do
|
12
|
+
subject { iiif_suggest_response.term_list }
|
13
|
+
|
14
|
+
it 'returns the correct class' do
|
15
|
+
expect(subject.class).to eq(IIIF::OrderedHash)
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'has the correct content' do
|
19
|
+
expect(subject['@id']).not_to be_falsey
|
20
|
+
expect(subject['@type']).to eq('search:TermList')
|
21
|
+
expect(subject['terms']).not_to be_blank
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
describe '#terms' do
|
26
|
+
subject { iiif_suggest_response.terms }
|
27
|
+
|
28
|
+
it 'returns the expected data' do
|
29
|
+
expect(subject.length).to eq(5)
|
30
|
+
expect(subject.first[:url]).not_to be_falsey
|
31
|
+
expect(subject.first[:match].match(/\A#{suggest_query_term}/)).to be_truthy
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
describe '#iiif_search_url' do
|
36
|
+
subject { iiif_suggest_response.iiif_search_url(suggest_query_term) }
|
37
|
+
|
38
|
+
it 'returns a search url' do
|
39
|
+
expect(subject).to include(parent_id)
|
40
|
+
expect(subject).to include(suggest_query_term)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'iiif_search_shared'
|
2
|
+
RSpec.describe BlacklightIiifSearch::IiifSuggestSearch do
|
3
|
+
include_context 'iiif_search_shared'
|
4
|
+
|
5
|
+
describe 'class' do
|
6
|
+
it 'is an IiifSuggestSearch' do
|
7
|
+
expect(iiif_suggest_search.class).to eq(described_class)
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
describe '#response' do
|
12
|
+
subject { iiif_suggest_search.response }
|
13
|
+
|
14
|
+
it 'returns the correct class' do
|
15
|
+
expect(subject.class).to eq(IIIF::OrderedHash)
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'returns the expected data' do
|
19
|
+
expect(subject['terms'].length).to eq(5)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
describe '#suggest_results' do
|
24
|
+
subject { iiif_suggest_search.suggest_results }
|
25
|
+
|
26
|
+
it 'returns the correct class' do
|
27
|
+
expect(subject.class).to eq(RSolr::HashWithResponse)
|
28
|
+
end
|
29
|
+
|
30
|
+
it 'returns the expected data' do
|
31
|
+
terms = subject['suggest'][blacklight_config.iiif_search[:suggester_name]][suggest_query_term]['suggestions']
|
32
|
+
expect(terms.length).to eq(5)
|
33
|
+
expect(terms.first['term'].match(/\A#{suggest_query_term}/)).to be_truthy
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'iiif_search_shared'
|
2
|
+
RSpec.describe BlacklightIiifSearch::AnnotationBehavior do
|
3
|
+
include_context 'iiif_search_shared'
|
4
|
+
|
5
|
+
let(:iiif_search_annotation) do
|
6
|
+
BlacklightIiifSearch::IiifSearchAnnotation.new(page_document, query_term,
|
7
|
+
0, snippet, controller,
|
8
|
+
parent_document)
|
9
|
+
end
|
10
|
+
|
11
|
+
describe '#annotation_id' do
|
12
|
+
subject { iiif_search_annotation.annotation_id }
|
13
|
+
it 'returns a properly formatted URL' do
|
14
|
+
expect(subject).to include("#{parent_id}/canvas/#{page_id}/annotation/0")
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
describe '#canvas_uri_for_annotation' do
|
19
|
+
subject { iiif_search_annotation.canvas_uri_for_annotation }
|
20
|
+
it 'returns a properly formatted URL' do
|
21
|
+
expect(subject).to include("#{parent_id}/canvas/#{page_id}")
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
describe '#coordinates' do
|
26
|
+
subject { iiif_search_annotation.coordinates }
|
27
|
+
it 'returns a coordinate string' do
|
28
|
+
expect(subject).to eq('#xywh=0,0,0,0')
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
require 'iiif_search_shared'
|
2
|
+
RSpec.describe BlacklightIiifSearch::Ignored do
|
3
|
+
include_context 'iiif_search_shared'
|
4
|
+
|
5
|
+
describe '#ignored' do
|
6
|
+
it 'returns an array of ignored parameters' do
|
7
|
+
expect(iiif_suggest_response.ignored).to include('date')
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
require 'iiif_search_shared'
|
2
|
+
RSpec.describe BlacklightIiifSearch::SearchBehavior do
|
3
|
+
include_context 'iiif_search_shared'
|
4
|
+
|
5
|
+
describe '#object_relation_solr_params' do
|
6
|
+
subject { iiif_search.object_relation_solr_params }
|
7
|
+
it 'returns a hash with the correct content' do
|
8
|
+
expect(subject.keys.first).to eq('is_page_of_s')
|
9
|
+
expect(subject.values.first).to eq(parent_id)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
# testing environent:
|
2
|
+
ENV['RAILS_ENV'] ||= 'test'
|
3
|
+
|
4
|
+
require 'coveralls'
|
5
|
+
Coveralls.wear!
|
6
|
+
|
7
|
+
# engine_cart:
|
8
|
+
require 'bundler/setup'
|
9
|
+
require 'engine_cart'
|
10
|
+
EngineCart.load_application!
|
11
|
+
|
12
|
+
require 'rspec/rails'
|
13
|
+
|
14
|
+
RSpec.configure do |config|
|
15
|
+
config.infer_spec_type_from_file_location!
|
16
|
+
|
17
|
+
config.expect_with :rspec do |expectations|
|
18
|
+
expectations.include_chain_clauses_in_custom_matcher_descriptions = true
|
19
|
+
end
|
20
|
+
|
21
|
+
config.mock_with :rspec do |mocks|
|
22
|
+
mocks.verify_partial_doubles = true
|
23
|
+
end
|
24
|
+
|
25
|
+
config.shared_context_metadata_behavior = :apply_to_host_groups
|
26
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'rails/generators'
|
2
|
+
|
3
|
+
class TestAppGenerator < Rails::Generators::Base
|
4
|
+
source_root './spec/test_app_templates'
|
5
|
+
|
6
|
+
# if you need to generate any additional configuration
|
7
|
+
# into the test app, this generator will be run immediately
|
8
|
+
# after setting up the application
|
9
|
+
|
10
|
+
def install_engine
|
11
|
+
generate 'blacklight_iiif_search:install'
|
12
|
+
end
|
13
|
+
end
|
metadata
ADDED
@@ -0,0 +1,238 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: blacklight_iiif_search
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1.pre.alpha
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Eben English
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2018-07-30 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rails
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '4.2'
|
20
|
+
- - "<"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '6'
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '4.2'
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '6'
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: blacklight
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - "~>"
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '6.0'
|
40
|
+
type: :runtime
|
41
|
+
prerelease: false
|
42
|
+
version_requirements: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - "~>"
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '6.0'
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: iiif-presentation
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - ">="
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
54
|
+
type: :runtime
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - ">="
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '0'
|
61
|
+
- !ruby/object:Gem::Dependency
|
62
|
+
name: rspec-rails
|
63
|
+
requirement: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - "~>"
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: '3.0'
|
68
|
+
type: :development
|
69
|
+
prerelease: false
|
70
|
+
version_requirements: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - "~>"
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: '3.0'
|
75
|
+
- !ruby/object:Gem::Dependency
|
76
|
+
name: solr_wrapper
|
77
|
+
requirement: !ruby/object:Gem::Requirement
|
78
|
+
requirements:
|
79
|
+
- - "~>"
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: '2.0'
|
82
|
+
type: :development
|
83
|
+
prerelease: false
|
84
|
+
version_requirements: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - "~>"
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '2.0'
|
89
|
+
- !ruby/object:Gem::Dependency
|
90
|
+
name: engine_cart
|
91
|
+
requirement: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - ">="
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '0'
|
96
|
+
type: :development
|
97
|
+
prerelease: false
|
98
|
+
version_requirements: !ruby/object:Gem::Requirement
|
99
|
+
requirements:
|
100
|
+
- - ">="
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '0'
|
103
|
+
- !ruby/object:Gem::Dependency
|
104
|
+
name: byebug
|
105
|
+
requirement: !ruby/object:Gem::Requirement
|
106
|
+
requirements:
|
107
|
+
- - ">="
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
110
|
+
type: :development
|
111
|
+
prerelease: false
|
112
|
+
version_requirements: !ruby/object:Gem::Requirement
|
113
|
+
requirements:
|
114
|
+
- - ">="
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: '0'
|
117
|
+
- !ruby/object:Gem::Dependency
|
118
|
+
name: rubocop
|
119
|
+
requirement: !ruby/object:Gem::Requirement
|
120
|
+
requirements:
|
121
|
+
- - "~>"
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: 0.50.0
|
124
|
+
type: :development
|
125
|
+
prerelease: false
|
126
|
+
version_requirements: !ruby/object:Gem::Requirement
|
127
|
+
requirements:
|
128
|
+
- - "~>"
|
129
|
+
- !ruby/object:Gem::Version
|
130
|
+
version: 0.50.0
|
131
|
+
- !ruby/object:Gem::Dependency
|
132
|
+
name: rubocop-rspec
|
133
|
+
requirement: !ruby/object:Gem::Requirement
|
134
|
+
requirements:
|
135
|
+
- - "~>"
|
136
|
+
- !ruby/object:Gem::Version
|
137
|
+
version: 1.18.0
|
138
|
+
type: :development
|
139
|
+
prerelease: false
|
140
|
+
version_requirements: !ruby/object:Gem::Requirement
|
141
|
+
requirements:
|
142
|
+
- - "~>"
|
143
|
+
- !ruby/object:Gem::Version
|
144
|
+
version: 1.18.0
|
145
|
+
- !ruby/object:Gem::Dependency
|
146
|
+
name: bixby
|
147
|
+
requirement: !ruby/object:Gem::Requirement
|
148
|
+
requirements:
|
149
|
+
- - ">="
|
150
|
+
- !ruby/object:Gem::Version
|
151
|
+
version: '0'
|
152
|
+
type: :development
|
153
|
+
prerelease: false
|
154
|
+
version_requirements: !ruby/object:Gem::Requirement
|
155
|
+
requirements:
|
156
|
+
- - ">="
|
157
|
+
- !ruby/object:Gem::Version
|
158
|
+
version: '0'
|
159
|
+
description: Blacklight IIIF Search plugin
|
160
|
+
email:
|
161
|
+
- eenglish@bpl.org
|
162
|
+
executables: []
|
163
|
+
extensions: []
|
164
|
+
extra_rdoc_files: []
|
165
|
+
files:
|
166
|
+
- Rakefile
|
167
|
+
- app/controllers/concerns/blacklight_iiif_search/controller.rb
|
168
|
+
- app/models/blacklight_iiif_search/iiif_search.rb
|
169
|
+
- app/models/blacklight_iiif_search/iiif_search_annotation.rb
|
170
|
+
- app/models/blacklight_iiif_search/iiif_search_response.rb
|
171
|
+
- app/models/blacklight_iiif_search/iiif_suggest_response.rb
|
172
|
+
- app/models/blacklight_iiif_search/iiif_suggest_search.rb
|
173
|
+
- app/models/concerns/blacklight_iiif_search/annotation_behavior.rb
|
174
|
+
- app/models/concerns/blacklight_iiif_search/ignored.rb
|
175
|
+
- app/models/concerns/blacklight_iiif_search/search_behavior.rb
|
176
|
+
- lib/blacklight_iiif_search.rb
|
177
|
+
- lib/blacklight_iiif_search/engine.rb
|
178
|
+
- lib/blacklight_iiif_search/routes.rb
|
179
|
+
- lib/blacklight_iiif_search/version.rb
|
180
|
+
- lib/generators/blacklight_iiif_search/controller_generator.rb
|
181
|
+
- lib/generators/blacklight_iiif_search/install_generator.rb
|
182
|
+
- lib/generators/blacklight_iiif_search/model_generator.rb
|
183
|
+
- lib/generators/blacklight_iiif_search/routes_generator.rb
|
184
|
+
- lib/generators/blacklight_iiif_search/solr_generator.rb
|
185
|
+
- lib/generators/blacklight_iiif_search/templates/iiif_search_builder.rb
|
186
|
+
- lib/generators/blacklight_iiif_search/templates/solr/lib/solr-tokenizing_suggester-7.x.jar
|
187
|
+
- lib/railties/blacklight_iiif_search.rake
|
188
|
+
- spec/controllers/catalog_controller_spec.rb
|
189
|
+
- spec/fixtures/sample_solr_documents.yml
|
190
|
+
- spec/iiif_search_shared.rb
|
191
|
+
- spec/models/blacklight_iiif_search/iiif_search_annotation_spec.rb
|
192
|
+
- spec/models/blacklight_iiif_search/iiif_search_response_spec.rb
|
193
|
+
- spec/models/blacklight_iiif_search/iiif_search_spec.rb
|
194
|
+
- spec/models/blacklight_iiif_search/iiif_suggest_response_spec.rb
|
195
|
+
- spec/models/blacklight_iiif_search/iiif_suggest_search_spec.rb
|
196
|
+
- spec/models/concerns/blacklight_iiif_search/annotation_behavior_spec.rb
|
197
|
+
- spec/models/concerns/blacklight_iiif_search/ignored_spec.rb
|
198
|
+
- spec/models/concerns/blacklight_iiif_search/search_behavior_spec.rb
|
199
|
+
- spec/spec_helper.rb
|
200
|
+
- spec/test_app_templates/lib/generators/test_app_generator.rb
|
201
|
+
homepage: http://projectblacklight.org/
|
202
|
+
licenses:
|
203
|
+
- Apache-2.0
|
204
|
+
metadata: {}
|
205
|
+
post_install_message:
|
206
|
+
rdoc_options: []
|
207
|
+
require_paths:
|
208
|
+
- lib
|
209
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
210
|
+
requirements:
|
211
|
+
- - ">="
|
212
|
+
- !ruby/object:Gem::Version
|
213
|
+
version: '0'
|
214
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
215
|
+
requirements:
|
216
|
+
- - ">"
|
217
|
+
- !ruby/object:Gem::Version
|
218
|
+
version: 1.3.1
|
219
|
+
requirements: []
|
220
|
+
rubyforge_project:
|
221
|
+
rubygems_version: 2.6.12
|
222
|
+
signing_key:
|
223
|
+
specification_version: 4
|
224
|
+
summary: Blacklight IIIF Search plugin
|
225
|
+
test_files:
|
226
|
+
- spec/iiif_search_shared.rb
|
227
|
+
- spec/models/blacklight_iiif_search/iiif_suggest_response_spec.rb
|
228
|
+
- spec/models/blacklight_iiif_search/iiif_search_spec.rb
|
229
|
+
- spec/models/blacklight_iiif_search/iiif_search_response_spec.rb
|
230
|
+
- spec/models/blacklight_iiif_search/iiif_suggest_search_spec.rb
|
231
|
+
- spec/models/blacklight_iiif_search/iiif_search_annotation_spec.rb
|
232
|
+
- spec/models/concerns/blacklight_iiif_search/ignored_spec.rb
|
233
|
+
- spec/models/concerns/blacklight_iiif_search/search_behavior_spec.rb
|
234
|
+
- spec/models/concerns/blacklight_iiif_search/annotation_behavior_spec.rb
|
235
|
+
- spec/spec_helper.rb
|
236
|
+
- spec/fixtures/sample_solr_documents.yml
|
237
|
+
- spec/test_app_templates/lib/generators/test_app_generator.rb
|
238
|
+
- spec/controllers/catalog_controller_spec.rb
|