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.
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