supernova 0.2.1 → 0.2.2
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.
- data/Gemfile +1 -0
- data/Gemfile.lock +2 -0
- data/VERSION +1 -1
- data/lib/supernova/criteria.rb +6 -2
- data/lib/supernova/solr.rb +1 -0
- data/lib/supernova/solr_criteria.rb +10 -1
- data/lib/supernova/solr_indexer.rb +71 -0
- data/solr/conf/admin-extra.html +31 -0
- data/solr/conf/elevate.xml +36 -0
- data/solr/conf/mapping-FoldToASCII.txt +3813 -0
- data/solr/conf/mapping-ISOLatin1Accent.txt +246 -0
- data/solr/conf/protwords.txt +21 -0
- data/solr/conf/schema.xml +475 -0
- data/solr/conf/scripts.conf +24 -0
- data/solr/conf/solrconfig.xml +1508 -0
- data/solr/conf/spellings.txt +2 -0
- data/solr/conf/stopwords.txt +58 -0
- data/solr/conf/synonyms.txt +29 -0
- data/solr/conf/velocity/VM_global_library.vm +184 -0
- data/solr/conf/velocity/browse.vm +45 -0
- data/solr/conf/velocity/cluster.vm +26 -0
- data/solr/conf/velocity/clusterResults.vm +29 -0
- data/solr/conf/velocity/doc.vm +29 -0
- data/solr/conf/velocity/facet_dates.vm +0 -0
- data/solr/conf/velocity/facet_fields.vm +12 -0
- data/solr/conf/velocity/facet_queries.vm +3 -0
- data/solr/conf/velocity/facet_ranges.vm +30 -0
- data/solr/conf/velocity/facets.vm +7 -0
- data/solr/conf/velocity/footer.vm +17 -0
- data/solr/conf/velocity/head.vm +45 -0
- data/solr/conf/velocity/header.vm +3 -0
- data/solr/conf/velocity/hit.vm +5 -0
- data/solr/conf/velocity/jquery.autocomplete.css +48 -0
- data/solr/conf/velocity/jquery.autocomplete.js +762 -0
- data/solr/conf/velocity/layout.vm +20 -0
- data/solr/conf/velocity/main.css +184 -0
- data/solr/conf/velocity/query.vm +56 -0
- data/solr/conf/velocity/querySpatial.vm +40 -0
- data/solr/conf/velocity/suggest.vm +3 -0
- data/solr/conf/velocity/tabs.vm +22 -0
- data/solr/conf/xslt/example.xsl +132 -0
- data/solr/conf/xslt/example_atom.xsl +67 -0
- data/solr/conf/xslt/example_rss.xsl +66 -0
- data/solr/conf/xslt/luke.xsl +337 -0
- data/spec/integration/solr_spec.rb +6 -0
- data/spec/spec_helper.rb +1 -1
- data/spec/supernova/solr_criteria_spec.rb +16 -0
- data/spec/supernova/solr_indexer_spec.rb +167 -0
- data/supernova.gemspec +45 -3
- metadata +91 -36
@@ -94,5 +94,11 @@ describe "Solr" do
|
|
94
94
|
results.total_entries.should == 0
|
95
95
|
results.current_page.should == 1
|
96
96
|
end
|
97
|
+
|
98
|
+
it "only sets specific attributes" do
|
99
|
+
results = new_criteria.select(:user_id).with(:user_id => 1).to_a
|
100
|
+
results.length.should == 1
|
101
|
+
results.first.should == { "id" => "offers/1", "user_id" => 1 }
|
102
|
+
end
|
97
103
|
end
|
98
104
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -40,7 +40,7 @@ ThinkingSphinx::ActiveRecord::LogSubscriber.logger = Logger.new(
|
|
40
40
|
|
41
41
|
ActiveRecord::Base.send(:include, ThinkingSphinx::ActiveRecord)
|
42
42
|
|
43
|
-
ActiveRecord::Base.connection.execute("DROP TABLE offers")
|
43
|
+
ActiveRecord::Base.connection.execute("DROP TABLE IF EXISTS offers")
|
44
44
|
ActiveRecord::Base.connection.execute("CREATE TABLE offers (id SERIAL, text TEXT, user_id INTEGER, enabled BOOLEAN, popularity INTEGER, lat FLOAT, lng FLOAT)")
|
45
45
|
|
46
46
|
class Offer < ActiveRecord::Base
|
@@ -48,6 +48,10 @@ describe Supernova::SolrCriteria do
|
|
48
48
|
criteria.to_params[:fq].should == []
|
49
49
|
end
|
50
50
|
|
51
|
+
it "sets the correct select filters when present" do
|
52
|
+
criteria.select(:user_id).select(:user_id).select(:enabled).to_params[:fl].should == "user_id,enabled,id"
|
53
|
+
end
|
54
|
+
|
51
55
|
it "adds all without filters" do
|
52
56
|
criteria.without(:user_id => 1).to_params[:fq].should == ["!user_id:1"]
|
53
57
|
criteria.without(:user_id => 1).without(:user_id => 1).without(:user_id => 2).to_params[:fq].sort.should == ["!user_id:1", "!user_id:2"]
|
@@ -175,6 +179,12 @@ describe Supernova::SolrCriteria do
|
|
175
179
|
criteria.should_receive(:build_doc).with(doc2)
|
176
180
|
criteria.build_docs(docs)
|
177
181
|
end
|
182
|
+
|
183
|
+
it "uses a custom mapper when build_doc_method is set" do
|
184
|
+
doc1 = { "a" => 1 }
|
185
|
+
meth = lambda { |row| row.to_a }
|
186
|
+
criteria.build_doc_method(meth).build_docs([doc1]).should == [[["a", 1]]]
|
187
|
+
end
|
178
188
|
end
|
179
189
|
|
180
190
|
describe "#build_doc" do
|
@@ -206,6 +216,12 @@ describe Supernova::SolrCriteria do
|
|
206
216
|
it "would also work with mongoid ids" do
|
207
217
|
criteria.build_doc("type" => "MongoOffer", "id" => "offers/4df08c30f3b0a72e7c227a55").id.should == "4df08c30f3b0a72e7c227a55"
|
208
218
|
end
|
219
|
+
|
220
|
+
it "uses OpenStruct when type is not given" do
|
221
|
+
doc = criteria.build_doc("id" => "offers/4df08c30f3b0a72e7c227a55")
|
222
|
+
doc.should be_an_instance_of(Hash)
|
223
|
+
doc["id"].should == "offers/4df08c30f3b0a72e7c227a55"
|
224
|
+
end
|
209
225
|
end
|
210
226
|
|
211
227
|
describe "#current_page" do
|
@@ -0,0 +1,167 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Supernova::SolrIndexer do
|
4
|
+
|
5
|
+
let(:db) { double("db", :query => [to_index]) }
|
6
|
+
let(:to_index) { { :id => 1, :title => "Some Title"} }
|
7
|
+
let(:file_stub) { double("file").as_null_object }
|
8
|
+
|
9
|
+
let(:indexer) {
|
10
|
+
indexer = Supernova::SolrIndexer.new
|
11
|
+
indexer.db = db
|
12
|
+
Supernova::Solr.url = "http://solr.xx:9333/solr"
|
13
|
+
indexer.stub!(:system).and_return true
|
14
|
+
indexer
|
15
|
+
}
|
16
|
+
|
17
|
+
before(:each) do
|
18
|
+
File.stub!(:open).and_return file_stub
|
19
|
+
end
|
20
|
+
|
21
|
+
describe "initialize" do
|
22
|
+
it "sets all options" do
|
23
|
+
options = { :database => { :database => "dynasty", :username => "dynasty_user" } }
|
24
|
+
indexer = Supernova::SolrIndexer.new(options)
|
25
|
+
indexer.options.should == options
|
26
|
+
end
|
27
|
+
|
28
|
+
it "sets all known attributes" do
|
29
|
+
indexer = Supernova::SolrIndexer.new(:db => db)
|
30
|
+
indexer.db.should == db
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
describe "#query_db" do
|
35
|
+
it "executes the query" do
|
36
|
+
db.should_receive(:query).with("query").and_return [to_index]
|
37
|
+
indexer.query_db("query")
|
38
|
+
end
|
39
|
+
|
40
|
+
it "calls select_all when not responding to query" do
|
41
|
+
old_mysql_double = double("old mysql double", :select_all => [])
|
42
|
+
indexer.db = old_mysql_double
|
43
|
+
old_mysql_double.should_receive(:select_all).with("query").and_return [to_index]
|
44
|
+
indexer.query_db("query")
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
describe "#index_query" do
|
49
|
+
let(:query) { %(SELECT CONCAT("user_", id) AS id, title FROM people WHERE type = 'User') }
|
50
|
+
|
51
|
+
it "executes the query" do
|
52
|
+
indexer.should_receive(:query_db).with(query).and_return [to_index]
|
53
|
+
indexer.index_query(query)
|
54
|
+
end
|
55
|
+
|
56
|
+
it "calls write_to_file on all rows" do
|
57
|
+
rows = [double("1"), double("2")]
|
58
|
+
indexer.stub(:query_db).and_return rows
|
59
|
+
indexer.should_receive(:write_to_file).with(rows.first)
|
60
|
+
indexer.should_receive(:write_to_file).with(rows.at(1))
|
61
|
+
indexer.stub!(:finish)
|
62
|
+
indexer.index_query(query)
|
63
|
+
end
|
64
|
+
|
65
|
+
it "calls finish" do
|
66
|
+
indexer.should_receive(:finish)
|
67
|
+
indexer.index_query(query)
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
describe "#index_file_path" do
|
72
|
+
it "returns the set file_path" do
|
73
|
+
indexer.index_file_path = "/some/path"
|
74
|
+
indexer.index_file_path.should == "/some/path"
|
75
|
+
end
|
76
|
+
|
77
|
+
it "returns a random file path when not set" do
|
78
|
+
Time.stub(:now).and_return Time.at(112233)
|
79
|
+
indexer.index_file_path.should == "/tmp/index_file_112233.json"
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
describe "#write_to_file" do
|
84
|
+
describe "with the stream not being open" do
|
85
|
+
it "opens a new stream" do
|
86
|
+
indexer.index_file_path = "/tmp/some_path.json"
|
87
|
+
File.should_receive(:open).with("/tmp/some_path.json", "w")
|
88
|
+
indexer.write_to_file(to_index)
|
89
|
+
end
|
90
|
+
|
91
|
+
it "writes the opening brackets and the first line" do
|
92
|
+
file_stub.should_receive(:puts).with("\{")
|
93
|
+
file_stub.should_receive(:print).with("\"add\":{\"doc\":{\"title\":\"Some Title\",\"id\":1}}")
|
94
|
+
indexer.write_to_file(to_index)
|
95
|
+
end
|
96
|
+
|
97
|
+
it "only write fields which are not null" do
|
98
|
+
file_stub.should_receive(:print).with("\"add\":{\"doc\":{\"title\":\"Some Title\",\"id\":1}}")
|
99
|
+
indexer.write_to_file(to_index.merge(:text => nil))
|
100
|
+
end
|
101
|
+
|
102
|
+
it "separates the first and the second line" do
|
103
|
+
file_stub.should_receive(:puts).with("\{")
|
104
|
+
file_stub.should_receive(:print).with("\"add\":{\"doc\":{\"title\":\"Some Title\",\"id\":1}}")
|
105
|
+
file_stub.should_receive(:print).with(%(,\n"add":{"doc":{"id":2}}))
|
106
|
+
indexer.write_to_file(to_index)
|
107
|
+
indexer.write_to_file({:id => 2})
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
it "does not open a new file when already open" do
|
112
|
+
indexer.instance_variable_set("@index_file_stream", file_stub)
|
113
|
+
File.should_not_receive(:open)
|
114
|
+
indexer.write_to_file(to_index)
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
describe "#finish" do
|
119
|
+
it "raises an error when stream not open" do
|
120
|
+
lambda {
|
121
|
+
indexer.finish
|
122
|
+
}.should raise_error("nothing to index")
|
123
|
+
end
|
124
|
+
|
125
|
+
describe "with something being written" do
|
126
|
+
it "writes closing bracket to file" do
|
127
|
+
indexer.write_to_file(to_index)
|
128
|
+
file_stub.should_receive(:puts).with("\}")
|
129
|
+
indexer.finish
|
130
|
+
end
|
131
|
+
|
132
|
+
it "closes the stream" do
|
133
|
+
indexer.write_to_file(to_index)
|
134
|
+
file_stub.should_receive(:close)
|
135
|
+
indexer.finish
|
136
|
+
end
|
137
|
+
|
138
|
+
it "calls do_index_file" do
|
139
|
+
indexer.write_to_file(to_index)
|
140
|
+
indexer.should_receive(:do_index_file)
|
141
|
+
indexer.finish
|
142
|
+
end
|
143
|
+
end
|
144
|
+
end
|
145
|
+
|
146
|
+
describe "#do_index_file" do
|
147
|
+
it "raises an error when solr_url not configues" do
|
148
|
+
Supernova::Solr.url = nil
|
149
|
+
lambda {
|
150
|
+
Supernova::SolrIndexer.new.do_index_file
|
151
|
+
}.should raise_error("solr not configured")
|
152
|
+
end
|
153
|
+
|
154
|
+
it "calls the correct curl command" do
|
155
|
+
indexer.index_file_path = "/tmp/some_path.json"
|
156
|
+
indexer.should_receive(:system).with("curl -s 'http://solr.xx:9333/solr/update/json?commit=true\\&stream.file=/tmp/some_path.json'")
|
157
|
+
indexer.do_index_file(:local => true)
|
158
|
+
end
|
159
|
+
|
160
|
+
it "executes the correct curl call when not local" do
|
161
|
+
# curl 'http://localhost:8983/solr/update/json?commit=true' --data-binary @books.json -H 'Content-type:application/json'
|
162
|
+
indexer.index_file_path = "/tmp/some_path.json"
|
163
|
+
indexer.should_receive(:system).with("cd /tmp && curl -s 'http://solr.xx:9333/solr/update/json?commit=true' --data-binary @some_path.json -H 'Content-type:application/json'")
|
164
|
+
indexer.do_index_file
|
165
|
+
end
|
166
|
+
end
|
167
|
+
end
|
data/supernova.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{supernova}
|
8
|
-
s.version = "0.2.
|
8
|
+
s.version = "0.2.2"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Tobias Schwab"]
|
12
|
-
s.date = %q{2011-06-
|
12
|
+
s.date = %q{2011-06-11}
|
13
13
|
s.description = %q{Unified search scopes}
|
14
14
|
s.email = %q{tobias.schwab@dynport.de}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -33,8 +33,46 @@ Gem::Specification.new do |s|
|
|
33
33
|
"lib/supernova/numeric_extensions.rb",
|
34
34
|
"lib/supernova/solr.rb",
|
35
35
|
"lib/supernova/solr_criteria.rb",
|
36
|
+
"lib/supernova/solr_indexer.rb",
|
36
37
|
"lib/supernova/thinking_sphinx.rb",
|
37
38
|
"lib/supernova/thinking_sphinx_criteria.rb",
|
39
|
+
"solr/conf/admin-extra.html",
|
40
|
+
"solr/conf/elevate.xml",
|
41
|
+
"solr/conf/mapping-FoldToASCII.txt",
|
42
|
+
"solr/conf/mapping-ISOLatin1Accent.txt",
|
43
|
+
"solr/conf/protwords.txt",
|
44
|
+
"solr/conf/schema.xml",
|
45
|
+
"solr/conf/scripts.conf",
|
46
|
+
"solr/conf/solrconfig.xml",
|
47
|
+
"solr/conf/spellings.txt",
|
48
|
+
"solr/conf/stopwords.txt",
|
49
|
+
"solr/conf/synonyms.txt",
|
50
|
+
"solr/conf/velocity/VM_global_library.vm",
|
51
|
+
"solr/conf/velocity/browse.vm",
|
52
|
+
"solr/conf/velocity/cluster.vm",
|
53
|
+
"solr/conf/velocity/clusterResults.vm",
|
54
|
+
"solr/conf/velocity/doc.vm",
|
55
|
+
"solr/conf/velocity/facet_dates.vm",
|
56
|
+
"solr/conf/velocity/facet_fields.vm",
|
57
|
+
"solr/conf/velocity/facet_queries.vm",
|
58
|
+
"solr/conf/velocity/facet_ranges.vm",
|
59
|
+
"solr/conf/velocity/facets.vm",
|
60
|
+
"solr/conf/velocity/footer.vm",
|
61
|
+
"solr/conf/velocity/head.vm",
|
62
|
+
"solr/conf/velocity/header.vm",
|
63
|
+
"solr/conf/velocity/hit.vm",
|
64
|
+
"solr/conf/velocity/jquery.autocomplete.css",
|
65
|
+
"solr/conf/velocity/jquery.autocomplete.js",
|
66
|
+
"solr/conf/velocity/layout.vm",
|
67
|
+
"solr/conf/velocity/main.css",
|
68
|
+
"solr/conf/velocity/query.vm",
|
69
|
+
"solr/conf/velocity/querySpatial.vm",
|
70
|
+
"solr/conf/velocity/suggest.vm",
|
71
|
+
"solr/conf/velocity/tabs.vm",
|
72
|
+
"solr/conf/xslt/example.xsl",
|
73
|
+
"solr/conf/xslt/example_atom.xsl",
|
74
|
+
"solr/conf/xslt/example_rss.xsl",
|
75
|
+
"solr/conf/xslt/luke.xsl",
|
38
76
|
"spec/database.sql",
|
39
77
|
"spec/integration/solr_spec.rb",
|
40
78
|
"spec/integration/thinking_sphinx_spec.rb",
|
@@ -42,6 +80,7 @@ Gem::Specification.new do |s|
|
|
42
80
|
"spec/supernova/criteria_spec.rb",
|
43
81
|
"spec/supernova/numeric_extensions_spec.rb",
|
44
82
|
"spec/supernova/solr_criteria_spec.rb",
|
83
|
+
"spec/supernova/solr_indexer_spec.rb",
|
45
84
|
"spec/supernova/solr_spec.rb",
|
46
85
|
"spec/supernova/thinking_sphinx_criteria_spec.rb",
|
47
86
|
"spec/supernova_spec.rb",
|
@@ -50,7 +89,7 @@ Gem::Specification.new do |s|
|
|
50
89
|
s.homepage = %q{http://github.com/dynport/supernova}
|
51
90
|
s.licenses = ["MIT"]
|
52
91
|
s.require_paths = ["lib"]
|
53
|
-
s.rubygems_version = %q{1.
|
92
|
+
s.rubygems_version = %q{1.6.2}
|
54
93
|
s.summary = %q{Unified search scopes}
|
55
94
|
|
56
95
|
if s.respond_to? :specification_version then
|
@@ -60,6 +99,7 @@ Gem::Specification.new do |s|
|
|
60
99
|
s.add_runtime_dependency(%q<thinking-sphinx>, ["= 2.0.3"])
|
61
100
|
s.add_runtime_dependency(%q<rsolr>, [">= 0"])
|
62
101
|
s.add_runtime_dependency(%q<will_paginate>, [">= 0"])
|
102
|
+
s.add_runtime_dependency(%q<json>, [">= 0"])
|
63
103
|
s.add_development_dependency(%q<ruby-debug>, [">= 0"])
|
64
104
|
s.add_development_dependency(%q<mysql2>, ["~> 0.2.7"])
|
65
105
|
s.add_development_dependency(%q<geokit>, [">= 0"])
|
@@ -73,6 +113,7 @@ Gem::Specification.new do |s|
|
|
73
113
|
s.add_dependency(%q<thinking-sphinx>, ["= 2.0.3"])
|
74
114
|
s.add_dependency(%q<rsolr>, [">= 0"])
|
75
115
|
s.add_dependency(%q<will_paginate>, [">= 0"])
|
116
|
+
s.add_dependency(%q<json>, [">= 0"])
|
76
117
|
s.add_dependency(%q<ruby-debug>, [">= 0"])
|
77
118
|
s.add_dependency(%q<mysql2>, ["~> 0.2.7"])
|
78
119
|
s.add_dependency(%q<geokit>, [">= 0"])
|
@@ -87,6 +128,7 @@ Gem::Specification.new do |s|
|
|
87
128
|
s.add_dependency(%q<thinking-sphinx>, ["= 2.0.3"])
|
88
129
|
s.add_dependency(%q<rsolr>, [">= 0"])
|
89
130
|
s.add_dependency(%q<will_paginate>, [">= 0"])
|
131
|
+
s.add_dependency(%q<json>, [">= 0"])
|
90
132
|
s.add_dependency(%q<ruby-debug>, [">= 0"])
|
91
133
|
s.add_dependency(%q<mysql2>, ["~> 0.2.7"])
|
92
134
|
s.add_dependency(%q<geokit>, [">= 0"])
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: supernova
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 19
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 0.2.
|
9
|
+
- 2
|
10
|
+
version: 0.2.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Tobias Schwab
|
@@ -15,9 +15,11 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-06-
|
18
|
+
date: 2011-06-11 00:00:00 +02:00
|
19
|
+
default_executable:
|
19
20
|
dependencies:
|
20
21
|
- !ruby/object:Gem::Dependency
|
22
|
+
type: :runtime
|
21
23
|
requirement: &id001 !ruby/object:Gem::Requirement
|
22
24
|
none: false
|
23
25
|
requirements:
|
@@ -29,11 +31,11 @@ dependencies:
|
|
29
31
|
- 0
|
30
32
|
- 3
|
31
33
|
version: 2.0.3
|
32
|
-
version_requirements: *id001
|
33
34
|
name: thinking-sphinx
|
35
|
+
version_requirements: *id001
|
34
36
|
prerelease: false
|
35
|
-
type: :runtime
|
36
37
|
- !ruby/object:Gem::Dependency
|
38
|
+
type: :runtime
|
37
39
|
requirement: &id002 !ruby/object:Gem::Requirement
|
38
40
|
none: false
|
39
41
|
requirements:
|
@@ -43,11 +45,11 @@ dependencies:
|
|
43
45
|
segments:
|
44
46
|
- 0
|
45
47
|
version: "0"
|
46
|
-
version_requirements: *id002
|
47
48
|
name: rsolr
|
49
|
+
version_requirements: *id002
|
48
50
|
prerelease: false
|
49
|
-
type: :runtime
|
50
51
|
- !ruby/object:Gem::Dependency
|
52
|
+
type: :runtime
|
51
53
|
requirement: &id003 !ruby/object:Gem::Requirement
|
52
54
|
none: false
|
53
55
|
requirements:
|
@@ -57,11 +59,11 @@ dependencies:
|
|
57
59
|
segments:
|
58
60
|
- 0
|
59
61
|
version: "0"
|
60
|
-
version_requirements: *id003
|
61
62
|
name: will_paginate
|
63
|
+
version_requirements: *id003
|
62
64
|
prerelease: false
|
63
|
-
type: :runtime
|
64
65
|
- !ruby/object:Gem::Dependency
|
66
|
+
type: :runtime
|
65
67
|
requirement: &id004 !ruby/object:Gem::Requirement
|
66
68
|
none: false
|
67
69
|
requirements:
|
@@ -71,12 +73,26 @@ dependencies:
|
|
71
73
|
segments:
|
72
74
|
- 0
|
73
75
|
version: "0"
|
76
|
+
name: json
|
74
77
|
version_requirements: *id004
|
75
|
-
name: ruby-debug
|
76
78
|
prerelease: false
|
77
|
-
type: :development
|
78
79
|
- !ruby/object:Gem::Dependency
|
80
|
+
type: :development
|
79
81
|
requirement: &id005 !ruby/object:Gem::Requirement
|
82
|
+
none: false
|
83
|
+
requirements:
|
84
|
+
- - ">="
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
hash: 3
|
87
|
+
segments:
|
88
|
+
- 0
|
89
|
+
version: "0"
|
90
|
+
name: ruby-debug
|
91
|
+
version_requirements: *id005
|
92
|
+
prerelease: false
|
93
|
+
- !ruby/object:Gem::Dependency
|
94
|
+
type: :development
|
95
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
80
96
|
none: false
|
81
97
|
requirements:
|
82
98
|
- - ~>
|
@@ -87,12 +103,12 @@ dependencies:
|
|
87
103
|
- 2
|
88
104
|
- 7
|
89
105
|
version: 0.2.7
|
90
|
-
version_requirements: *id005
|
91
106
|
name: mysql2
|
107
|
+
version_requirements: *id006
|
92
108
|
prerelease: false
|
93
|
-
type: :development
|
94
109
|
- !ruby/object:Gem::Dependency
|
95
|
-
|
110
|
+
type: :development
|
111
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
96
112
|
none: false
|
97
113
|
requirements:
|
98
114
|
- - ">="
|
@@ -101,12 +117,12 @@ dependencies:
|
|
101
117
|
segments:
|
102
118
|
- 0
|
103
119
|
version: "0"
|
104
|
-
version_requirements: *id006
|
105
120
|
name: geokit
|
121
|
+
version_requirements: *id007
|
106
122
|
prerelease: false
|
107
|
-
type: :development
|
108
123
|
- !ruby/object:Gem::Dependency
|
109
|
-
|
124
|
+
type: :development
|
125
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
110
126
|
none: false
|
111
127
|
requirements:
|
112
128
|
- - ">="
|
@@ -115,12 +131,12 @@ dependencies:
|
|
115
131
|
segments:
|
116
132
|
- 0
|
117
133
|
version: "0"
|
118
|
-
version_requirements: *id007
|
119
134
|
name: autotest
|
135
|
+
version_requirements: *id008
|
120
136
|
prerelease: false
|
121
|
-
type: :development
|
122
137
|
- !ruby/object:Gem::Dependency
|
123
|
-
|
138
|
+
type: :development
|
139
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
124
140
|
none: false
|
125
141
|
requirements:
|
126
142
|
- - ">="
|
@@ -129,12 +145,12 @@ dependencies:
|
|
129
145
|
segments:
|
130
146
|
- 0
|
131
147
|
version: "0"
|
132
|
-
version_requirements: *id008
|
133
148
|
name: autotest-growl
|
149
|
+
version_requirements: *id009
|
134
150
|
prerelease: false
|
135
|
-
type: :development
|
136
151
|
- !ruby/object:Gem::Dependency
|
137
|
-
|
152
|
+
type: :development
|
153
|
+
requirement: &id010 !ruby/object:Gem::Requirement
|
138
154
|
none: false
|
139
155
|
requirements:
|
140
156
|
- - ~>
|
@@ -145,12 +161,12 @@ dependencies:
|
|
145
161
|
- 3
|
146
162
|
- 0
|
147
163
|
version: 2.3.0
|
148
|
-
version_requirements: *id009
|
149
164
|
name: rspec
|
165
|
+
version_requirements: *id010
|
150
166
|
prerelease: false
|
151
|
-
type: :development
|
152
167
|
- !ruby/object:Gem::Dependency
|
153
|
-
|
168
|
+
type: :development
|
169
|
+
requirement: &id011 !ruby/object:Gem::Requirement
|
154
170
|
none: false
|
155
171
|
requirements:
|
156
172
|
- - ~>
|
@@ -161,12 +177,12 @@ dependencies:
|
|
161
177
|
- 0
|
162
178
|
- 0
|
163
179
|
version: 1.0.0
|
164
|
-
version_requirements: *id010
|
165
180
|
name: bundler
|
181
|
+
version_requirements: *id011
|
166
182
|
prerelease: false
|
167
|
-
type: :development
|
168
183
|
- !ruby/object:Gem::Dependency
|
169
|
-
|
184
|
+
type: :development
|
185
|
+
requirement: &id012 !ruby/object:Gem::Requirement
|
170
186
|
none: false
|
171
187
|
requirements:
|
172
188
|
- - ~>
|
@@ -177,12 +193,12 @@ dependencies:
|
|
177
193
|
- 6
|
178
194
|
- 0
|
179
195
|
version: 1.6.0
|
180
|
-
version_requirements: *id011
|
181
196
|
name: jeweler
|
197
|
+
version_requirements: *id012
|
182
198
|
prerelease: false
|
183
|
-
type: :development
|
184
199
|
- !ruby/object:Gem::Dependency
|
185
|
-
|
200
|
+
type: :development
|
201
|
+
requirement: &id013 !ruby/object:Gem::Requirement
|
186
202
|
none: false
|
187
203
|
requirements:
|
188
204
|
- - ">="
|
@@ -191,10 +207,9 @@ dependencies:
|
|
191
207
|
segments:
|
192
208
|
- 0
|
193
209
|
version: "0"
|
194
|
-
version_requirements: *id012
|
195
210
|
name: rcov
|
211
|
+
version_requirements: *id013
|
196
212
|
prerelease: false
|
197
|
-
type: :development
|
198
213
|
description: Unified search scopes
|
199
214
|
email: tobias.schwab@dynport.de
|
200
215
|
executables: []
|
@@ -221,8 +236,46 @@ files:
|
|
221
236
|
- lib/supernova/numeric_extensions.rb
|
222
237
|
- lib/supernova/solr.rb
|
223
238
|
- lib/supernova/solr_criteria.rb
|
239
|
+
- lib/supernova/solr_indexer.rb
|
224
240
|
- lib/supernova/thinking_sphinx.rb
|
225
241
|
- lib/supernova/thinking_sphinx_criteria.rb
|
242
|
+
- solr/conf/admin-extra.html
|
243
|
+
- solr/conf/elevate.xml
|
244
|
+
- solr/conf/mapping-FoldToASCII.txt
|
245
|
+
- solr/conf/mapping-ISOLatin1Accent.txt
|
246
|
+
- solr/conf/protwords.txt
|
247
|
+
- solr/conf/schema.xml
|
248
|
+
- solr/conf/scripts.conf
|
249
|
+
- solr/conf/solrconfig.xml
|
250
|
+
- solr/conf/spellings.txt
|
251
|
+
- solr/conf/stopwords.txt
|
252
|
+
- solr/conf/synonyms.txt
|
253
|
+
- solr/conf/velocity/VM_global_library.vm
|
254
|
+
- solr/conf/velocity/browse.vm
|
255
|
+
- solr/conf/velocity/cluster.vm
|
256
|
+
- solr/conf/velocity/clusterResults.vm
|
257
|
+
- solr/conf/velocity/doc.vm
|
258
|
+
- solr/conf/velocity/facet_dates.vm
|
259
|
+
- solr/conf/velocity/facet_fields.vm
|
260
|
+
- solr/conf/velocity/facet_queries.vm
|
261
|
+
- solr/conf/velocity/facet_ranges.vm
|
262
|
+
- solr/conf/velocity/facets.vm
|
263
|
+
- solr/conf/velocity/footer.vm
|
264
|
+
- solr/conf/velocity/head.vm
|
265
|
+
- solr/conf/velocity/header.vm
|
266
|
+
- solr/conf/velocity/hit.vm
|
267
|
+
- solr/conf/velocity/jquery.autocomplete.css
|
268
|
+
- solr/conf/velocity/jquery.autocomplete.js
|
269
|
+
- solr/conf/velocity/layout.vm
|
270
|
+
- solr/conf/velocity/main.css
|
271
|
+
- solr/conf/velocity/query.vm
|
272
|
+
- solr/conf/velocity/querySpatial.vm
|
273
|
+
- solr/conf/velocity/suggest.vm
|
274
|
+
- solr/conf/velocity/tabs.vm
|
275
|
+
- solr/conf/xslt/example.xsl
|
276
|
+
- solr/conf/xslt/example_atom.xsl
|
277
|
+
- solr/conf/xslt/example_rss.xsl
|
278
|
+
- solr/conf/xslt/luke.xsl
|
226
279
|
- spec/database.sql
|
227
280
|
- spec/integration/solr_spec.rb
|
228
281
|
- spec/integration/thinking_sphinx_spec.rb
|
@@ -230,10 +283,12 @@ files:
|
|
230
283
|
- spec/supernova/criteria_spec.rb
|
231
284
|
- spec/supernova/numeric_extensions_spec.rb
|
232
285
|
- spec/supernova/solr_criteria_spec.rb
|
286
|
+
- spec/supernova/solr_indexer_spec.rb
|
233
287
|
- spec/supernova/solr_spec.rb
|
234
288
|
- spec/supernova/thinking_sphinx_criteria_spec.rb
|
235
289
|
- spec/supernova_spec.rb
|
236
290
|
- supernova.gemspec
|
291
|
+
has_rdoc: true
|
237
292
|
homepage: http://github.com/dynport/supernova
|
238
293
|
licenses:
|
239
294
|
- MIT
|
@@ -263,7 +318,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
263
318
|
requirements: []
|
264
319
|
|
265
320
|
rubyforge_project:
|
266
|
-
rubygems_version: 1.
|
321
|
+
rubygems_version: 1.6.2
|
267
322
|
signing_key:
|
268
323
|
specification_version: 3
|
269
324
|
summary: Unified search scopes
|