blacklight_highlight 0.0.3 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +5 -0
- data/Gemfile.lock +180 -0
- data/README.rdoc +3 -8
- data/VERSION +1 -1
- data/blacklight_highlight.gemspec +8 -1
- data/config.ru +10 -0
- data/lib/blacklight_highlight/controller_extension.rb +0 -9
- data/lib/blacklight_highlight/solr_document_extension.rb +39 -10
- data/lib/blacklight_highlight/solr_helper_extension.rb +6 -1
- data/spec/acceptance/blacklight_highlight_spec.rb +26 -0
- data/spec/integration/blacklight_highlight_spec.rb +13 -0
- data/spec/integration/blacklight_stub_spec.rb +10 -0
- data/spec/internal/app/controllers/application_controller.rb +4 -0
- data/spec/internal/app/models/solr_document.rb +3 -0
- data/spec/internal/config/database.yml +3 -0
- data/spec/internal/config/routes.rb +6 -0
- data/spec/internal/config/solr.yml +18 -0
- data/spec/internal/db/schema.rb +53 -0
- data/spec/internal/log/.gitignore +1 -0
- data/spec/internal/public/favicon.ico +0 -0
- data/spec/lib/solr_document_extension_spec.rb +55 -0
- data/spec/spec_helper.rb +37 -0
- data/spec/vcr_cassettes/solr.yml +177 -0
- metadata +110 -13
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,180 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
blacklight_highlight (0.0.2)
|
5
|
+
blacklight
|
6
|
+
rails (~> 3.0)
|
7
|
+
rsolr
|
8
|
+
rsolr-ext
|
9
|
+
|
10
|
+
PATH
|
11
|
+
remote: ../blacklight
|
12
|
+
specs:
|
13
|
+
blacklight (3.2.0pre2)
|
14
|
+
compass (>= 0.12.alpha.2)
|
15
|
+
kaminari
|
16
|
+
marc (~> 0.4.3)
|
17
|
+
nokogiri (~> 1.5)
|
18
|
+
rails (~> 3.1.1)
|
19
|
+
rsolr (~> 1.0.6)
|
20
|
+
rsolr-ext (~> 1.0.3)
|
21
|
+
sass-rails (~> 3.1.1)
|
22
|
+
unicode
|
23
|
+
|
24
|
+
GEM
|
25
|
+
remote: http://rubygems.org/
|
26
|
+
specs:
|
27
|
+
actionmailer (3.1.3)
|
28
|
+
actionpack (= 3.1.3)
|
29
|
+
mail (~> 2.3.0)
|
30
|
+
actionpack (3.1.3)
|
31
|
+
activemodel (= 3.1.3)
|
32
|
+
activesupport (= 3.1.3)
|
33
|
+
builder (~> 3.0.0)
|
34
|
+
erubis (~> 2.7.0)
|
35
|
+
i18n (~> 0.6)
|
36
|
+
rack (~> 1.3.5)
|
37
|
+
rack-cache (~> 1.1)
|
38
|
+
rack-mount (~> 0.8.2)
|
39
|
+
rack-test (~> 0.6.1)
|
40
|
+
sprockets (~> 2.0.3)
|
41
|
+
activemodel (3.1.3)
|
42
|
+
activesupport (= 3.1.3)
|
43
|
+
builder (~> 3.0.0)
|
44
|
+
i18n (~> 0.6)
|
45
|
+
activerecord (3.1.3)
|
46
|
+
activemodel (= 3.1.3)
|
47
|
+
activesupport (= 3.1.3)
|
48
|
+
arel (~> 2.2.1)
|
49
|
+
tzinfo (~> 0.3.29)
|
50
|
+
activeresource (3.1.3)
|
51
|
+
activemodel (= 3.1.3)
|
52
|
+
activesupport (= 3.1.3)
|
53
|
+
activesupport (3.1.3)
|
54
|
+
multi_json (~> 1.0)
|
55
|
+
arel (2.2.1)
|
56
|
+
builder (3.0.0)
|
57
|
+
capybara (1.1.2)
|
58
|
+
mime-types (>= 1.16)
|
59
|
+
nokogiri (>= 1.3.3)
|
60
|
+
rack (>= 1.0.0)
|
61
|
+
rack-test (>= 0.5.4)
|
62
|
+
selenium-webdriver (~> 2.0)
|
63
|
+
xpath (~> 0.1.4)
|
64
|
+
childprocess (0.2.2)
|
65
|
+
ffi (~> 1.0.6)
|
66
|
+
chunky_png (1.2.5)
|
67
|
+
combustion (0.3.1)
|
68
|
+
rails (>= 3.1.0)
|
69
|
+
thor (>= 0.14.6)
|
70
|
+
compass (0.12.alpha.2)
|
71
|
+
chunky_png (~> 1.2)
|
72
|
+
fssm (>= 0.2.7)
|
73
|
+
sass (~> 3.1)
|
74
|
+
diff-lcs (1.1.3)
|
75
|
+
erubis (2.7.0)
|
76
|
+
fakeweb (1.3.0)
|
77
|
+
ffi (1.0.11)
|
78
|
+
fssm (0.2.7)
|
79
|
+
hike (1.2.1)
|
80
|
+
i18n (0.6.0)
|
81
|
+
json (1.6.3)
|
82
|
+
json_pure (1.6.1)
|
83
|
+
kaminari (0.13.0)
|
84
|
+
actionpack (>= 3.0.0)
|
85
|
+
activesupport (>= 3.0.0)
|
86
|
+
railties (>= 3.0.0)
|
87
|
+
mail (2.3.0)
|
88
|
+
i18n (>= 0.4.0)
|
89
|
+
mime-types (~> 1.16)
|
90
|
+
treetop (~> 1.4.8)
|
91
|
+
marc (0.4.3)
|
92
|
+
mime-types (1.17.2)
|
93
|
+
multi_json (1.0.4)
|
94
|
+
nokogiri (1.5.0)
|
95
|
+
polyglot (0.3.3)
|
96
|
+
rack (1.3.5)
|
97
|
+
rack-cache (1.1)
|
98
|
+
rack (>= 0.4)
|
99
|
+
rack-mount (0.8.3)
|
100
|
+
rack (>= 1.0.0)
|
101
|
+
rack-ssl (1.3.2)
|
102
|
+
rack
|
103
|
+
rack-test (0.6.1)
|
104
|
+
rack (>= 1.0)
|
105
|
+
rails (3.1.3)
|
106
|
+
actionmailer (= 3.1.3)
|
107
|
+
actionpack (= 3.1.3)
|
108
|
+
activerecord (= 3.1.3)
|
109
|
+
activeresource (= 3.1.3)
|
110
|
+
activesupport (= 3.1.3)
|
111
|
+
bundler (~> 1.0)
|
112
|
+
railties (= 3.1.3)
|
113
|
+
railties (3.1.3)
|
114
|
+
actionpack (= 3.1.3)
|
115
|
+
activesupport (= 3.1.3)
|
116
|
+
rack-ssl (~> 1.3.2)
|
117
|
+
rake (>= 0.8.7)
|
118
|
+
rdoc (~> 3.4)
|
119
|
+
thor (~> 0.14.6)
|
120
|
+
rake (0.9.2.2)
|
121
|
+
rdoc (3.12)
|
122
|
+
json (~> 1.4)
|
123
|
+
rsolr (1.0.6)
|
124
|
+
builder (>= 2.1.2)
|
125
|
+
rsolr-ext (1.0.3)
|
126
|
+
rsolr (>= 1.0.2)
|
127
|
+
rspec (2.7.0)
|
128
|
+
rspec-core (~> 2.7.0)
|
129
|
+
rspec-expectations (~> 2.7.0)
|
130
|
+
rspec-mocks (~> 2.7.0)
|
131
|
+
rspec-core (2.7.1)
|
132
|
+
rspec-expectations (2.7.0)
|
133
|
+
diff-lcs (~> 1.1.2)
|
134
|
+
rspec-mocks (2.7.0)
|
135
|
+
rspec-rails (2.7.0)
|
136
|
+
actionpack (~> 3.0)
|
137
|
+
activesupport (~> 3.0)
|
138
|
+
railties (~> 3.0)
|
139
|
+
rspec (~> 2.7.0)
|
140
|
+
rubyzip (0.9.4)
|
141
|
+
sass (3.1.12)
|
142
|
+
sass-rails (3.1.5)
|
143
|
+
actionpack (~> 3.1.0)
|
144
|
+
railties (~> 3.1.0)
|
145
|
+
sass (~> 3.1.10)
|
146
|
+
tilt (~> 1.3.2)
|
147
|
+
selenium-webdriver (2.13.0)
|
148
|
+
childprocess (>= 0.2.1)
|
149
|
+
ffi (~> 1.0.9)
|
150
|
+
json_pure
|
151
|
+
rubyzip
|
152
|
+
sprockets (2.0.3)
|
153
|
+
hike (~> 1.2)
|
154
|
+
rack (~> 1.0)
|
155
|
+
tilt (~> 1.1, != 1.3.0)
|
156
|
+
sqlite3 (1.3.4)
|
157
|
+
thor (0.14.6)
|
158
|
+
tilt (1.3.3)
|
159
|
+
treetop (1.4.10)
|
160
|
+
polyglot
|
161
|
+
polyglot (>= 0.3.1)
|
162
|
+
tzinfo (0.3.31)
|
163
|
+
unicode (0.4.0)
|
164
|
+
vcr (1.11.3)
|
165
|
+
xpath (0.1.4)
|
166
|
+
nokogiri (~> 1.3)
|
167
|
+
|
168
|
+
PLATFORMS
|
169
|
+
ruby
|
170
|
+
|
171
|
+
DEPENDENCIES
|
172
|
+
blacklight!
|
173
|
+
blacklight_highlight!
|
174
|
+
capybara
|
175
|
+
combustion
|
176
|
+
fakeweb
|
177
|
+
rspec
|
178
|
+
rspec-rails
|
179
|
+
sqlite3
|
180
|
+
vcr
|
data/README.rdoc
CHANGED
@@ -4,13 +4,11 @@ BlacklightHighlight: Blacklight plugin that exposes Solr's highlight field compo
|
|
4
4
|
|
5
5
|
The BlacklightHighlight Field plugin provides basic support for the Solr Highlight component, which provides search term highlighting in text fields.
|
6
6
|
|
7
|
-
This plugin
|
8
|
-
|
9
|
-
Future versions of this plugin may allow you to selectively request highlighted fields.
|
7
|
+
This plugin overrides low-level methods from RSolr::Doc to provide easy access to the highlighting results. This means, however, that if you have a highlighted field, it may be difficult to access the un-highlighted version directly. It also provides a very basic configuration out-of-the-box, with the expectation that you will configure Solr to provide better highlighting results.
|
10
8
|
|
11
9
|
= Requirements
|
12
10
|
|
13
|
-
A Rails app using Blacklight
|
11
|
+
A Rails app using Blacklight >=3.2.
|
14
12
|
|
15
13
|
= Installation
|
16
14
|
|
@@ -35,9 +33,6 @@ Then run "rails generate blacklight_highlight" to install the appropriate extens
|
|
35
33
|
|
36
34
|
You should configure your Solr request handlers to provide the appropriate highlighting results (see <http://wiki.apache.org/solr/HighlightingParameters>). If you do not add any fields, the Solr default will be used (" the fields highlighted for the LuceneQParser are the defaultSearchField (or the df param if used) and for the DisMax parser the qf fields are used.").
|
37
35
|
|
38
|
-
|
39
36
|
= Tests
|
40
37
|
|
41
|
-
|
42
|
-
|
43
|
-
|
38
|
+
Run `rspec`.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0
|
1
|
+
0.1.0
|
@@ -19,7 +19,14 @@ Gem::Specification.new do |s|
|
|
19
19
|
|
20
20
|
|
21
21
|
s.add_dependency "rails", "~> 3.0"
|
22
|
-
s.add_dependency "blacklight"
|
22
|
+
s.add_dependency "blacklight", "~> 3.2"
|
23
23
|
s.add_dependency "rsolr"
|
24
24
|
s.add_dependency "rsolr-ext"
|
25
|
+
|
26
|
+
s.add_development_dependency "rspec"
|
27
|
+
s.add_development_dependency "rspec-rails"
|
28
|
+
s.add_development_dependency "capybara"
|
29
|
+
s.add_development_dependency "sqlite3"
|
30
|
+
s.add_development_dependency "vcr"
|
31
|
+
s.add_development_dependency 'fakeweb'
|
25
32
|
end
|
data/config.ru
ADDED
@@ -2,17 +2,8 @@
|
|
2
2
|
# Blacklight::SolrHelper.
|
3
3
|
module BlacklightHighlight::ControllerExtension
|
4
4
|
def self.included(some_class)
|
5
|
-
some_class.helper_method :highlight_config
|
6
5
|
some_class.helper BlacklightHighlightHelper
|
7
6
|
some_class.send(:include, BlacklightHighlight::SolrHelperExtension)
|
8
7
|
end
|
9
|
-
|
10
|
-
# Uses Blacklight.config, needs to be modified when
|
11
|
-
# that changes to be controller-based. This is the only method
|
12
|
-
# in this plugin that accesses Blacklight.config, single point
|
13
|
-
# of contact.
|
14
|
-
def highlight_config
|
15
|
-
Blacklight.config[:highlight] || {}
|
16
|
-
end
|
17
8
|
end
|
18
9
|
|
@@ -1,29 +1,58 @@
|
|
1
1
|
module BlacklightHighlight
|
2
2
|
module SolrDocumentExtension
|
3
|
-
|
4
|
-
|
3
|
+
extend ActiveSupport::Concern
|
4
|
+
|
5
|
+
included do
|
6
|
+
after_initialize do
|
5
7
|
solr_response.send(:extend, RSolr::Ext::Response::Highlight) unless solr_response.is_a? RSolr::Ext::Response::Highlight
|
6
8
|
end
|
7
9
|
end
|
8
10
|
|
9
|
-
|
10
|
-
|
11
|
-
|
11
|
+
module ClassMethods
|
12
|
+
##
|
13
|
+
# Provide a class-level method to white-list highlighted fields
|
14
|
+
# By default, it will highlight every field for which there's a highlight result
|
15
|
+
def highlight
|
16
|
+
@highlight ||= []
|
17
|
+
end
|
18
|
+
end
|
12
19
|
|
20
|
+
##
|
21
|
+
# Override RSolr::Doc methods with highlighting equivalents
|
22
|
+
def [] key
|
23
|
+
return highlight(key) if highlight?(key)
|
13
24
|
super(key)
|
14
25
|
end
|
15
26
|
|
27
|
+
##
|
28
|
+
# Override RSolr::Doc methods with highlighting equivalents
|
16
29
|
def key? key
|
17
|
-
return
|
18
|
-
return true if highlight_fields.key?(key)
|
19
|
-
|
30
|
+
return true if highlight?(key)
|
20
31
|
super(key)
|
21
32
|
end
|
22
33
|
|
23
|
-
|
24
|
-
|
34
|
+
##
|
35
|
+
# Get the (html-safe) highlight values for a field
|
36
|
+
# @param [String] key
|
37
|
+
def highlight key
|
38
|
+
return unless highlight? key
|
25
39
|
highlight_fields[key].map { |x| x.html_safe }
|
26
40
|
end
|
41
|
+
|
42
|
+
##
|
43
|
+
# Does the field have highlighting values?
|
44
|
+
# @param [String] key
|
45
|
+
def highlight? key
|
46
|
+
return false if key.nil? or key == self.class.unique_key
|
47
|
+
|
48
|
+
if self.class.highlight.include? key.to_sym
|
49
|
+
return true
|
50
|
+
elsif !self.class.highlight.empty?
|
51
|
+
return false
|
52
|
+
end
|
53
|
+
|
54
|
+
!highlight_fields[key].blank?
|
55
|
+
end
|
27
56
|
|
28
57
|
def highlight_fields
|
29
58
|
@highlight_fields ||= begin
|
@@ -5,7 +5,12 @@ module BlacklightHighlight::SolrHelperExtension
|
|
5
5
|
end
|
6
6
|
|
7
7
|
def solr_highlight_params solr_parameters, user_parameters
|
8
|
-
|
8
|
+
|
9
|
+
if solr_parameters['q'] || solr_parameters['hl.q'] || solr_parameters[:q] || solr_parameters[:'hl.q']
|
10
|
+
solr_parameters[:hl] ||= true
|
11
|
+
solr_parameters[:'hl.fl'] ||= ''
|
12
|
+
solr_parameters[:'hl.fl'] += blacklight_config.index_fields.select { |key, config| config.highlight }.map { |key, config| config.field }.join(",")
|
13
|
+
end
|
9
14
|
end
|
10
15
|
end
|
11
16
|
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'Blacklight highlighting' do
|
4
|
+
use_vcr_cassette "solr"
|
5
|
+
before do
|
6
|
+
CatalogController.configure_blacklight do |config|
|
7
|
+
config.index.show_link = 'title_display'
|
8
|
+
config.default_solr_params = {
|
9
|
+
:per_page => 10
|
10
|
+
}
|
11
|
+
|
12
|
+
config.add_index_field 'field'
|
13
|
+
config.add_index_field 'highlight_field', :highlight => true
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
it "" do
|
18
|
+
visit '/'
|
19
|
+
fill_in 'q', :with => 'ipsum lorem'
|
20
|
+
click_button 'search'
|
21
|
+
|
22
|
+
page.should_not have_content 'Lorem ipsum'
|
23
|
+
page.should have_content 'lorem et lorem'
|
24
|
+
page.should_not have_content '<em>lorem</em>'
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'Blacklight Highlighing' do
|
4
|
+
it "should add :hl to the solr params" do
|
5
|
+
parameters = CatalogController.new.solr_search_params({:q => 'asdf'})
|
6
|
+
parameters[:hl].should == true
|
7
|
+
end
|
8
|
+
|
9
|
+
it "should not add :hl to the solr params if no :q param is given" do
|
10
|
+
parameters = CatalogController.new.solr_search_params({})
|
11
|
+
parameters[:hl].should_not == true
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'Blacklight Test Application' do
|
4
|
+
it "should have a Blacklight module" do
|
5
|
+
Blacklight.should be_a_kind_of(Module)
|
6
|
+
end
|
7
|
+
it "should have a Catalog controller" do
|
8
|
+
CatalogController.blacklight_config.should be_a_kind_of(Blacklight::Configuration)
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# = jetty_path key
|
2
|
+
# each environment can have a jetty_path with absolute or relative
|
3
|
+
# (to app root) path to a jetty/solr install. This is used
|
4
|
+
# by the rake tasks that start up solr automatically for testing
|
5
|
+
# and by rake solr:marc:index.
|
6
|
+
#
|
7
|
+
# jetty_path is not used by a running Blacklight application
|
8
|
+
# at all. In general you do NOT need to deploy solr in Jetty, you can deploy it
|
9
|
+
# however you want.
|
10
|
+
# jetty_path is only required for rake tasks that need to know
|
11
|
+
# how to start up solr, generally for automated testing.
|
12
|
+
|
13
|
+
development:
|
14
|
+
url: http://127.0.0.1:8983/solr
|
15
|
+
test: &test
|
16
|
+
url: http://127.0.0.1:8983/solr
|
17
|
+
cucumber:
|
18
|
+
<<: *test
|
@@ -0,0 +1,53 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
# This file is auto-generated from the current state of the database. Instead
|
3
|
+
# of editing this file, please use the migrations feature of Active Record to
|
4
|
+
# incrementally modify your database, and then regenerate this schema definition.
|
5
|
+
#
|
6
|
+
# Note that this schema.rb definition is the authoritative source for your
|
7
|
+
# database schema. If you need to create the application database on another
|
8
|
+
# system, you should be using db:schema:load, not running all the migrations
|
9
|
+
# from scratch. The latter is a flawed and unsustainable approach (the more migrations
|
10
|
+
# you'll amass, the slower it'll run and the greater likelihood for issues).
|
11
|
+
#
|
12
|
+
# It's strongly recommended to check this file into your version control system.
|
13
|
+
|
14
|
+
ActiveRecord::Schema.define(:version => 20111123152341) do
|
15
|
+
|
16
|
+
create_table "bookmarks", :force => true do |t|
|
17
|
+
t.integer "user_id", :null => false
|
18
|
+
t.string "document_id"
|
19
|
+
t.string "title"
|
20
|
+
t.datetime "created_at"
|
21
|
+
t.datetime "updated_at"
|
22
|
+
t.string "user_type"
|
23
|
+
end
|
24
|
+
|
25
|
+
create_table "searches", :force => true do |t|
|
26
|
+
t.text "query_params"
|
27
|
+
t.integer "user_id"
|
28
|
+
t.datetime "created_at"
|
29
|
+
t.datetime "updated_at"
|
30
|
+
t.string "user_type"
|
31
|
+
end
|
32
|
+
|
33
|
+
add_index "searches", ["user_id"], :name => "index_searches_on_user_id"
|
34
|
+
|
35
|
+
create_table "users", :force => true do |t|
|
36
|
+
t.string "email", :default => "", :null => false
|
37
|
+
t.string "encrypted_password", :limit => 128, :default => "", :null => false
|
38
|
+
t.string "reset_password_token"
|
39
|
+
t.datetime "reset_password_sent_at"
|
40
|
+
t.datetime "remember_created_at"
|
41
|
+
t.integer "sign_in_count", :default => 0
|
42
|
+
t.datetime "current_sign_in_at"
|
43
|
+
t.datetime "last_sign_in_at"
|
44
|
+
t.string "current_sign_in_ip"
|
45
|
+
t.string "last_sign_in_ip"
|
46
|
+
t.datetime "created_at"
|
47
|
+
t.datetime "updated_at"
|
48
|
+
end
|
49
|
+
|
50
|
+
add_index "users", ["email"], :name => "index_users_on_email", :unique => true
|
51
|
+
add_index "users", ["reset_password_token"], :name => "index_users_on_reset_password_token", :unique => true
|
52
|
+
|
53
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
*.log
|
File without changes
|
@@ -0,0 +1,55 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe BlacklightHighlight::SolrDocumentExtension do
|
4
|
+
subject { SolrDocument.new :field => 'value' }
|
5
|
+
|
6
|
+
describe "functional" do
|
7
|
+
before do
|
8
|
+
subject.stub(:highlight_fields => {
|
9
|
+
'field' => ['<em>value</em>'],
|
10
|
+
'other_field' => ['<em>ipsum</em> lorem']
|
11
|
+
})
|
12
|
+
end
|
13
|
+
|
14
|
+
describe '#get' do
|
15
|
+
it "should return the highlighted field" do
|
16
|
+
val = subject.get('field', :separator => nil)
|
17
|
+
val.should include('<em>value</em>')
|
18
|
+
val.first.should be_html_safe
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
describe "#key?" do
|
23
|
+
it "should be true when a highlighted field is available" do
|
24
|
+
subject.key?('other_field').should == true
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
describe "#highlight" do
|
29
|
+
it "should retrieve highlighted values from the solr response" do
|
30
|
+
subject.highlight('field').should include('<em>value</em>')
|
31
|
+
end
|
32
|
+
|
33
|
+
it "should not try to look up the unique key value for highlighting" do
|
34
|
+
subject.highlight('id').should be_nil
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
describe "#highlight_fields" do
|
40
|
+
it "should be empty if no solr response is provided" do
|
41
|
+
subject.highlight_fields.should be_a_kind_of(Hash)
|
42
|
+
subject.highlight_fields.should be_empty
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should use the RSolr::Ext highlighting extension to get highlighted values" do
|
46
|
+
@mock_solr_response = mock()
|
47
|
+
@mock_solr_response.should_receive(:respond_to?).with(:highlight) { true }
|
48
|
+
@mock_solr_response.should_receive(:highlight)
|
49
|
+
subject.stub(:solr_response => @mock_solr_response)
|
50
|
+
subject.highlight_fields
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
|
55
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'bundler'
|
3
|
+
|
4
|
+
Bundler.require :default, :development
|
5
|
+
|
6
|
+
require 'blacklight/engine'
|
7
|
+
require 'rsolr'
|
8
|
+
require 'rsolr-ext'
|
9
|
+
require 'rsolr-ext/response'
|
10
|
+
require 'capybara/rspec'
|
11
|
+
Combustion.initialize!
|
12
|
+
|
13
|
+
|
14
|
+
# Setup blacklight environment
|
15
|
+
Blacklight.solr_config = { :url => 'http://127.0.0.1:8983/solr' }
|
16
|
+
CatalogController.send(:include, BlacklightHighlight::ControllerExtension)
|
17
|
+
|
18
|
+
class SolrDocument
|
19
|
+
include Blacklight::Solr::Document
|
20
|
+
include BlacklightHighlight::SolrDocumentExtension
|
21
|
+
end
|
22
|
+
|
23
|
+
require 'vcr'
|
24
|
+
|
25
|
+
VCR.config do |config|
|
26
|
+
config.stub_with :fakeweb
|
27
|
+
config.cassette_library_dir = 'spec/vcr_cassettes'
|
28
|
+
end
|
29
|
+
|
30
|
+
require 'rspec/rails'
|
31
|
+
require 'capybara/rails'
|
32
|
+
|
33
|
+
RSpec.configure do |config|
|
34
|
+
config.extend VCR::RSpec::Macros
|
35
|
+
|
36
|
+
end
|
37
|
+
|
@@ -0,0 +1,177 @@
|
|
1
|
+
---
|
2
|
+
- !ruby/struct:VCR::HTTPInteraction
|
3
|
+
request: !ruby/struct:VCR::Request
|
4
|
+
method: :get
|
5
|
+
uri: http://127.0.0.1:8983/solr/select?wt=ruby&rows=10
|
6
|
+
body:
|
7
|
+
headers:
|
8
|
+
response: !ruby/struct:VCR::Response
|
9
|
+
status: !ruby/struct:VCR::ResponseStatus
|
10
|
+
code: 200
|
11
|
+
message: OK
|
12
|
+
headers:
|
13
|
+
content-type:
|
14
|
+
- text/plain; charset=utf-8
|
15
|
+
server:
|
16
|
+
- Jetty(6.1.3)
|
17
|
+
body: ! '{''responseHeader''=>{''status''=>0,''QTime''=>31,''params''=>{''wt''=>''ruby'',''hl''=>''true'',''rows''=>''20''}},''response''=>{''numFound''=>30,''start''=>0,''maxScore''=>1.0,''docs''=>[{''author_display''=>''Ayaz,
|
18
|
+
Shaikh, 1923-1997'',''format''=>''Book'',''title_display''=>''Fikr-i Ayāz'',''id''=>''00282214'',''published_display''=>[''Karācī''],''lc_callnum_display''=>[''PK2788.9.A9
|
19
|
+
F55 1998''],''pub_date''=>[''1998''],''language_facet''=>[''Urdu''],''material_type_display''=>[''375
|
20
|
+
p.''],''score''=>1.0},{''author_display''=>''Ayaz, Shaikh, 1923-1997'',''format''=>''Book'',''title_display''=>''Sāhivāl
|
21
|
+
jail kī ḍāʼirī'',''id''=>''00282371'',''published_display''=>[''Karācī''],''lc_callnum_display''=>[''MLCME
|
22
|
+
2002/02660 (D)''],''pub_date''=>[''1986''],''language_facet''=>[''Urdu''],''material_type_display''=>[''232
|
23
|
+
p.''],''score''=>1.0},{''subtitle_display''=>''guft va gū-yi Akbar Ganjī bā
|
24
|
+
ʻAbd Allāh Nūrī : bih payvast-i matn-i istīz̤āḥ-i ʻAbd Allāh Nūrī dar
|
25
|
+
Majlis-i panjum'',''author_vern_display''=>''نورى، عبد الله'',''title_display''=>''Naqdī
|
26
|
+
barā-yi tamām-i fuṣūl'',''id''=>''00313831'',''author_display''=>''Nūrī,
|
27
|
+
ʻAbd Allāh, 1949-'',''title_vern_display''=>''نقدى براى تمام فصول :'',''format''=>''Book'',''subtitle_vern_display''=>''گفت
|
28
|
+
و گوى اکبر گنجى با عبد الله نورى : به پيوست متن استيضاح عبد الله نورى در مجلس
|
29
|
+
پنجم'',''isbn_t''=>[''9645625963''],''published_display''=>[''Tihrān''],''lc_callnum_display''=>[''DS318.84.N87
|
30
|
+
N87 2000''],''subject_geo_facet''=>[''Iran''],''pub_date''=>[''2000''],''subject_topic_facet''=>[''Nūrī,
|
31
|
+
ʻAbd Allāh, 1949-'',''Iran. Vizārat-i Kishvar''],''published_vern_display''=>[''تهران
|
32
|
+
:''],''language_facet''=>[''Persian''],''material_type_display''=>[''245 p.''],''subject_era_facet''=>[''1997-''],''score''=>1.0},{''author_display''=>''Yoshida,
|
33
|
+
Hajime, 1934-'',''title_vern_display''=>''久保栄 「火山灰地」 を読む'',''format''=>''Book'',''author_vern_display''=>''吉田一,
|
34
|
+
1934-'',''title_display''=>''Kubo Sakae "Kazanbaichi" o yomu'',''id''=>''00314247'',''published_display''=>[''Tōkyō''],''subject_geo_facet''=>[''Japan''],''subject_topic_facet''=>[''Kubo,
|
35
|
+
Sakae, 1901-1958'',''Japanese drama'',''Political plays, Japanese'',''Theater''],''pub_date''=>[''1997''],''published_vern_display''=>[''東京''],''language_facet''=>[''Japanese''],''material_type_display''=>[''480
|
36
|
+
p.''],''subject_era_facet''=>[''20th century''],''score''=>1.0},{''author_display''=>''Vi︠a︡tkin,
|
37
|
+
M. P. (Mikhail Porfirʹevich), 1895-1967'',''format''=>''Book'',''title_display''=>''Ocherki
|
38
|
+
po istorii Kazakhskoĭ SSR'',''id''=>''43037890'',''published_display''=>[''Moskva''],''lc_callnum_display''=>[''DK861.K3
|
39
|
+
V5''],''subject_geo_facet''=>[''Kazakhstan''],''pub_date''=>[''1941''],''language_facet''=>[''Russian''],''material_type_display''=>[''v.''],''score''=>1.0},{''author_display''=>''Korea
|
40
|
+
(North)'',''format''=>''Book'',''title_display''=>''Konstitut︠s︡ii︠a︡ i osnovnye
|
41
|
+
zakonodatelʹnye akty Koreĭskoĭ Narodno-Demokraticheskoĭ Respubliki'',''id''=>''53029833'',''published_display''=>[''Moskva''],''lc_callnum_display''=>[''KPC13
|
42
|
+
1952''],''pub_date''=>[''1952''],''language_facet''=>[''Russian''],''material_type_display''=>[''396
|
43
|
+
p.''],''score''=>1.0},{''title_display''=>''Koryŏ inmul yŏlchŏn'',''id''=>''77826928'',''title_vern_display''=>''高麗
|
44
|
+
人物 列傅'',''format''=>''Book'',''published_display''=>[''Sŏul''],''lc_callnum_display''=>[''DS912.38
|
45
|
+
.K982 1976''],''subject_geo_facet''=>[''Korea''],''pub_date''=>[''1976''],''published_vern_display''=>[''서울''],''language_facet''=>[''Korean''],''material_type_display''=>[''255
|
46
|
+
p.''],''subject_era_facet''=>[''Koryŏ period, 935-1392''],''score''=>1.0},{''author_display''=>''Parikshit
|
47
|
+
Sharma, Ogeti, 1930-'',''format''=>''Book'',''title_display''=>''Yaśodharā-mahākāvyam'',''id''=>''78908283'',''published_display''=>[''Puṇyapattanam'',''Haidrābāda''],''lc_callnum_display''=>[''PK3799.P29
|
48
|
+
Y3''],''subject_topic_facet''=>[''Gautama Buddha'',''Yaśodharā (Wife of Gautama
|
49
|
+
Buddha)''],''pub_date''=>[''1976''],''language_facet''=>[''Sanskrit''],''material_type_display''=>[''24,
|
50
|
+
128, 2 p.''],''score''=>1.0},{''author_display''=>''Iṣlāḥī, Amīn Aḥsan,
|
51
|
+
1904-1997'',''format''=>''Book'',''title_display''=>''Pākistānī ʻaurat dorāhe
|
52
|
+
par'',''id''=>''79930185'',''published_display''=>[''Lāhaur''],''lc_callnum_display''=>[''HQ1745.5
|
53
|
+
.I83 1978''],''subject_geo_facet''=>[''Pakistan''],''subject_topic_facet''=>[''Women''],''pub_date''=>[''1978''],''language_facet''=>[''Urdu''],''material_type_display''=>[''8,
|
54
|
+
174 p.''],''score''=>1.0},{''author_display''=>''Nārāyaṇapaṇḍita, 17th
|
55
|
+
cent'',''format''=>''Book'',''title_display''=>''Āśleṣāśataka of Nārāyaṇa
|
56
|
+
Paṇḍita'',''id''=>''85910001'',''published_display''=>[''Trivandrum''],''lc_callnum_display''=>[''Microfiche
|
57
|
+
90/61328 (P)''],''pub_date''=>[''1946''],''language_facet''=>[''Sanskrit''],''material_type_display''=>[''xii,
|
58
|
+
24 p.''],''score''=>1.0},{''subtitle_display''=>''sipurim mafliʼim ha-mevusasim
|
59
|
+
ʻal ʻuvdot hisṭoriyot'',''author_vern_display''=>''פינקל, חיים יעקב'',''title_display''=>''Shodede-yam
|
60
|
+
Yehudiyim'',''id''=>''86207417'',''author_display''=>''Finkel, Chaim Jacob'',''title_vern_display''=>''שודדי־ים
|
61
|
+
יהודיים :'',''format''=>''Book'',''subtitle_vern_display''=>''ספורים מפליאים
|
62
|
+
המבוססים על עובדות היסטוריות /'',''isbn_t''=>[''9650101373''],''published_display''=>[''Yerushalayim''],''lc_callnum_display''=>[''G535
|
63
|
+
.F54 1984''],''pub_date''=>[''1984''],''subject_topic_facet''=>[''Jewish pirates'',''Jewish
|
64
|
+
criminals''],''published_vern_display''=>[''ירושלים :''],''language_facet''=>[''Hebrew''],''material_type_display''=>[''283
|
65
|
+
p.''],''score''=>1.0},{''author_vern_display''=>''موحد ابطحى، خجة'',''title_display''=>''Āshnāʼī
|
66
|
+
bā ḥawzahʹhā-yi ʻilmīyah-ʼi Shīʻah dar ṭūl-i tārīkh'',''id''=>''87931798'',''author_display''=>''Muvaḥḥid
|
67
|
+
Abṭaḥī, Ḥujjat'',''title_vern_display''=>''اشنائى با حوزههاى علميۀ شيعه
|
68
|
+
در طول تاريخ /'',''format''=>''Book'',''published_display''=>[''Iṣfahān''],''lc_callnum_display''=>[''BP44
|
69
|
+
.M88 1986''],''subject_geo_facet''=>[''Islamic countries''],''pub_date''=>[''1986''],''subject_topic_facet''=>[''Religious
|
70
|
+
institutions'',''Shiites'',''Islamic universities and colleges''],''published_vern_display''=>[''اصفهان
|
71
|
+
:''],''language_facet''=>[''Persian''],''material_type_display''=>[''v. <1>''],''score''=>1.0},{''author_display''=>''Lomtʻatʻiże,
|
72
|
+
Čola, 1879-1915'',''subtitle_display''=>''tʻeoriul-metʻoduri narkvevi'',''format''=>''Book'',''title_display''=>''Mrecvelobis
|
73
|
+
mušakis cʻxovrebis cesi'',''id''=>''90142413'',''published_display''=>[''Tʻbilisi''],''lc_callnum_display''=>[''MLCSN
|
74
|
+
96/3906 (H)''],''subject_topic_facet''=>[''Industrial workers; life style''],''pub_date''=>[''1975''],''language_facet''=>[''Georgian''],''material_type_display''=>[''65
|
75
|
+
p.''],''score''=>1.0},{''title_display''=>''Pukhan pŏmnyŏngjip'',''id''=>''92117465'',''title_vern_display''=>''北韓 法令集 /'',''author_display''=>''Korea
|
76
|
+
(North)'',''format''=>''Book'',''published_display''=>[''Sŏul Tʻŭkpyŏlsi''],''lc_callnum_display''=>[''KPC13
|
77
|
+
.K67 1990''],''subject_geo_facet''=>[''Korea (North)''],''pub_date''=>[''1990''],''subject_topic_facet''=>[''Law''],''published_vern_display''=>[''서울 持別市 :''],''language_facet''=>[''Korean''],''material_type_display''=>[''5
|
78
|
+
v.''],''score''=>1.0},{''subtitle_display''=>''ṿe-hu perush yafeh u-menupeh
|
79
|
+
ʻal Shulḥan ʻarukh Oraḥ ḥayim asher ḥiber Yosef Ḳaro ... ʻim ḥidushe dinim
|
80
|
+
she-hishmiṭ ha-gaʼon ... ṿe-himtsiʼam ... Mosheh Iserlish'',''author_vern_display''=>''ישראל
|
81
|
+
מאיר, הכהן'',''title_display''=>''Sefer Mishnah berurah'',''id''=>''92828023'',''author_display''=>''Israel
|
82
|
+
Meir, ha-Kohen, 1838-1933'',''title_vern_display''=>''ספר משנה ברורה :'',''format''=>''Book'',''subtitle_vern_display''=>''והוא
|
83
|
+
פירוש יפה ומנפה על שלחן ערוך ארח חיים אשר חבר יוסף קארו ... עם חידושי דינים
|
84
|
+
שהשמיט הגאון ... והמציאם משה איסרליש /'',''published_display''=>[''Jerusalem?''],''lc_callnum_display''=>[''BM520.88.A53
|
85
|
+
I88 1992b''],''pub_date''=>[''1992''],''subject_topic_facet''=>[''Karo, Joseph
|
86
|
+
ben Ephraim, 1488-1575'',''Jewish law'',''Judaism''],''published_vern_display''=>[''[Jerusalem?
|
87
|
+
:''],''language_facet''=>[''Hebrew''],''material_type_display''=>[''v. <1-5>''],''score''=>1.0},{''subtitle_display''=>''kangnam
|
88
|
+
yŏin kwa sin pʻalbulchʻul : Kim Hong-sin setʻae rŭpʻo'',''author_vern_display''=>''김 홍신,
|
89
|
+
1947-'',''title_display''=>''Ajikto kŭrŏk chŏrŏk sasimnikka'',''id''=>''94120425'',''author_display''=>''Kim,
|
90
|
+
Hong-sin, 1947-'',''title_vern_display''=>''아직도 그럭 저럭 사십니까'',''format''=>''Book'',''subtitle_vern_display''=>''강남 여인 과 신 팔불출
|
91
|
+
: 金 洪信 세태 르포'',''published_display''=>[''Sŏul''],''lc_callnum_display''=>[''HQ1765.5
|
92
|
+
.K46 1990''],''subject_geo_facet''=>[''Seoul (Korea)'',''Korea (South)''],''pub_date''=>[''1990''],''subject_topic_facet''=>[''Women''],''published_vern_display''=>[''서울''],''language_facet''=>[''Korean''],''material_type_display''=>[''289
|
93
|
+
p.''],''score''=>1.0},{''subtitle_display''=>''dar khiradvarzī-i siyāsī va
|
94
|
+
huvīyat-i mā Īrānīyān'',''author_vern_display''=>''رجايى، فرهنگ .'',''title_display''=>''Maʻrakah-ʼi
|
95
|
+
jahānʹbīnīʹhā'',''id''=>''96933325'',''author_display''=>''Rajāyī, Farhang,
|
96
|
+
1952 or 3-'',''title_vern_display''=>''معركۀ جهانبينىها :'',''format''=>''Book'',''subtitle_vern_display''=>''در
|
97
|
+
خردورزى سياسى و هويت ما ايرانيان /'',''published_display''=>[''Tihrān''],''lc_callnum_display''=>[''DS274
|
98
|
+
.R327 1994''],''subject_geo_facet''=>[''Iran''],''pub_date''=>[''1994''],''subject_topic_facet''=>[''Political
|
99
|
+
science'',''Iranians''],''published_vern_display''=>[''تهران :''],''language_facet''=>[''Persian''],''material_type_display''=>[''323
|
100
|
+
p.''],''score''=>1.0},{''author_display''=>''Nārāyaṇa Paṇḍitācārya, 13th
|
101
|
+
cent'',''format''=>''Book'',''title_display''=>''Sumadhvavijayaḥ'',''id''=>''2001417245'',''published_display''=>[''Bangalore''],''lc_callnum_display''=>[''PK3798.N313
|
102
|
+
S87 2000''],''subject_topic_facet''=>[''Madhva, 13th cent''],''pub_date''=>[''2000''],''language_facet''=>[''Sanskrit''],''material_type_display''=>[''v.
|
103
|
+
<1 >''],''score''=>1.0},{''author_vern_display''=>''ولد مولاي الزين، سيد محمد
|
104
|
+
ولد سيد'',''title_display''=>''al-Ḥarb fī al-alfīyah al-thālithah'',''id''=>''2003546302'',''author_display''=>''Wuld
|
105
|
+
Mawlāy al-Zayn, Sayyid Muḥammad wuld Sayyid'',''title_vern_display''=>''الحرب
|
106
|
+
في الألفية الثالثة'',''format''=>''Book'',''published_display''=>[''Nuwākshūṭ''],''lc_callnum_display''=>[''U21.2
|
107
|
+
.W85 2003''],''pub_date''=>[''2003''],''subject_topic_facet''=>[''War'',''Military
|
108
|
+
art and science'',''Warfare, Conventional'',''Military weapons''],''published_vern_display''=>[''نواكشوط''],''language_facet''=>[''Arabic''],''material_type_display''=>[''128
|
109
|
+
p.''],''subject_era_facet''=>[''21st century''],''score''=>1.0},{''author_display''=>''Bstan-ʼdzin-mkhas-grub,
|
110
|
+
1967-'',''format''=>''Book'',''title_display''=>''Bon-brgyaʼi lo rgyus lugs
|
111
|
+
gñis gsal baʼi me loṅ źes bya ba bźugs so'',''id''=>''2004310986'',''published_display''=>[''Lha-sa''],''lc_callnum_display''=>[''DS797.82.B663
|
112
|
+
B75 2004''],''subject_geo_facet''=>[''Bon-brgya (China)''],''pub_date''=>[''2004''],''language_facet''=>[''Tibetan''],''material_type_display''=>[''149
|
113
|
+
p.''],''score''=>1.0}]},''facet_counts''=>{''facet_queries''=>{},''facet_fields''=>{''format''=>[''Book'',30],''lc_1letter_facet''=>[''B
|
114
|
+
- Philosophy, Psychology, Religion'',6,''D - World History'',6,''H - Social
|
115
|
+
Sciences'',4,''P - Language & Literature'',4,''M - Music'',3,''K - Law'',2,''E
|
116
|
+
- History of the Americas (General)'',1,''G - Geography, Anthropology, Recreation'',1,''U
|
117
|
+
- Military Science'',1],''lc_alpha_facet''=>[''DS'',5,''BQ'',3,''PK'',3,''BP'',2,''HQ'',2,''KPC'',2,''BM'',1,''DK'',1,''E'',1,''G'',1],''lc_b4cutter_facet''=>[''KPC13'',2,''BM520.88.A53'',1,''BP161.3'',1,''BP44'',1,''BQ4036'',1,''BQ5593.P3'',1,''BQ7684.4'',1,''DK861.K3'',1,''DS274'',1,''DS318.84.N87'',1],''language_facet''=>[''Tibetan'',6,''Hebrew'',3,''Korean'',3,''Persian'',3,''Sanskrit'',3,''Urdu'',3,''Arabic'',2,''English'',2,''Japanese'',2,''Russian'',2],''pub_date''=>[''2008'',4,''1976'',2,''1986'',2,''1990'',2,''1997'',2,''2000'',2,''1941'',1,''1946'',1,''1952'',1,''1962'',1],''subject_era_facet''=>[''20th
|
118
|
+
century'',3,''1997-'',2,''21st century'',2,''1990-'',1,''2005-2015'',1,''Koryŏ
|
119
|
+
period, 935-1392'',1],''subject_geo_facet''=>[''India'',2,''Iran'',2,''Japan'',2,''Bon-brgya
|
120
|
+
(China)'',1,''Bridgeton'',1,''China'',1,''Economic history'',1,''Hong Kong (China)'',1,''Islamic
|
121
|
+
countries'',1,''Israel'',1],''subject_topic_facet''=>[''Japanese drama'',2,''Kubo,
|
122
|
+
Sakae, 1901-1958'',2,''Political plays, Japanese'',2,''Theater'',2,''Women'',2,''Accident
|
123
|
+
insurance'',1,''Buddhism'',1,''Delaware Indians'',1,''Delaware women'',1,''Education
|
124
|
+
and state'',1]},''facet_dates''=>{},''facet_ranges''=>{}},''highlighting''=>{''00282214''=>{},''00282371''=>{},''00313831''=>{},''00314247''=>{},''43037890''=>{},''53029833''=>{},''77826928''=>{},''78908283''=>{},''79930185''=>{},''85910001''=>{},''86207417''=>{},''87931798''=>{},''90142413''=>{},''92117465''=>{},''92828023''=>{},''94120425''=>{},''96933325''=>{},''2001417245''=>{},''2003546302''=>{},''2004310986''=>{}}}'
|
125
|
+
http_version: '1.1'
|
126
|
+
- !ruby/struct:VCR::HTTPInteraction
|
127
|
+
request: !ruby/struct:VCR::Request
|
128
|
+
method: :get
|
129
|
+
uri: http://127.0.0.1:8983/solr/select?wt=ruby&q=ipsum+lorem&spellcheck.q=ipsum+lorem&rows=10&hl=true&hl.fl=highlight_field
|
130
|
+
body:
|
131
|
+
headers:
|
132
|
+
response: !ruby/struct:VCR::Response
|
133
|
+
status: !ruby/struct:VCR::ResponseStatus
|
134
|
+
code: 200
|
135
|
+
message: OK
|
136
|
+
headers:
|
137
|
+
content-type:
|
138
|
+
- text/plain; charset=utf-8
|
139
|
+
server:
|
140
|
+
- Jetty(6.1.3)
|
141
|
+
body: |
|
142
|
+
{
|
143
|
+
'responseHeader'=>{
|
144
|
+
'status'=>0,
|
145
|
+
'QTime'=>10,
|
146
|
+
'params'=>{
|
147
|
+
'indent'=>'true',
|
148
|
+
'wt'=>'ruby',
|
149
|
+
'rows' => 10,
|
150
|
+
'q'=>'ipsum lorem'}},
|
151
|
+
'response'=>{'numFound'=>1,'start'=>0,'maxScore'=>1.0,'docs'=>[
|
152
|
+
{ 'id' => 'a', 'title_display' => 'asdf', 'field' => 'ipsum lorem', 'highlight_field' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus iaculis, urna vel convallis ullamcorper, justo libero viverra arcu, ut iaculis metus lorem et lorem. Curabitur mi dui, molestie at molestie quis, sollicitudin at turpis. Integer nec enim quam, vel tincidunt arcu. Nulla mauris purus, semper eu varius eu, volutpat et eros. Nulla rutrum felis vitae enim porttitor vestibulum. Vestibulum tellus nunc, fermentum vel venenatis eu, auctor faucibus sem. Sed viverra enim ac turpis consectetur vel interdum elit laoreet.'}
|
153
|
+
]
|
154
|
+
},
|
155
|
+
'facet_counts'=>{
|
156
|
+
'facet_queries'=>{},
|
157
|
+
'facet_fields'=>{
|
158
|
+
'format'=>[],
|
159
|
+
'lc_1letter_facet'=>[],
|
160
|
+
'lc_alpha_facet'=>[],
|
161
|
+
'lc_b4cutter_facet'=>[],
|
162
|
+
'language_facet'=>[],
|
163
|
+
'pub_date'=>[],
|
164
|
+
'subject_era_facet'=>[],
|
165
|
+
'subject_geo_facet'=>[],
|
166
|
+
'subject_topic_facet'=>[]},
|
167
|
+
'facet_dates'=>{},
|
168
|
+
'facet_ranges'=>{}},
|
169
|
+
'spellcheck'=>{
|
170
|
+
'suggestions'=>[
|
171
|
+
]
|
172
|
+
},
|
173
|
+
'highlighting' => {
|
174
|
+
'a' => { 'highlight_field' => [ 'ut iaculis metus <em>lorem</em> et <em>lorem</em>. Curabitur mi dui'] }
|
175
|
+
}
|
176
|
+
}
|
177
|
+
http_version: '1.1'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: blacklight_highlight
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-12-
|
12
|
+
date: 2011-12-22 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
16
|
-
requirement: &
|
16
|
+
requirement: &70255968374120 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,21 +21,21 @@ dependencies:
|
|
21
21
|
version: '3.0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70255968374120
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: blacklight
|
27
|
-
requirement: &
|
27
|
+
requirement: &70255968371740 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
|
-
- -
|
30
|
+
- - ~>
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: '
|
32
|
+
version: '3.2'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70255968371740
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rsolr
|
38
|
-
requirement: &
|
38
|
+
requirement: &70255968370120 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70255968370120
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rsolr-ext
|
49
|
-
requirement: &
|
49
|
+
requirement: &70255968369000 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,7 +54,73 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70255968369000
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: rspec
|
60
|
+
requirement: &70255968368080 !ruby/object:Gem::Requirement
|
61
|
+
none: false
|
62
|
+
requirements:
|
63
|
+
- - ! '>='
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: '0'
|
66
|
+
type: :development
|
67
|
+
prerelease: false
|
68
|
+
version_requirements: *70255968368080
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rspec-rails
|
71
|
+
requirement: &70255968367540 !ruby/object:Gem::Requirement
|
72
|
+
none: false
|
73
|
+
requirements:
|
74
|
+
- - ! '>='
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: *70255968367540
|
80
|
+
- !ruby/object:Gem::Dependency
|
81
|
+
name: capybara
|
82
|
+
requirement: &70255968366900 !ruby/object:Gem::Requirement
|
83
|
+
none: false
|
84
|
+
requirements:
|
85
|
+
- - ! '>='
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: '0'
|
88
|
+
type: :development
|
89
|
+
prerelease: false
|
90
|
+
version_requirements: *70255968366900
|
91
|
+
- !ruby/object:Gem::Dependency
|
92
|
+
name: sqlite3
|
93
|
+
requirement: &70255968366120 !ruby/object:Gem::Requirement
|
94
|
+
none: false
|
95
|
+
requirements:
|
96
|
+
- - ! '>='
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: '0'
|
99
|
+
type: :development
|
100
|
+
prerelease: false
|
101
|
+
version_requirements: *70255968366120
|
102
|
+
- !ruby/object:Gem::Dependency
|
103
|
+
name: vcr
|
104
|
+
requirement: &70255968362160 !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
110
|
+
type: :development
|
111
|
+
prerelease: false
|
112
|
+
version_requirements: *70255968362160
|
113
|
+
- !ruby/object:Gem::Dependency
|
114
|
+
name: fakeweb
|
115
|
+
requirement: &70255968360920 !ruby/object:Gem::Requirement
|
116
|
+
none: false
|
117
|
+
requirements:
|
118
|
+
- - ! '>='
|
119
|
+
- !ruby/object:Gem::Version
|
120
|
+
version: '0'
|
121
|
+
type: :development
|
122
|
+
prerelease: false
|
123
|
+
version_requirements: *70255968360920
|
58
124
|
description:
|
59
125
|
email:
|
60
126
|
- chris_beer@wgbh.org
|
@@ -63,12 +129,15 @@ extensions: []
|
|
63
129
|
extra_rdoc_files: []
|
64
130
|
files:
|
65
131
|
- .gitignore
|
132
|
+
- Gemfile
|
133
|
+
- Gemfile.lock
|
66
134
|
- MIT-LICENSE
|
67
135
|
- README.rdoc
|
68
136
|
- Rakefile
|
69
137
|
- VERSION
|
70
138
|
- app/helpers/blacklight_highlight_helper.rb
|
71
139
|
- blacklight_highlight.gemspec
|
140
|
+
- config.ru
|
72
141
|
- config/routes.rb
|
73
142
|
- lib/blacklight_highlight.rb
|
74
143
|
- lib/blacklight_highlight/controller_extension.rb
|
@@ -78,6 +147,20 @@ files:
|
|
78
147
|
- lib/blacklight_highlight/version.rb
|
79
148
|
- lib/generators/blacklight_highlight/blacklight_highlight_generator.rb
|
80
149
|
- lib/rsolr-ext/response/highlight.rb
|
150
|
+
- spec/acceptance/blacklight_highlight_spec.rb
|
151
|
+
- spec/integration/blacklight_highlight_spec.rb
|
152
|
+
- spec/integration/blacklight_stub_spec.rb
|
153
|
+
- spec/internal/app/controllers/application_controller.rb
|
154
|
+
- spec/internal/app/models/solr_document.rb
|
155
|
+
- spec/internal/config/database.yml
|
156
|
+
- spec/internal/config/routes.rb
|
157
|
+
- spec/internal/config/solr.yml
|
158
|
+
- spec/internal/db/schema.rb
|
159
|
+
- spec/internal/log/.gitignore
|
160
|
+
- spec/internal/public/favicon.ico
|
161
|
+
- spec/lib/solr_document_extension_spec.rb
|
162
|
+
- spec/spec_helper.rb
|
163
|
+
- spec/vcr_cassettes/solr.yml
|
81
164
|
homepage: http://projectblacklight.org/
|
82
165
|
licenses: []
|
83
166
|
post_install_message:
|
@@ -102,4 +185,18 @@ rubygems_version: 1.8.10
|
|
102
185
|
signing_key:
|
103
186
|
specification_version: 3
|
104
187
|
summary: Blacklight Solr Highlight plugin
|
105
|
-
test_files:
|
188
|
+
test_files:
|
189
|
+
- spec/acceptance/blacklight_highlight_spec.rb
|
190
|
+
- spec/integration/blacklight_highlight_spec.rb
|
191
|
+
- spec/integration/blacklight_stub_spec.rb
|
192
|
+
- spec/internal/app/controllers/application_controller.rb
|
193
|
+
- spec/internal/app/models/solr_document.rb
|
194
|
+
- spec/internal/config/database.yml
|
195
|
+
- spec/internal/config/routes.rb
|
196
|
+
- spec/internal/config/solr.yml
|
197
|
+
- spec/internal/db/schema.rb
|
198
|
+
- spec/internal/log/.gitignore
|
199
|
+
- spec/internal/public/favicon.ico
|
200
|
+
- spec/lib/solr_document_extension_spec.rb
|
201
|
+
- spec/spec_helper.rb
|
202
|
+
- spec/vcr_cassettes/solr.yml
|