supernova 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. data/Gemfile +1 -0
  2. data/Gemfile.lock +2 -0
  3. data/VERSION +1 -1
  4. data/lib/supernova/criteria.rb +6 -2
  5. data/lib/supernova/solr.rb +1 -0
  6. data/lib/supernova/solr_criteria.rb +10 -1
  7. data/lib/supernova/solr_indexer.rb +71 -0
  8. data/solr/conf/admin-extra.html +31 -0
  9. data/solr/conf/elevate.xml +36 -0
  10. data/solr/conf/mapping-FoldToASCII.txt +3813 -0
  11. data/solr/conf/mapping-ISOLatin1Accent.txt +246 -0
  12. data/solr/conf/protwords.txt +21 -0
  13. data/solr/conf/schema.xml +475 -0
  14. data/solr/conf/scripts.conf +24 -0
  15. data/solr/conf/solrconfig.xml +1508 -0
  16. data/solr/conf/spellings.txt +2 -0
  17. data/solr/conf/stopwords.txt +58 -0
  18. data/solr/conf/synonyms.txt +29 -0
  19. data/solr/conf/velocity/VM_global_library.vm +184 -0
  20. data/solr/conf/velocity/browse.vm +45 -0
  21. data/solr/conf/velocity/cluster.vm +26 -0
  22. data/solr/conf/velocity/clusterResults.vm +29 -0
  23. data/solr/conf/velocity/doc.vm +29 -0
  24. data/solr/conf/velocity/facet_dates.vm +0 -0
  25. data/solr/conf/velocity/facet_fields.vm +12 -0
  26. data/solr/conf/velocity/facet_queries.vm +3 -0
  27. data/solr/conf/velocity/facet_ranges.vm +30 -0
  28. data/solr/conf/velocity/facets.vm +7 -0
  29. data/solr/conf/velocity/footer.vm +17 -0
  30. data/solr/conf/velocity/head.vm +45 -0
  31. data/solr/conf/velocity/header.vm +3 -0
  32. data/solr/conf/velocity/hit.vm +5 -0
  33. data/solr/conf/velocity/jquery.autocomplete.css +48 -0
  34. data/solr/conf/velocity/jquery.autocomplete.js +762 -0
  35. data/solr/conf/velocity/layout.vm +20 -0
  36. data/solr/conf/velocity/main.css +184 -0
  37. data/solr/conf/velocity/query.vm +56 -0
  38. data/solr/conf/velocity/querySpatial.vm +40 -0
  39. data/solr/conf/velocity/suggest.vm +3 -0
  40. data/solr/conf/velocity/tabs.vm +22 -0
  41. data/solr/conf/xslt/example.xsl +132 -0
  42. data/solr/conf/xslt/example_atom.xsl +67 -0
  43. data/solr/conf/xslt/example_rss.xsl +66 -0
  44. data/solr/conf/xslt/luke.xsl +337 -0
  45. data/spec/integration/solr_spec.rb +6 -0
  46. data/spec/spec_helper.rb +1 -1
  47. data/spec/supernova/solr_criteria_spec.rb +16 -0
  48. data/spec/supernova/solr_indexer_spec.rb +167 -0
  49. data/supernova.gemspec +45 -3
  50. 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
@@ -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
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{supernova}
8
- s.version = "0.2.1"
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-09}
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.7.2}
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: 21
4
+ hash: 19
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 2
9
- - 1
10
- version: 0.2.1
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-09 00:00:00 Z
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
- requirement: &id006 !ruby/object:Gem::Requirement
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
- requirement: &id007 !ruby/object:Gem::Requirement
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
- requirement: &id008 !ruby/object:Gem::Requirement
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
- requirement: &id009 !ruby/object:Gem::Requirement
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
- requirement: &id010 !ruby/object:Gem::Requirement
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
- requirement: &id011 !ruby/object:Gem::Requirement
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
- requirement: &id012 !ruby/object:Gem::Requirement
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.7.2
321
+ rubygems_version: 1.6.2
267
322
  signing_key:
268
323
  specification_version: 3
269
324
  summary: Unified search scopes