quick_search-core 0.0.1 → 0.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/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
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
---
|
|
2
|
+
best_bets:
|
|
3
|
+
academicsearchpremier:
|
|
4
|
+
title: Academic Search Complete
|
|
5
|
+
url: http://search.ebscohost.com/login.aspx?authtype=ip,uid&profile=ehost&defaultdb=a9h
|
|
6
|
+
description: Search for full-text articles from a wide range of scholarly journals.
|
|
7
|
+
Formerly named Academic Search Premier.
|
|
8
|
+
keywords:
|
|
9
|
+
- academic search complete
|
|
10
|
+
- academic search complet
|
|
11
|
+
- academic search compleat
|
|
12
|
+
- academic search compleet
|
|
13
|
+
- academic search elite
|
|
14
|
+
- academic elite
|
|
15
|
+
- search elite
|
|
16
|
+
- academic search fulltext elite
|
|
17
|
+
- academic search premier
|
|
18
|
+
- academic premier
|
|
19
|
+
- academic premiere
|
|
20
|
+
- academic search premiere
|
|
21
|
+
- academic search premeir
|
|
22
|
+
- acedemic search premier
|
|
23
|
+
- academic search premire
|
|
24
|
+
- academic search primer
|
|
25
|
+
acm:
|
|
26
|
+
title: ACM Digital Library
|
|
27
|
+
url: http://www.acm.org/dl/
|
|
28
|
+
description: Provides access to ACM journals, magazines, and conference proceedings
|
|
29
|
+
keywords:
|
|
30
|
+
- acm
|
|
31
|
+
- acm digital library
|
|
32
|
+
- acm portal
|
|
33
|
+
- acm database
|
|
34
|
+
- acm digital
|
|
35
|
+
eric:
|
|
36
|
+
title: ERIC (Educational Resource Information Center)
|
|
37
|
+
url: http://search.ebscohost.com/login.aspx?authtype=ip,uid&profile=ehost&defaultdb=eric
|
|
38
|
+
description: Use ERIC to find journal articles in the field of education
|
|
39
|
+
keywords:
|
|
40
|
+
- eric database
|
|
41
|
+
- eric
|
|
42
|
+
- education
|
|
43
|
+
- educational resources information center
|
|
44
|
+
googlescholar:
|
|
45
|
+
title: Google Scholar
|
|
46
|
+
url: http://scholar.google.com
|
|
47
|
+
description: Use Google Scholar and get access to articles via our library
|
|
48
|
+
keywords:
|
|
49
|
+
- google scholar
|
|
50
|
+
- google search
|
|
51
|
+
- google com
|
|
52
|
+
- www google com
|
|
53
|
+
- googlescholar
|
|
54
|
+
- googlescholar
|
|
55
|
+
- google
|
|
56
|
+
lexisnexis:
|
|
57
|
+
title: LexisNexis Academic
|
|
58
|
+
url: http://www.lexisnexis.com/
|
|
59
|
+
description: Search for news, business, legal, medical, and congressional information
|
|
60
|
+
keywords:
|
|
61
|
+
- lexis
|
|
62
|
+
- nexis
|
|
63
|
+
- lexis nexis
|
|
64
|
+
- lexis nexus
|
|
65
|
+
- lexus nexis
|
|
66
|
+
- lexis-nexis
|
|
67
|
+
- lexisnexis
|
|
68
|
+
- lexus
|
|
69
|
+
- nexus
|
|
70
|
+
- lexus nexus
|
|
71
|
+
- lexus-nexus
|
|
72
|
+
- lexusnexus
|
|
73
|
+
- lexxis nexxis
|
|
74
|
+
- lexxus nexus
|
|
75
|
+
- lexxus nexxus
|
|
76
|
+
- academic universe
|
|
77
|
+
- lexis nexis academic
|
|
78
|
+
- lexisnexis academic
|
|
79
|
+
pubmed:
|
|
80
|
+
title: PubMed
|
|
81
|
+
url: http://www.ncbi.nlm.nih.gov/
|
|
82
|
+
description: Search citations from MEDLINE and other medical and life science
|
|
83
|
+
journals
|
|
84
|
+
keywords:
|
|
85
|
+
- pubmed
|
|
86
|
+
- pub med
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
|
|
2
|
+
To add/remove/replace searchers:
|
|
2
3
|
|
|
3
4
|
1. Add searcher gems (see README for list of gems) to your project's Gemfile
|
|
4
5
|
2. Add a theme gem to Gemfile (see README)
|
|
@@ -6,3 +7,4 @@ QuickSearch installation complete. To add searchers:
|
|
|
6
7
|
4. Add render_module calls to search results view for each searcher
|
|
7
8
|
|
|
8
9
|
For more information, see README and other documentation at http://github.com/ncsu-libraries/quick_search/
|
|
10
|
+
|
|
@@ -1,7 +1,29 @@
|
|
|
1
1
|
defaults: &defaults
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
|
|
3
|
+
# QuickSearch theme name
|
|
4
|
+
#
|
|
5
|
+
# To use a different theme, you must first add a new theme gem to the Gemfile,
|
|
6
|
+
# run 'bundle install', then update this with the new theme name.
|
|
7
|
+
#
|
|
8
|
+
# See docs for more details: https://github.com/NCSU-Libraries/quick_search/blob/master/docs/configuration.md
|
|
9
|
+
|
|
10
|
+
theme: ''
|
|
11
|
+
|
|
12
|
+
# Searchers that QuickSearch will automatically search
|
|
13
|
+
#
|
|
14
|
+
# To use different searchers, you must first add the new searcher gem to the Gemfile,
|
|
15
|
+
# run 'bundle install', then add the searcher name to this list. You must also
|
|
16
|
+
# add a 'render_module()' helper call to your search results page tempate to expose the
|
|
17
|
+
# results for that searcher.
|
|
18
|
+
#
|
|
19
|
+
# See docs for more details: https://github.com/NCSU-Libraries/quick_search/blob/master/docs/configuration.md
|
|
20
|
+
|
|
21
|
+
searchers: [best_bets]
|
|
22
|
+
|
|
23
|
+
# Searchers listed in the "result type guide" bar that lists result types that were found for a given search
|
|
24
|
+
|
|
25
|
+
found_types: []
|
|
26
|
+
|
|
5
27
|
per_page: 3
|
|
6
28
|
max_per_page: 50
|
|
7
29
|
http_timeout: 1.5
|
data/lib/quick_search.rb
CHANGED
data/lib/quick_search/engine.rb
CHANGED
|
@@ -5,12 +5,27 @@ module QuickSearch
|
|
|
5
5
|
initializer :quick_search, :after => :add_view_paths do
|
|
6
6
|
config_file = File.join(Rails.root, "/config/quick_search_config.yml")
|
|
7
7
|
if File.exist?(config_file)
|
|
8
|
-
APP_CONFIG = YAML.load_file(config_file)[Rails.env]
|
|
8
|
+
QuickSearch::Engine::APP_CONFIG = YAML.load_file(config_file)[Rails.env]
|
|
9
9
|
ActiveSupport.on_load(:action_controller) do
|
|
10
10
|
theme_engine_class = "#{QuickSearch::Engine::APP_CONFIG['theme'].classify}::Engine".constantize
|
|
11
11
|
prepend_view_path theme_engine_class.root.join('app', 'views', QuickSearch::Engine::APP_CONFIG['theme'])
|
|
12
12
|
end
|
|
13
13
|
end
|
|
14
14
|
end
|
|
15
|
+
|
|
16
|
+
initializer :best_bets, :after => :quick_search do
|
|
17
|
+
if defined? QuickSearch::Engine::APP_CONFIG and QuickSearch::Engine::APP_CONFIG['best_bets']['solr_url'].empty?
|
|
18
|
+
best_bets_file = File.join(Rails.root, "/config/best_bets.yml")
|
|
19
|
+
if File.exist?(best_bets_file)
|
|
20
|
+
QuickSearch::Engine::BEST_BETS = YAML.load_file(best_bets_file)['best_bets']
|
|
21
|
+
QuickSearch::Engine::BEST_BETS_INDEX = {}
|
|
22
|
+
QuickSearch::Engine::BEST_BETS.each do |best_bet_name, best_bet|
|
|
23
|
+
best_bet['keywords'].each do |keyword|
|
|
24
|
+
QuickSearch::Engine::BEST_BETS_INDEX[keyword.downcase] = best_bet_name
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
15
30
|
end
|
|
16
31
|
end
|
data/lib/quick_search/version.rb
CHANGED
data/lib/tasks/best_bets.rake
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
namespace :best_bets do
|
|
2
2
|
desc 'Update the BestBets SOLR index from best_bets.yml'
|
|
3
3
|
task :update_index => :environment do
|
|
4
|
+
require 'rsolr'
|
|
5
|
+
|
|
4
6
|
best_bets_yaml = File.join Rails.root, "/config/best_bets.yml"
|
|
5
7
|
best_bets = YAML.load_file(best_bets_yaml)['best_bets']
|
|
6
8
|
|
|
@@ -2,7 +2,7 @@ require 'test_helper'
|
|
|
2
2
|
|
|
3
3
|
class DoiTrapTest < ActionController::TestCase
|
|
4
4
|
|
|
5
|
-
include DoiTrap
|
|
5
|
+
include QuickSearch::DoiTrap
|
|
6
6
|
|
|
7
7
|
test "should be a doi" do
|
|
8
8
|
doi = '10.1016/0046-8177(95)90302-X'
|
|
@@ -13,7 +13,7 @@ class DoiTrapTest < ActionController::TestCase
|
|
|
13
13
|
test "should not be a doi" do
|
|
14
14
|
doi = '0046-8177(95)90302-X'
|
|
15
15
|
is_a_doi = is_a_doi?(doi)
|
|
16
|
-
assert_not is_a_doi
|
|
16
|
+
assert_not is_a_doi
|
|
17
17
|
end
|
|
18
18
|
|
|
19
|
-
end
|
|
19
|
+
end
|
|
@@ -2,10 +2,10 @@ require 'test_helper'
|
|
|
2
2
|
|
|
3
3
|
class OnCampusTest < ActionController::TestCase
|
|
4
4
|
|
|
5
|
-
include OnCampus
|
|
5
|
+
include QuickSearch::OnCampus
|
|
6
6
|
|
|
7
7
|
test "should be on campus" do
|
|
8
|
-
ip = '
|
|
8
|
+
ip = '192.168.1.100'
|
|
9
9
|
on_campus = on_campus?(ip)
|
|
10
10
|
assert on_campus
|
|
11
11
|
end
|
|
@@ -13,7 +13,7 @@ class OnCampusTest < ActionController::TestCase
|
|
|
13
13
|
test "should not be on campus" do
|
|
14
14
|
ip = '152.2.1.1'
|
|
15
15
|
on_campus = on_campus?(ip)
|
|
16
|
-
assert_not on_campus
|
|
16
|
+
assert_not on_campus
|
|
17
17
|
end
|
|
18
18
|
|
|
19
|
-
end
|
|
19
|
+
end
|
|
@@ -2,11 +2,11 @@ require 'test_helper'
|
|
|
2
2
|
|
|
3
3
|
class QueryParserTest < ActionController::TestCase
|
|
4
4
|
|
|
5
|
-
include QueryParser
|
|
5
|
+
include QuickSearch::QueryParser
|
|
6
6
|
|
|
7
7
|
test "should extract basic prefixed scoped query" do
|
|
8
8
|
full_query = 'scope:scrc libraries'
|
|
9
|
-
|
|
9
|
+
|
|
10
10
|
query = extracted_query(full_query)
|
|
11
11
|
assert_equal('libraries', query)
|
|
12
12
|
|
|
@@ -16,7 +16,7 @@ class QueryParserTest < ActionController::TestCase
|
|
|
16
16
|
|
|
17
17
|
test "should extract basic suffixed scoped query" do
|
|
18
18
|
full_query = 'libraries scope:scrc'
|
|
19
|
-
|
|
19
|
+
|
|
20
20
|
query = extracted_query(full_query)
|
|
21
21
|
assert_equal('libraries', query)
|
|
22
22
|
|
|
@@ -26,7 +26,7 @@ class QueryParserTest < ActionController::TestCase
|
|
|
26
26
|
|
|
27
27
|
test "should extract compound prefixed scoped query" do
|
|
28
28
|
full_query = 'scope:(scrc OR jobs) libraries'
|
|
29
|
-
|
|
29
|
+
|
|
30
30
|
query = extracted_query(full_query)
|
|
31
31
|
assert_equal('libraries', query)
|
|
32
32
|
|
|
@@ -36,7 +36,7 @@ class QueryParserTest < ActionController::TestCase
|
|
|
36
36
|
|
|
37
37
|
test "should extract compound suffixed scoped query" do
|
|
38
38
|
full_query = 'libraries scope:(scrc OR jobs)'
|
|
39
|
-
|
|
39
|
+
|
|
40
40
|
query = extracted_query(full_query)
|
|
41
41
|
assert_equal('libraries', query)
|
|
42
42
|
|
|
@@ -44,4 +44,4 @@ class QueryParserTest < ActionController::TestCase
|
|
|
44
44
|
assert_equal('scrc OR jobs', scope)
|
|
45
45
|
end
|
|
46
46
|
|
|
47
|
-
end
|
|
47
|
+
end
|
data/test/controllers/{opensearch_controller_test.rb → quick_search/opensearch_controller_test.rb}
RENAMED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
require 'test_helper'
|
|
2
2
|
|
|
3
|
-
class OpensearchControllerTest < ActionController::TestCase
|
|
3
|
+
class QuickSearch::OpensearchControllerTest < ActionController::TestCase
|
|
4
|
+
include QuickSearch::Engine.routes.url_helpers
|
|
5
|
+
|
|
6
|
+
setup do
|
|
7
|
+
@routes = QuickSearch::Engine.routes
|
|
8
|
+
end
|
|
4
9
|
|
|
5
10
|
test "should return xml" do
|
|
6
11
|
@request.env['HTTP_ACCEPT'] = 'application/xml'
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class QuickSearch::SearchControllerTest < ActionController::TestCase
|
|
4
|
+
|
|
5
|
+
# vcr_test "should return a summon searcher" do
|
|
6
|
+
# get :index, q: 'printing'
|
|
7
|
+
# assert assigns(:summon)
|
|
8
|
+
# end
|
|
9
|
+
|
|
10
|
+
test "should redirect to link resolver" do
|
|
11
|
+
get :index, params: { q: 'doi:10.1002/0470841559.ch1' }
|
|
12
|
+
assert_redirected_to 'http://doi.org/10.1002%2F0470841559.ch1'
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
== README
|
|
2
|
+
|
|
3
|
+
This README would normally document whatever steps are necessary to get the
|
|
4
|
+
application up and running.
|
|
5
|
+
|
|
6
|
+
Things you may want to cover:
|
|
7
|
+
|
|
8
|
+
* Ruby version
|
|
9
|
+
|
|
10
|
+
* System dependencies
|
|
11
|
+
|
|
12
|
+
* Configuration
|
|
13
|
+
|
|
14
|
+
* Database creation
|
|
15
|
+
|
|
16
|
+
* Database initialization
|
|
17
|
+
|
|
18
|
+
* How to run the test suite
|
|
19
|
+
|
|
20
|
+
* Services (job queues, cache servers, search engines, etc.)
|
|
21
|
+
|
|
22
|
+
* Deployment instructions
|
|
23
|
+
|
|
24
|
+
* ...
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
Please feel free to use a different markup language if you do not plan to run
|
|
28
|
+
<tt>rake doc:app</tt>.
|
data/test/dummy/Rakefile
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// This is a manifest file that'll be compiled into application.js, which will include all the files
|
|
2
|
+
// listed below.
|
|
3
|
+
//
|
|
4
|
+
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
|
|
5
|
+
// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
|
|
6
|
+
//
|
|
7
|
+
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
|
|
8
|
+
// compiled file.
|
|
9
|
+
//
|
|
10
|
+
// Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details
|
|
11
|
+
// about supported directives.
|
|
12
|
+
//
|
|
13
|
+
//= require_tree .
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* This is a manifest file that'll be compiled into application.css, which will include all the files
|
|
3
|
+
* listed below.
|
|
4
|
+
*
|
|
5
|
+
* Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
|
|
6
|
+
* or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path.
|
|
7
|
+
*
|
|
8
|
+
* You're free to add application-wide styles to this file and they'll appear at the bottom of the
|
|
9
|
+
* compiled file so the styles you add here take precedence over styles defined in any styles
|
|
10
|
+
* defined in the other CSS/SCSS files in this directory. It is generally better to create a new
|
|
11
|
+
* file per style scope.
|
|
12
|
+
*
|
|
13
|
+
*= require_tree .
|
|
14
|
+
*= require_self
|
|
15
|
+
*/
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<title>Dummy</title>
|
|
5
|
+
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
|
|
6
|
+
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
|
|
7
|
+
<%= csrf_meta_tags %>
|
|
8
|
+
</head>
|
|
9
|
+
<body>
|
|
10
|
+
|
|
11
|
+
<%= yield %>
|
|
12
|
+
|
|
13
|
+
</body>
|
|
14
|
+
</html>
|
data/test/dummy/bin/rake
ADDED