quick_search-core 0.0.1 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +43 -55
- data/Rakefile +30 -4
- data/app/assets/javascripts/quick_search/event_tracking.js.erb +2 -8
- data/app/assets/stylesheets/{quick_search.css.scss.erb → quick_search.scss.erb} +0 -0
- data/app/assets/stylesheets/quick_search/{appstats.css.scss → appstats.scss} +0 -0
- data/app/assets/stylesheets/quick_search/{opensearch.css.scss → opensearch.scss} +0 -0
- data/app/assets/stylesheets/quick_search/{pages.css.scss → pages.scss} +0 -0
- data/app/assets/stylesheets/quick_search/{quick_search.css.scss → quick_search.scss} +1 -0
- data/app/assets/stylesheets/quick_search/{search.css.scss → search.scss} +0 -0
- data/app/controllers/concerns/quick_search/searcher_concern.rb +8 -1
- data/app/controllers/concerns/quick_search/searcher_config.rb +5 -2
- data/app/controllers/quick_search/appstats_controller.rb +2 -2
- data/app/controllers/quick_search/search_controller.rb +7 -7
- data/app/models/application_record.rb +3 -0
- data/app/models/event.rb +1 -1
- data/app/models/search.rb +1 -1
- data/app/searchers/quick_search/best_bets_searcher.rb +25 -7
- data/app/views/layouts/quick_search/_google_analytics.html.erb +0 -9
- data/lib/generators/quick_search/install_generator.rb +101 -0
- data/lib/generators/quick_search/templates/best_bets.yml +86 -0
- data/lib/generators/quick_search/templates/post_install.txt +3 -1
- data/lib/generators/quick_search/templates/quick_search_config.yml +25 -3
- data/lib/quick_search.rb +0 -2
- data/lib/quick_search/engine.rb +16 -1
- data/lib/quick_search/version.rb +1 -1
- data/lib/tasks/best_bets.rake +2 -0
- data/test/controllers/concerns/doi_trap_test.rb +3 -3
- data/test/controllers/concerns/on_campus_test.rb +4 -4
- data/test/controllers/concerns/query_parser_test.rb +6 -6
- data/test/controllers/{appstats_controller_test.rb → quick_search/appstats_controller_test.rb} +1 -1
- data/test/controllers/{opensearch_controller_test.rb → quick_search/opensearch_controller_test.rb} +6 -1
- data/test/controllers/{pages_controller_test.rb → quick_search/pages_controller_test.rb} +1 -1
- data/test/controllers/quick_search/search_controller_test.rb +15 -0
- data/test/dummy/README.rdoc +28 -0
- data/test/dummy/Rakefile +6 -0
- data/test/dummy/app/assets/javascripts/application.js +13 -0
- data/test/dummy/app/assets/stylesheets/application.css +15 -0
- data/test/dummy/app/controllers/application_controller.rb +5 -0
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/views/layouts/application.html.erb +14 -0
- data/test/dummy/bin/bundle +3 -0
- data/test/dummy/bin/rails +4 -0
- data/test/dummy/bin/rake +4 -0
- data/test/dummy/config.ru +4 -0
- data/{config → test/dummy/config}/application.rb +6 -8
- data/test/dummy/config/best_bets.yml +86 -0
- data/test/dummy/config/boot.rb +5 -0
- data/test/dummy/config/database.yml +25 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +37 -0
- data/test/dummy/config/environments/production.rb +78 -0
- data/test/dummy/config/environments/test.rb +39 -0
- data/test/dummy/config/initializers/assets.rb +8 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
- data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/test/dummy/config/initializers/inflections.rb +16 -0
- data/test/dummy/config/initializers/mime_types.rb +4 -0
- data/test/dummy/config/initializers/session_store.rb +3 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/locales/en.yml +23 -0
- data/test/dummy/config/quick_search_config.yml +58 -0
- data/test/dummy/config/routes.rb +6 -0
- data/test/dummy/config/secrets.yml +22 -0
- data/test/dummy/db/schema.rb +31 -0
- data/test/dummy/db/test.sqlite3 +0 -0
- data/test/dummy/log/benchmark.log +241 -0
- data/test/dummy/log/test.log +4762 -0
- data/test/dummy/public/404.html +67 -0
- data/test/dummy/public/422.html +67 -0
- data/test/dummy/public/500.html +66 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/0_/0_w_ydOOEFQOoETxJa-IxKppQocaiDwM5V08djCPYso.cache +3 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/1n/1nStVaWIQEwAlksUpB1fInwq6v3TikPvuRaSwwCnCLQ.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/3m/3mWfBeEpm_bJvaPQZYvnnAVtE_2helOWh_Tv-cEflrk.cache +5 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/4s/4sg52OgD5l4qx4GnojCVxg2itqwqb-KRanEdmdMus3Y.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/5U/5UPnsccuZFLk9OqbmFMvB55mbvGptApx9Z55HWjEN90.cache +3 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/9a/9acKNgyVD8_WK401tMy6Ce98g-LS4VpwFvGQdzCV9mI.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/B5/B5ptGSZGmgHvoK2UDCAtpMhWxJEKxKFhyL9ACeBfzQk.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/Ba/BaymviI8cwAJQMOIzWCf6Lt-PM2sNFTvY9hQKsfDNNw.cache +3 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/Dd/DdFHg3C_voetfvKGKX7t8PGzZlkO45-huHNtaou5rxg.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/F0/F0oWBwLHpGFYNNtnGav-dJFH8rMDpNA5L8_aWm5Wq34.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/Fp/FprCQeeZguht46WNSpA3Y3JHKehovFXrj63nDrvvwFE.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/GJ/GJrfWiarIi0Dt6sdKVMfUF1cdZ6NbqZxXHhzNbFtpBw.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/Gp/GpoziOxxB-hisco0rl7Nnsnw0UWud7R9Yge2Q3o1eN4.cache +2 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/Hr/Hr-kCuPY72nIKAdnsDTz9JqXd_z1WL6FSGMAq4HppZg.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/It/It5VkJv-53-LICLKZWWyp2WcbD86DGotAL0MY3hhfpg.cache +6 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/MA/MAY_nSUZSFcwPf9b-AWcqad4OIb_VKmHGs5E7PYdgvI.cache +2 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/O6/O6dw148Xya7NYlsRFMEzJyvRcySM6iOL1jRUpdQo9B8.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/O8/O8akbUwAbmIKY-AhITimq-JDQ6IgsO3Hvq2v5etufFw.cache +2 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/OD/ODHapE0li3WI1laVJoksoI5nmQd-8dDJXq_VxS4XefE.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/Oj/OjMkKTW7OkthjJAQHDID8GV30IZC9F0dJ1zGiFame9U.cache +4 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/Os/OsQkEOfE0Pfy_sIdEIVWLojZnQm4mcrZpXg4suYrV70.cache +2 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/SU/SUtZ_ltPqy9A9A-_zqNPhNPvjxCOnrdqXHSZv5S9mOk.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/Tv/TvZgmm69VEMHUJQIBoij61oXMkgzp6whVo7l8mJ9qpw.cache +3 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/UA/UAOIipK_ejTAUFI6XxASoweyUiC3t64VfVzV-MfsFD8.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/YJ/YJZdK01T1KTS84Mb6p_2TasmJNZeGZc4FMtBPCKGr_M.cache +3 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/ah/ahhhd3ysbQmVDNzq2L_rb4t6rqqdnqeY6ujztBoZDA8.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/dz/dzCaa80YgyvJINTgsyrVhKv9UQ1OC82GfAsA-IP96iQ.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/fI/fInu_Gja7ik39t207tqj4CtlL0akQRbjD2T7qEtd0zE.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/gv/gvZKkbgiExbcQrT4eo0HB-j4JoDRAxdmDjKRxeEdK0Y.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/hj/hj_r-O1QjHJIPcZVnlB_FGPdIRAi9NkxpT2oXDRIsGE.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/jj/jjdQCKZsewws2eRP7b2AVxRMvseOp8djjlDkB8UOtac.cache +3 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/o2/o2V1ahk8vFR6sXWNh5BB7w6MBj04zCyX-o1xFZONydE.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/o6/o6ZQbq1aBFuVrE2xLbSbyZH2736sWM3Yj4ky9chT1bI.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/os/os0qWv3yDfep0e7vVSGTgfn_n3xc4C4QZgmMzLQn0Ks.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/pO/pO8hHVwybv1ZJBdPa2YC6bjqmk020OYFl85TYxtmrWQ.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/pj/pjJDYrBipDo6Tr9_-W4UDzfZZ4UPTy9YpXrBQFRXnlo.cache +3 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/pw/pwiIhcWPwTuy5Miz5zqOQGYFx-K3TbaCVQ6ls7EBkk0.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/sR/sRU-UT8qK_38kkiFDXKBPogO1oOZuSvJFH-pgqPL_Ms.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/tE/tEO71oPPFXN_2c4p39nU0OiF9ARg13fjdQlnPqAx1KY.cache +4 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/tP/tPF6H9NRpGO3whu2y5_e_R_1EACKdCwu5437D83qJT0.cache +2 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/tW/tWFRsAv4WWu2ch-x3AJZd3KOvBXG3MwH6Q6Xn-tFBtw.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/x6/x6W754ylumshr3wBUHHmcgyWs8UR3Od7FaI6tqvjKmk.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/yy/yyJ1P7RQciOiW8TgQiu1RMDdbWd4rqxd2BGU9HkY3L8.cache +0 -0
- data/test/integration/searching_test.rb +15 -27
- data/test/searcher/best_bets_test.rb +13 -18
- data/test/test_helper.rb +23 -10
- data/test/vcr_cassettes/searches/best_bets_acm.yml +31 -0
- data/test/vcr_cassettes/searches/harry_potter.yml +6901 -0
- data/test/vcr_cassettes/searches/hunt_library.yml +66736 -0
- data/test/vcr_cassettes/searches/printing.yml +191 -0
- data/test/vcr_cassettes/searches/speling.yml +1172 -0
- metadata +197 -71
- data/test/controllers/search_controller_test.rb +0 -15
- data/test/integration/catalog_search_test.rb +0 -8
- data/test/integration/google_analytics_test.rb +0 -23
- data/test/integration/smart_subjects_test.rb +0 -8
- data/test/integration/website_search_test.rb +0 -8
- data/test/searcher/catalog_test.rb +0 -35
- data/test/searcher/ematrix_database_test.rb +0 -27
- data/test/searcher/ematrix_journal_test.rb +0 -27
- data/test/searcher/faq_test.rb +0 -27
- data/test/searcher/smart_subjects_test.rb +0 -27
- data/test/searcher/summon_test.rb +0 -13
- data/test/searcher/website_test.rb +0 -34
@@ -1,35 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
class CatalogSearcherTest < ActiveSupport::TestCase
|
4
|
-
|
5
|
-
setup do
|
6
|
-
@catalog = QuickSearch::CatalogSearcher.new(HTTPClient.new, 'printing', 3)
|
7
|
-
end
|
8
|
-
|
9
|
-
test "should have http client, query, and per_page" do
|
10
|
-
assert @catalog.http.is_a? HTTPClient
|
11
|
-
assert @catalog.q == 'printing'
|
12
|
-
assert_equal 3, @catalog.per_page
|
13
|
-
end
|
14
|
-
|
15
|
-
vcr_test "should have raw result", 'searches', cassette: 'catalog_printing' do
|
16
|
-
raw_results = @catalog.search
|
17
|
-
assert raw_results.children.first.name == 'searchResponse'
|
18
|
-
#assert raw_results['searchResponse']
|
19
|
-
end
|
20
|
-
|
21
|
-
vcr_test "should have parsed results", 'searches', cassette: 'catalog_printing' do
|
22
|
-
@catalog.search
|
23
|
-
parsed_results = @catalog.results
|
24
|
-
assert parsed_results.first.title.include?('Federal printing : overview and selected issues')
|
25
|
-
end
|
26
|
-
|
27
|
-
# # FIXME: this test should be moved to a result set object
|
28
|
-
# vcr_test "should have raw search results", "searches", cassette: 'printing' do
|
29
|
-
# summon = QuickSearch::SummonSearcher.new(HTTPClient.new, 'printing', 3)
|
30
|
-
# summon.search
|
31
|
-
# results = summon.results
|
32
|
-
# assert results.first.description.include?('Although we live in the digital age')
|
33
|
-
# end
|
34
|
-
|
35
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
class EmatrixDatabaseSearcherTest < ActiveSupport::TestCase
|
4
|
-
|
5
|
-
setup do
|
6
|
-
@database = QuickSearch::EmatrixDatabaseSearcher.new(HTTPClient.new, 'chemistry', 3)
|
7
|
-
end
|
8
|
-
|
9
|
-
test "should have http client, query, and per_page" do
|
10
|
-
assert @database.http.is_a? HTTPClient
|
11
|
-
assert @database.q == 'chemistry'
|
12
|
-
assert_equal 3, @database.per_page
|
13
|
-
end
|
14
|
-
|
15
|
-
vcr_test "should have raw result", 'searches', cassette: 'ematrix_database_chemistry' do
|
16
|
-
raw_results = @database.search
|
17
|
-
assert raw_results.is_a?(Nokogiri::XML::Document)
|
18
|
-
end
|
19
|
-
|
20
|
-
vcr_test "should have parsed results", 'searches', cassette: 'ematrix_database_chemistry' do
|
21
|
-
@database.search
|
22
|
-
parsed_results = @database.results
|
23
|
-
assert parsed_results.first.title.include?('Encyclopedia of analytical chemistry')
|
24
|
-
assert parsed_results.first.link.include?('proxying.lib.ncsu.edu')
|
25
|
-
end
|
26
|
-
|
27
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
class EmatrixJournalSearcherTest < ActiveSupport::TestCase
|
4
|
-
|
5
|
-
setup do
|
6
|
-
@journal = QuickSearch::EmatrixJournalSearcher.new(HTTPClient.new, 'chemistry', 3)
|
7
|
-
end
|
8
|
-
|
9
|
-
test "should have http client, query, and per_page" do
|
10
|
-
assert @journal.http.is_a? HTTPClient
|
11
|
-
assert @journal.q == 'chemistry'
|
12
|
-
assert_equal 3, @journal.per_page
|
13
|
-
end
|
14
|
-
|
15
|
-
vcr_test "should have raw result", 'searches', cassette: 'ematrix_journal_chemistry' do
|
16
|
-
raw_results = @journal.search
|
17
|
-
assert raw_results.is_a?(Nokogiri::XML::Document)
|
18
|
-
end
|
19
|
-
|
20
|
-
vcr_test "should have parsed results", 'searches', cassette: 'ematrix_journal_chemistry' do
|
21
|
-
@journal.search
|
22
|
-
parsed_results = @journal.results
|
23
|
-
assert parsed_results.first.title.include?('Annual reports')
|
24
|
-
assert parsed_results.first.link.include?('33000')
|
25
|
-
end
|
26
|
-
|
27
|
-
end
|
data/test/searcher/faq_test.rb
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
class FaqSearcherTest < ActiveSupport::TestCase
|
4
|
-
|
5
|
-
setup do
|
6
|
-
@faq = QuickSearch::FaqSearcher.new(HTTPClient.new, 'printing', 3)
|
7
|
-
end
|
8
|
-
|
9
|
-
test "should have http client, query, and per_page" do
|
10
|
-
assert @faq.http.is_a? HTTPClient
|
11
|
-
assert @faq.q == 'printing'
|
12
|
-
assert_equal 3, @faq.per_page
|
13
|
-
end
|
14
|
-
|
15
|
-
# vcr_test "should have raw result", 'searches', cassette: 'faq_printing' do
|
16
|
-
# raw_results = @faq.search
|
17
|
-
# assert raw_results.is_a?(Sequel::MySQL::Dataset)
|
18
|
-
# end
|
19
|
-
|
20
|
-
# vcr_test "should have parsed results", 'searches', cassette: 'faq_printing' do
|
21
|
-
# @faq.search
|
22
|
-
# parsed_results = @faq.results
|
23
|
-
# assert parsed_results.first.title.include?('Print Quota')
|
24
|
-
# assert parsed_results.first.link.include?('274')
|
25
|
-
# end
|
26
|
-
|
27
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
class SmartSubjectsSearcherTest < ActiveSupport::TestCase
|
4
|
-
|
5
|
-
setup do
|
6
|
-
@subjects = QuickSearch::SmartSubjectsSearcher.new(HTTPClient.new, 'chemistry', 3)
|
7
|
-
end
|
8
|
-
|
9
|
-
test "should have http client, query, and per_page" do
|
10
|
-
assert @subjects.http.is_a? HTTPClient
|
11
|
-
assert @subjects.q == 'chemistry'
|
12
|
-
assert_equal 3, @subjects.per_page
|
13
|
-
end
|
14
|
-
|
15
|
-
vcr_test "should have raw result", 'searches', cassette: 'smart_subjects_chemistry' do
|
16
|
-
raw_results = @subjects.search
|
17
|
-
assert raw_results['responseHeader']
|
18
|
-
end
|
19
|
-
|
20
|
-
vcr_test "should have parsed results", 'searches', cassette: 'smart_subjects_chemistry' do
|
21
|
-
@subjects.search
|
22
|
-
parsed_results = @subjects.results
|
23
|
-
assert parsed_results.first.title.include?('Biochemistry')
|
24
|
-
assert parsed_results.first.link.include?('subject=13')
|
25
|
-
end
|
26
|
-
|
27
|
-
end
|
@@ -1,13 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
class SummonSearcherTest < ActiveSupport::TestCase
|
4
|
-
|
5
|
-
# FIXME: this test should be moved to a result set object
|
6
|
-
vcr_test "should have author in result", "searches", cassette: 'printing' do
|
7
|
-
summon = QuickSearch::SummonSearcher.new(HTTPClient.new, 'printing', 3)
|
8
|
-
summon.search
|
9
|
-
results = summon.results
|
10
|
-
assert results.first.description.include?('Although we live in the digital age')
|
11
|
-
end
|
12
|
-
|
13
|
-
end
|
@@ -1,34 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
class WebsiteSearcherTest < ActiveSupport::TestCase
|
4
|
-
|
5
|
-
setup do
|
6
|
-
@website = QuickSearch::WebsiteSearcher.new(HTTPClient.new, 'printing', 3)
|
7
|
-
end
|
8
|
-
|
9
|
-
test "should have http client, query, and per_page" do
|
10
|
-
assert @website.http.is_a? HTTPClient
|
11
|
-
assert @website.q == 'printing'
|
12
|
-
assert_equal 3, @website.per_page
|
13
|
-
end
|
14
|
-
|
15
|
-
vcr_test "should have raw result", 'searches', cassette: 'website_printing' do
|
16
|
-
raw_results = @website.search
|
17
|
-
assert raw_results['responseHeader']
|
18
|
-
end
|
19
|
-
|
20
|
-
vcr_test "should have parsed results", 'searches', cassette: 'website_printing' do
|
21
|
-
@website.search
|
22
|
-
parsed_results = @website.results
|
23
|
-
assert parsed_results.first.title.include?('Print')
|
24
|
-
end
|
25
|
-
|
26
|
-
# # FIXME: this test should be moved to a result set object
|
27
|
-
# vcr_test "should have raw search results", "searches", cassette: 'printing' do
|
28
|
-
# summon = QuickSearch::SummonSearcher.new(HTTPClient.new, 'printing', 3)
|
29
|
-
# summon.search
|
30
|
-
# results = summon.results
|
31
|
-
# assert results.first.description.include?('Although we live in the digital age')
|
32
|
-
# end
|
33
|
-
|
34
|
-
end
|