bento_search 1.5.0 → 2.0.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.
- checksums.yaml +5 -5
- data/README.md +27 -24
- data/Rakefile +30 -11
- data/app/assets/javascripts/bento_search/ajax_load.js +54 -22
- data/app/controllers/bento_search/search_controller.rb +31 -30
- data/app/helpers/bento_search_helper.rb +72 -74
- data/app/models/bento_search/concurrent_searcher.rb +136 -0
- data/app/models/bento_search/result_item.rb +15 -12
- data/app/models/bento_search/results/serialization.rb +22 -13
- data/app/models/bento_search/search_engine.rb +170 -140
- data/app/search_engines/bento_search/doaj_articles_engine.rb +20 -20
- data/app/search_engines/bento_search/ebsco_host_engine.rb +3 -3
- data/app/search_engines/bento_search/eds_engine.rb +326 -206
- data/app/search_engines/bento_search/google_books_engine.rb +2 -2
- data/app/search_engines/bento_search/scopus_engine.rb +87 -87
- data/app/search_engines/bento_search/summon_engine.rb +1 -1
- data/app/views/bento_search/_ajax_loading.html.erb +17 -0
- data/app/views/bento_search/_item_title.html.erb +2 -4
- data/app/views/bento_search/_link.html.erb +3 -3
- data/lib/bento_search.rb +24 -9
- data/lib/bento_search/engine.rb +2 -0
- data/lib/bento_search/version.rb +1 -1
- data/lib/generators/bento_search/install/ajax_load_js_generator.rb +15 -0
- data/test/decorator/standard_decorator_test.rb +30 -30
- data/test/dummy/app/assets/config/manifest.js +4 -0
- data/test/dummy/config/application.rb +7 -0
- data/test/dummy/config/boot.rb +4 -9
- data/test/dummy/config/environments/development.rb +2 -0
- data/test/dummy/config/environments/production.rb +7 -1
- data/test/dummy/config/environments/test.rb +10 -3
- data/test/functional/bento_search/search_controller_test.rb +68 -58
- data/test/helper/bento_search_helper_test.rb +103 -103
- data/test/search_engines/doaj_articles_engine_test.rb +9 -9
- data/test/search_engines/eds_engine_test.rb +91 -59
- data/test/search_engines/google_site_search_test.rb +48 -48
- data/test/search_engines/scopus_engine_test.rb +51 -51
- data/test/search_engines/search_engine_base_test.rb +108 -86
- data/test/search_engines/search_engine_test.rb +68 -56
- data/test/support/atom.xsd.xml +3 -3
- data/test/support/xml.xsd +117 -0
- data/test/test_helper.rb +23 -12
- data/test/unit/concurrent_searcher_test.rb +75 -0
- data/test/unit/pagination_test.rb +12 -12
- data/test/vcr_cassettes/eds/FullText_CustomLink.yml +198 -0
- data/test/vcr_cassettes/eds/basic_search_smoke_test.yml +1036 -1729
- data/test/vcr_cassettes/eds/catalog_ebook_query.yml +218 -0
- data/test/vcr_cassettes/eds/catalog_query.yml +255 -0
- data/test/vcr_cassettes/eds/get_auth_token.yml +11 -44
- data/test/vcr_cassettes/eds/get_auth_token_failure.yml +10 -7
- data/test/vcr_cassettes/eds/get_with_auth.yml +144 -153
- data/test/vcr_cassettes/eds/get_with_auth_recovers_from_bad_auth.yml +167 -223
- data/test/view/atom_results_test.rb +94 -94
- metadata +36 -46
- data/app/assets/javascripts/bento_search.js +0 -3
- data/app/item_decorators/bento_search/ebscohost/conditional_openurl_main_link.rb +0 -36
- data/app/item_decorators/bento_search/only_premade_openurl.rb +0 -20
- data/app/item_decorators/bento_search/openurl_add_other_link.rb +0 -39
- data/app/item_decorators/bento_search/openurl_main_link.rb +0 -34
- data/app/models/bento_search/multi_searcher.rb +0 -131
- data/test/dummy/config/initializers/secret_token.rb +0 -8
- data/test/unit/multi_searcher_test.rb +0 -49
@@ -4,7 +4,7 @@ require 'nokogiri'
|
|
4
4
|
|
5
5
|
class AtomResultsTest < ActionView::TestCase
|
6
6
|
include ActionView::Helpers::UrlHelper
|
7
|
-
|
7
|
+
|
8
8
|
@@namespaces = {
|
9
9
|
"atom" => "http://www.w3.org/2005/Atom",
|
10
10
|
"opensearch" => "http://a9.com/-/spec/opensearch/1.1/",
|
@@ -12,7 +12,7 @@ class AtomResultsTest < ActionView::TestCase
|
|
12
12
|
"dcterms" => "http://purl.org/dc/terms/",
|
13
13
|
"bibo" => "http://purl.org/ontology/bibo/"
|
14
14
|
}
|
15
|
-
|
15
|
+
|
16
16
|
# Instead of using assert_select, we do it ourselves with nokogiri
|
17
17
|
# for better namespace control.
|
18
18
|
#
|
@@ -21,26 +21,26 @@ class AtomResultsTest < ActionView::TestCase
|
|
21
21
|
# assert matched_node.first["attribute"] == "foo"
|
22
22
|
# end
|
23
23
|
def assert_node(xml, xpath, options = {})
|
24
|
-
result = xml.xpath(xpath, @@namespaces)
|
25
|
-
|
24
|
+
result = xml.xpath(xpath, @@namespaces)
|
25
|
+
|
26
26
|
assert result.length > 0, "Expected xpath '#{xpath}' to match in #{xml.to_s[0..200]}..."
|
27
|
-
|
27
|
+
|
28
28
|
if options[:text]
|
29
29
|
assert_equal options[:text], result.text.strip, "Expected #{options[:text]} as content of #{result.to_s[0..200]}"
|
30
30
|
end
|
31
|
-
|
31
|
+
|
32
32
|
yield result if block_given?
|
33
33
|
end
|
34
|
-
|
34
|
+
|
35
35
|
def setup
|
36
36
|
@total_items = 1000
|
37
37
|
@start = 6
|
38
38
|
@per_page = 15
|
39
|
-
|
40
|
-
|
41
|
-
@engine = BentoSearch::MockEngine.new(:total_items => @total_items)
|
39
|
+
|
40
|
+
|
41
|
+
@engine = BentoSearch::MockEngine.new(:total_items => @total_items)
|
42
42
|
@results = @engine.search("some query", :start => @start, :per_page => @per_page)
|
43
|
-
|
43
|
+
|
44
44
|
# but fill the first result elements with some non-blank data to test
|
45
45
|
@article = BentoSearch::ResultItem.new(
|
46
46
|
:title => "An Article", #
|
@@ -66,7 +66,7 @@ class AtomResultsTest < ActionView::TestCase
|
|
66
66
|
BentoSearch::Link.new(:url => "http://example.org/bare_link"),
|
67
67
|
BentoSearch::Link.new(
|
68
68
|
:url => "http://example.org/label_and_type",
|
69
|
-
:label => "A link somewhere",
|
69
|
+
:label => "A link somewhere",
|
70
70
|
:type => "application/pdf"
|
71
71
|
),
|
72
72
|
BentoSearch::Link.new(
|
@@ -93,189 +93,189 @@ class AtomResultsTest < ActionView::TestCase
|
|
93
93
|
:oclcnum => "12124345",
|
94
94
|
:year => "2004"
|
95
95
|
)
|
96
|
-
|
97
|
-
|
98
|
-
|
96
|
+
|
97
|
+
|
98
|
+
|
99
99
|
@results[0] = @article
|
100
100
|
@results[1] = @article_with_html_abstract
|
101
101
|
@results[3] = @article_with_full_date
|
102
|
-
@results[4] = @book
|
102
|
+
@results[4] = @book
|
103
103
|
end
|
104
|
-
|
104
|
+
|
105
105
|
def test_smoke_atom_validate
|
106
106
|
# Validate under Atom schema. Should we validate under prism and dc schemas
|
107
107
|
# too? Not sure if it makes sense, or if there's even a relevant schema
|
108
|
-
# for how we're using em. So of just basic 'smoke' value.
|
108
|
+
# for how we're using em. So of just basic 'smoke' value.
|
109
109
|
render :template => "bento_search/atom_results", :locals => {:atom_results => @results}
|
110
110
|
xml_response = Nokogiri::XML( rendered ) { |config| config.strict }
|
111
|
-
|
111
|
+
|
112
112
|
atom_xsd_filepath = File.expand_path("../../support/atom.xsd.xml", __FILE__)
|
113
|
-
schema_xml = Nokogiri::XML(File.
|
113
|
+
schema_xml = Nokogiri::XML(File.open(atom_xsd_filepath))
|
114
114
|
# modify to add processContents lax so it'll let us include elements from
|
115
|
-
# external namespaces.
|
115
|
+
# external namespaces.
|
116
116
|
schema_xml.xpath("//xs:any[@namespace='##other']", {"xs" => "http://www.w3.org/2001/XMLSchema"}).each do |node|
|
117
117
|
node["processContents"] = "lax"
|
118
|
-
end
|
119
|
-
|
118
|
+
end
|
119
|
+
|
120
120
|
schema = Nokogiri::XML::Schema.from_document( schema_xml )
|
121
|
-
|
122
|
-
assert_empty schema.validate(xml_response), "Validates with atom XSD schema"
|
121
|
+
|
122
|
+
assert_empty schema.validate(xml_response), "Validates with atom XSD schema"
|
123
123
|
end
|
124
|
-
|
125
|
-
|
124
|
+
|
125
|
+
|
126
126
|
def test_feed_metadata
|
127
|
-
render :template => "bento_search/atom_results", :locals => {:atom_results => @results}
|
128
|
-
xml_response = Nokogiri::XML( rendered )
|
129
|
-
|
130
|
-
assert_node(xml_response, "atom:feed") do |feed|
|
127
|
+
render :template => "bento_search/atom_results", :locals => {:atom_results => @results}
|
128
|
+
xml_response = Nokogiri::XML( rendered )
|
129
|
+
|
130
|
+
assert_node(xml_response, "atom:feed") do |feed|
|
131
131
|
assert_node(feed, "atom:title")
|
132
132
|
assert_node(feed, "atom:author")
|
133
133
|
assert_node(feed, "atom:updated")
|
134
|
-
|
134
|
+
|
135
135
|
assert_node(feed, "opensearch:totalResults", :text => @total_items.to_s)
|
136
136
|
assert_node(feed, "opensearch:startIndex", :text => @start.to_s)
|
137
137
|
assert_node(feed, "opensearch:itemsPerPage", :text => @per_page.to_s)
|
138
138
|
end
|
139
|
-
|
139
|
+
|
140
140
|
end
|
141
|
-
|
141
|
+
|
142
142
|
def test_article_entry_example
|
143
|
-
render :template => "bento_search/atom_results", :locals => {:atom_results => @results}
|
144
|
-
xml_response = Nokogiri::XML( rendered )
|
145
|
-
|
143
|
+
render :template => "bento_search/atom_results", :locals => {:atom_results => @results}
|
144
|
+
xml_response = Nokogiri::XML( rendered )
|
145
|
+
|
146
146
|
assert_node(xml_response, "./atom:feed/atom:entry[1]") do |article|
|
147
|
-
assert_node(article, "atom:title", :text => @article.title)
|
147
|
+
assert_node(article, "atom:title", :text => @article.title)
|
148
148
|
assert_node(article, "prism:coverDate", :text => @article.year)
|
149
|
-
|
149
|
+
|
150
150
|
assert_node(article, "prism:issn", :text => @article.issn)
|
151
151
|
assert_node(article, "prism:doi", :text => @article.doi)
|
152
|
-
|
152
|
+
|
153
153
|
assert_node(article, "prism:volume", :text => @article.volume)
|
154
154
|
assert_node(article, "prism:number", :text => @article.issue)
|
155
|
-
|
155
|
+
|
156
156
|
assert_node(article, "prism:startingPage", :text => @article.start_page)
|
157
157
|
assert_node(article, "prism:endingPage", :text => @article.end_page)
|
158
|
-
|
158
|
+
|
159
159
|
assert_node(article, "prism:publicationName", :text => @article.source_title)
|
160
|
-
|
160
|
+
|
161
161
|
abstract = article.at_xpath("atom:summary", @@namespaces)
|
162
162
|
assert_present abstract, "Has an abstract"
|
163
163
|
assert_equal "text", abstract["type"], "Abstract type text"
|
164
164
|
assert_equal @article.abstract, abstract.text
|
165
|
-
|
165
|
+
|
166
166
|
assert_node(article, "dcterms:language[@vocabulary='http://dbpedia.org/resource/ISO_639-1']", :text => @article.language_iso_639_1)
|
167
167
|
assert_node(article, "dcterms:language[@vocabulary='http://dbpedia.org/resource/ISO_639-3']", :text => @article.language_iso_639_3)
|
168
|
-
assert_node(article, "dcterms:language[not(@vocabulary)]", :text => @article.language_str)
|
169
|
-
|
168
|
+
assert_node(article, "dcterms:language[not(@vocabulary)]", :text => @article.language_str)
|
169
|
+
|
170
170
|
assert_node(article, "dcterms:type[not(@vocabulary)]", :text => @article.format_str)
|
171
|
-
|
171
|
+
|
172
172
|
assert_node(article, "dcterms:type[@vocabulary='http://schema.org/']", :text => @article.schema_org_type_url)
|
173
173
|
assert_node(article, "dcterms:type[@vocabulary='http://purl.org/NET/bento_search/ontology']", :text => @article.format)
|
174
|
-
|
175
|
-
# Just make sure right number of author elements, with right structure.
|
174
|
+
|
175
|
+
# Just make sure right number of author elements, with right structure.
|
176
176
|
assert_node(article, "atom:author/atom:name") do |authors|
|
177
177
|
assert_equal @article.authors.length, authors.length, "right number of author elements"
|
178
178
|
end
|
179
|
-
|
179
|
+
|
180
180
|
# Links. Main link is just rel=alternate
|
181
|
-
assert_node(article,
|
181
|
+
assert_node(article,
|
182
182
|
"atom:link[@rel='alternate'][@href='#{@article.link}']")
|
183
|
-
|
183
|
+
|
184
184
|
# other links also there, default rel=related
|
185
|
-
assert_node(article,
|
185
|
+
assert_node(article,
|
186
186
|
"atom:link[@rel='related'][@type='application/pdf'][@title='A link somewhere'][@href='http://example.org/label_and_type']")
|
187
187
|
assert_node(article,
|
188
|
-
"atom:link[@rel='something'][@href='http://example.org/rel']")
|
189
|
-
end
|
190
|
-
|
188
|
+
"atom:link[@rel='something'][@href='http://example.org/rel']")
|
189
|
+
end
|
190
|
+
|
191
191
|
end
|
192
|
-
|
193
|
-
|
192
|
+
|
193
|
+
|
194
194
|
def test_with_unique_id
|
195
|
-
@results = @engine.search("find")
|
195
|
+
@results = @engine.search("find")
|
196
196
|
@results[0] = BentoSearch::ResultItem.new(
|
197
|
-
:title => "Something",
|
197
|
+
:title => "Something",
|
198
198
|
:unique_id => "a000:/01",
|
199
199
|
:engine_id => "some_engine"
|
200
200
|
)
|
201
|
-
|
202
|
-
render :template => "bento_search/atom_results", :locals => {:atom_results => @results}
|
201
|
+
|
202
|
+
render :template => "bento_search/atom_results", :locals => {:atom_results => @results}
|
203
203
|
xml_response = Nokogiri::XML( rendered )
|
204
|
-
|
204
|
+
|
205
205
|
with_unique_id = xml_response.xpath("./atom:feed/atom:entry", @@namespaces)[0]
|
206
|
-
|
206
|
+
|
207
207
|
assert_node(with_unique_id, "atom:id") do |id|
|
208
208
|
# based off of engine_id and unique_id
|
209
209
|
assert_includes id.text, "some_engine"
|
210
210
|
assert_includes id.text, "a000%3A%2F01"
|
211
|
-
end
|
211
|
+
end
|
212
212
|
end
|
213
|
-
|
213
|
+
|
214
214
|
def test_with_html_abstract
|
215
|
-
render :template => "bento_search/atom_results", :locals => {:atom_results => @results}
|
215
|
+
render :template => "bento_search/atom_results", :locals => {:atom_results => @results}
|
216
216
|
xml_response = Nokogiri::XML( rendered )
|
217
|
-
|
217
|
+
|
218
218
|
with_html_abstract = xml_response.xpath("./atom:feed/atom:entry", @@namespaces)[1]
|
219
|
-
|
220
|
-
assert_node(with_html_abstract, "atom:summary[@type='html']", :text => @article_with_html_abstract.abstract.to_s)
|
219
|
+
|
220
|
+
assert_node(with_html_abstract, "atom:summary[@type='html']", :text => @article_with_html_abstract.abstract.to_s)
|
221
221
|
end
|
222
|
-
|
222
|
+
|
223
223
|
def test_book
|
224
|
-
render :template => "bento_search/atom_results", :locals => {:atom_results => @results}
|
224
|
+
render :template => "bento_search/atom_results", :locals => {:atom_results => @results}
|
225
225
|
xml_response = Nokogiri::XML( rendered )
|
226
|
-
|
226
|
+
|
227
227
|
book = xml_response.xpath("./atom:feed/atom:entry", @@namespaces)[4]
|
228
|
-
|
228
|
+
|
229
229
|
assert_node(book, "dcterms:type[@vocabulary='http://purl.org/NET/bento_search/ontology']", :text => "Book")
|
230
230
|
assert_node(book, "dcterms:type[@vocabulary='http://schema.org/']", :text => "http://schema.org/Book")
|
231
|
-
|
231
|
+
|
232
232
|
assert_node(book, "dcterms:publisher", :text => @book.publisher)
|
233
|
-
|
233
|
+
|
234
234
|
assert_node(book, "prism:isbn", :text => @book.isbn)
|
235
|
-
|
235
|
+
|
236
236
|
assert_node(book, "bibo:oclcnum", :text => @book.oclcnum)
|
237
237
|
end
|
238
|
-
|
238
|
+
|
239
239
|
def test_with_full_date
|
240
|
-
render :template => "bento_search/atom_results", :locals => {:atom_results => @results}
|
240
|
+
render :template => "bento_search/atom_results", :locals => {:atom_results => @results}
|
241
241
|
xml_response = Nokogiri::XML( rendered )
|
242
|
-
|
242
|
+
|
243
243
|
with_full_date = xml_response.at_xpath("./atom:feed/atom:entry[4]", @@namespaces)
|
244
|
-
|
245
|
-
assert_node(with_full_date, "prism:coverDate", :text => "2011-05-06")
|
244
|
+
|
245
|
+
assert_node(with_full_date, "prism:coverDate", :text => "2011-05-06")
|
246
246
|
end
|
247
247
|
|
248
248
|
def test_nil_results
|
249
249
|
# should render a more or less empty atom response for
|
250
250
|
# nil results, convenient to not raise on nil
|
251
|
-
render :template => "bento_search/atom_results", :locals => {:atom_results => nil}
|
251
|
+
render :template => "bento_search/atom_results", :locals => {:atom_results => nil}
|
252
252
|
end
|
253
|
-
|
253
|
+
|
254
254
|
def test_locals_for_feed_name_and_author
|
255
|
-
render( :template => "bento_search/atom_results",
|
256
|
-
:locals => {:atom_results => @results,
|
255
|
+
render( :template => "bento_search/atom_results",
|
256
|
+
:locals => {:atom_results => @results,
|
257
257
|
:feed_name => "My Feed",
|
258
258
|
:feed_author_name => "ACME Seed And Feed Products"}
|
259
259
|
)
|
260
|
-
|
260
|
+
|
261
261
|
xml_response = Nokogiri::XML( rendered )
|
262
|
-
|
262
|
+
|
263
263
|
assert_node(xml_response, "./atom:feed/atom:title", :text => "My Feed")
|
264
264
|
assert_node(xml_response, "./atom:feed/atom:author/atom:name", :text => "ACME Seed And Feed Products")
|
265
265
|
end
|
266
|
-
|
266
|
+
|
267
267
|
def test_html_in_title_stripped
|
268
268
|
results = BentoSearch::Results.new
|
269
269
|
results << BentoSearch::ResultItem.new(
|
270
270
|
:title => "html <b>title</b>".html_safe
|
271
271
|
)
|
272
|
-
|
272
|
+
|
273
273
|
render(:template => "bento_search/atom_results", :locals => {:atom_results => results})
|
274
274
|
xml_response = Nokogiri::XML( rendered )
|
275
|
-
|
275
|
+
|
276
276
|
assert_node(xml_response, "./atom:feed/atom:entry[1]/atom:title", :text => "html title")
|
277
|
-
|
277
|
+
|
278
278
|
end
|
279
|
-
|
280
|
-
|
279
|
+
|
280
|
+
|
281
281
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bento_search
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0.rc1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jonathan Rochkind
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-07-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -16,20 +16,20 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: '5.2'
|
20
20
|
- - "<"
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: '
|
22
|
+
version: '7'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
27
|
- - ">="
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version:
|
29
|
+
version: '5.2'
|
30
30
|
- - "<"
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: '
|
32
|
+
version: '7'
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: confstruct
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -166,44 +166,30 @@ dependencies:
|
|
166
166
|
requirements:
|
167
167
|
- - "~>"
|
168
168
|
- !ruby/object:Gem::Version
|
169
|
-
version: '
|
169
|
+
version: '6.0'
|
170
170
|
type: :development
|
171
171
|
prerelease: false
|
172
172
|
version_requirements: !ruby/object:Gem::Requirement
|
173
173
|
requirements:
|
174
174
|
- - "~>"
|
175
175
|
- !ruby/object:Gem::Version
|
176
|
-
version: '
|
176
|
+
version: '6.0'
|
177
177
|
- !ruby/object:Gem::Dependency
|
178
178
|
name: webmock
|
179
179
|
requirement: !ruby/object:Gem::Requirement
|
180
180
|
requirements:
|
181
181
|
- - "~>"
|
182
182
|
- !ruby/object:Gem::Version
|
183
|
-
version:
|
183
|
+
version: '3.0'
|
184
184
|
type: :development
|
185
185
|
prerelease: false
|
186
186
|
version_requirements: !ruby/object:Gem::Requirement
|
187
187
|
requirements:
|
188
188
|
- - "~>"
|
189
189
|
- !ruby/object:Gem::Version
|
190
|
-
version:
|
191
|
-
|
192
|
-
|
193
|
-
requirement: !ruby/object:Gem::Requirement
|
194
|
-
requirements:
|
195
|
-
- - ">="
|
196
|
-
- !ruby/object:Gem::Version
|
197
|
-
version: '0'
|
198
|
-
type: :development
|
199
|
-
prerelease: false
|
200
|
-
version_requirements: !ruby/object:Gem::Requirement
|
201
|
-
requirements:
|
202
|
-
- - ">="
|
203
|
-
- !ruby/object:Gem::Version
|
204
|
-
version: '0'
|
205
|
-
description:
|
206
|
-
email:
|
190
|
+
version: '3.0'
|
191
|
+
description:
|
192
|
+
email:
|
207
193
|
executables: []
|
208
194
|
extensions: []
|
209
195
|
extra_rdoc_files: []
|
@@ -212,22 +198,17 @@ files:
|
|
212
198
|
- README.md
|
213
199
|
- Rakefile
|
214
200
|
- app/assets/images/bento_search/large_loader.gif
|
215
|
-
- app/assets/javascripts/bento_search.js
|
216
201
|
- app/assets/javascripts/bento_search/ajax_load.js
|
217
202
|
- app/assets/stylesheets/bento_search/suggested_styles.css
|
218
203
|
- app/controllers/bento_search/bento_search_controller.rb
|
219
204
|
- app/controllers/bento_search/search_controller.rb
|
220
205
|
- app/helpers/bento_search_helper.rb
|
221
206
|
- app/item_decorators/bento_search/decorator_base.rb
|
222
|
-
- app/item_decorators/bento_search/ebscohost/conditional_openurl_main_link.rb
|
223
207
|
- app/item_decorators/bento_search/no_links.rb
|
224
|
-
- app/item_decorators/bento_search/only_premade_openurl.rb
|
225
|
-
- app/item_decorators/bento_search/openurl_add_other_link.rb
|
226
|
-
- app/item_decorators/bento_search/openurl_main_link.rb
|
227
208
|
- app/item_decorators/bento_search/standard_decorator.rb
|
228
209
|
- app/models/bento_search/author.rb
|
210
|
+
- app/models/bento_search/concurrent_searcher.rb
|
229
211
|
- app/models/bento_search/link.rb
|
230
|
-
- app/models/bento_search/multi_searcher.rb
|
231
212
|
- app/models/bento_search/openurl_creator.rb
|
232
213
|
- app/models/bento_search/registrar.rb
|
233
214
|
- app/models/bento_search/result_item.rb
|
@@ -249,6 +230,7 @@ files:
|
|
249
230
|
- app/search_engines/bento_search/summon_engine.rb
|
250
231
|
- app/search_engines/bento_search/worldcat_sru_dc_engine.rb
|
251
232
|
- app/search_engines/bento_search/xerxes_engine.rb
|
233
|
+
- app/views/bento_search/_ajax_loading.html.erb
|
252
234
|
- app/views/bento_search/_atom_item.atom.builder
|
253
235
|
- app/views/bento_search/_item_title.html.erb
|
254
236
|
- app/views/bento_search/_link.html.erb
|
@@ -264,6 +246,7 @@ files:
|
|
264
246
|
- lib/bento_search/routes.rb
|
265
247
|
- lib/bento_search/util.rb
|
266
248
|
- lib/bento_search/version.rb
|
249
|
+
- lib/generators/bento_search/install/ajax_load_js_generator.rb
|
267
250
|
- lib/generators/bento_search/pull_ebsco_dbs_generator.rb
|
268
251
|
- lib/generators/bento_search/templates/ebsco_global_var.erb
|
269
252
|
- lib/http_client_patch/include_client.rb
|
@@ -272,6 +255,7 @@ files:
|
|
272
255
|
- test/decorator/standard_decorator_test.rb
|
273
256
|
- test/dummy/README.rdoc
|
274
257
|
- test/dummy/Rakefile
|
258
|
+
- test/dummy/app/assets/config/manifest.js
|
275
259
|
- test/dummy/app/assets/javascripts/application.js
|
276
260
|
- test/dummy/app/assets/stylesheets/application.css
|
277
261
|
- test/dummy/app/controllers/application_controller.rb
|
@@ -289,7 +273,6 @@ files:
|
|
289
273
|
- test/dummy/config/initializers/backtrace_silencers.rb
|
290
274
|
- test/dummy/config/initializers/inflections.rb
|
291
275
|
- test/dummy/config/initializers/mime_types.rb
|
292
|
-
- test/dummy/config/initializers/secret_token.rb
|
293
276
|
- test/dummy/config/initializers/session_store.rb
|
294
277
|
- test/dummy/config/initializers/wrap_parameters.rb
|
295
278
|
- test/dummy/config/locales/en.yml
|
@@ -317,10 +300,11 @@ files:
|
|
317
300
|
- test/search_engines/xerxes_engine_test.rb
|
318
301
|
- test/support/atom.xsd.xml
|
319
302
|
- test/support/test_with_cassette.rb
|
303
|
+
- test/support/xml.xsd
|
320
304
|
- test/test_helper.rb
|
305
|
+
- test/unit/concurrent_searcher_test.rb
|
321
306
|
- test/unit/handle_highlight_tags_test.rb
|
322
307
|
- test/unit/item_decorators_test.rb
|
323
|
-
- test/unit/multi_searcher_test.rb
|
324
308
|
- test/unit/openurl_creator_test.rb
|
325
309
|
- test/unit/pagination_test.rb
|
326
310
|
- test/unit/register_engine_test.rb
|
@@ -352,7 +336,10 @@ files:
|
|
352
336
|
- test/vcr_cassettes/ebscohost/live_search_smoke_test.yml
|
353
337
|
- test/vcr_cassettes/ebscohost/multi-field_author_title.yml
|
354
338
|
- test/vcr_cassettes/ebscohost/multi-field_citation_numbers.yml
|
339
|
+
- test/vcr_cassettes/eds/FullText_CustomLink.yml
|
355
340
|
- test/vcr_cassettes/eds/basic_search_smoke_test.yml
|
341
|
+
- test/vcr_cassettes/eds/catalog_ebook_query.yml
|
342
|
+
- test/vcr_cassettes/eds/catalog_query.yml
|
356
343
|
- test/vcr_cassettes/eds/get_auth_token.yml
|
357
344
|
- test/vcr_cassettes/eds/get_auth_token_failure.yml
|
358
345
|
- test/vcr_cassettes/eds/get_with_auth.yml
|
@@ -403,7 +390,7 @@ files:
|
|
403
390
|
homepage: http://github.com/jrochkind/bento_search
|
404
391
|
licenses: []
|
405
392
|
metadata: {}
|
406
|
-
post_install_message:
|
393
|
+
post_install_message:
|
407
394
|
rdoc_options: []
|
408
395
|
require_paths:
|
409
396
|
- lib
|
@@ -414,19 +401,21 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
414
401
|
version: '0'
|
415
402
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
416
403
|
requirements:
|
417
|
-
- - "
|
404
|
+
- - ">"
|
418
405
|
- !ruby/object:Gem::Version
|
419
|
-
version:
|
406
|
+
version: 1.3.1
|
420
407
|
requirements: []
|
421
|
-
|
422
|
-
|
423
|
-
signing_key:
|
408
|
+
rubygems_version: 3.2.22
|
409
|
+
signing_key:
|
424
410
|
specification_version: 4
|
425
411
|
summary: An abstraction/normalization layer for querying and displaying results for
|
426
412
|
external search engines, in Ruby on Rails.
|
427
413
|
test_files:
|
428
414
|
- test/decorator/decorator_base_test.rb
|
429
415
|
- test/decorator/standard_decorator_test.rb
|
416
|
+
- test/dummy/README.rdoc
|
417
|
+
- test/dummy/Rakefile
|
418
|
+
- test/dummy/app/assets/config/manifest.js
|
430
419
|
- test/dummy/app/assets/javascripts/application.js
|
431
420
|
- test/dummy/app/assets/stylesheets/application.css
|
432
421
|
- test/dummy/app/controllers/application_controller.rb
|
@@ -443,7 +432,6 @@ test_files:
|
|
443
432
|
- test/dummy/config/initializers/backtrace_silencers.rb
|
444
433
|
- test/dummy/config/initializers/inflections.rb
|
445
434
|
- test/dummy/config/initializers/mime_types.rb
|
446
|
-
- test/dummy/config/initializers/secret_token.rb
|
447
435
|
- test/dummy/config/initializers/session_store.rb
|
448
436
|
- test/dummy/config/initializers/wrap_parameters.rb
|
449
437
|
- test/dummy/config/locales/en.yml
|
@@ -453,8 +441,6 @@ test_files:
|
|
453
441
|
- test/dummy/public/422.html
|
454
442
|
- test/dummy/public/500.html
|
455
443
|
- test/dummy/public/favicon.ico
|
456
|
-
- test/dummy/Rakefile
|
457
|
-
- test/dummy/README.rdoc
|
458
444
|
- test/dummy/script/rails
|
459
445
|
- test/functional/bento_search/search_controller_test.rb
|
460
446
|
- test/helper/bento_search_helper_test.rb
|
@@ -474,10 +460,11 @@ test_files:
|
|
474
460
|
- test/search_engines/xerxes_engine_test.rb
|
475
461
|
- test/support/atom.xsd.xml
|
476
462
|
- test/support/test_with_cassette.rb
|
463
|
+
- test/support/xml.xsd
|
477
464
|
- test/test_helper.rb
|
465
|
+
- test/unit/concurrent_searcher_test.rb
|
478
466
|
- test/unit/handle_highlight_tags_test.rb
|
479
467
|
- test/unit/item_decorators_test.rb
|
480
|
-
- test/unit/multi_searcher_test.rb
|
481
468
|
- test/unit/openurl_creator_test.rb
|
482
469
|
- test/unit/pagination_test.rb
|
483
470
|
- test/unit/register_engine_test.rb
|
@@ -491,6 +478,7 @@ test_files:
|
|
491
478
|
- test/vcr_cassettes/doaj_articles/live_get_identifier__raises_on_no_results.yml
|
492
479
|
- test/vcr_cassettes/doaj_articles/multifield_author-title.yml
|
493
480
|
- test/vcr_cassettes/doaj_articles/pagination.yml
|
481
|
+
- test/vcr_cassettes/ebscohost/RILM_record_with_ISSN_in__jid__element.yml
|
494
482
|
- test/vcr_cassettes/ebscohost/affiliation_search.yml
|
495
483
|
- test/vcr_cassettes/ebscohost/another_dissertation.yml
|
496
484
|
- test/vcr_cassettes/ebscohost/dissertation_example.yml
|
@@ -508,8 +496,10 @@ test_files:
|
|
508
496
|
- test/vcr_cassettes/ebscohost/live_search_smoke_test.yml
|
509
497
|
- test/vcr_cassettes/ebscohost/multi-field_author_title.yml
|
510
498
|
- test/vcr_cassettes/ebscohost/multi-field_citation_numbers.yml
|
511
|
-
- test/vcr_cassettes/
|
499
|
+
- test/vcr_cassettes/eds/FullText_CustomLink.yml
|
512
500
|
- test/vcr_cassettes/eds/basic_search_smoke_test.yml
|
501
|
+
- test/vcr_cassettes/eds/catalog_ebook_query.yml
|
502
|
+
- test/vcr_cassettes/eds/catalog_query.yml
|
513
503
|
- test/vcr_cassettes/eds/get_auth_token.yml
|
514
504
|
- test/vcr_cassettes/eds/get_auth_token_failure.yml
|
515
505
|
- test/vcr_cassettes/eds/get_with_auth.yml
|