outoftime-sunspot 0.0.1
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/History.txt +7 -0
- data/Manifest.txt +104 -0
- data/PostInstall.txt +7 -0
- data/README.rdoc +115 -0
- data/Rakefile +27 -0
- data/config/hoe.rb +74 -0
- data/config/requirements.rb +15 -0
- data/lib/light_config.rb +40 -0
- data/lib/sunspot/adapters.rb +54 -0
- data/lib/sunspot/conditions.rb +50 -0
- data/lib/sunspot/conditions_builder.rb +37 -0
- data/lib/sunspot/configuration.rb +17 -0
- data/lib/sunspot/field.rb +108 -0
- data/lib/sunspot/field_builder.rb +37 -0
- data/lib/sunspot/indexer.rb +65 -0
- data/lib/sunspot/query.rb +115 -0
- data/lib/sunspot/query_builder.rb +30 -0
- data/lib/sunspot/restriction.rb +72 -0
- data/lib/sunspot/scope_builder.rb +33 -0
- data/lib/sunspot/search.rb +83 -0
- data/lib/sunspot/session.rb +43 -0
- data/lib/sunspot/type.rb +62 -0
- data/lib/sunspot/util.rb +13 -0
- data/lib/sunspot/version.rb +10 -0
- data/lib/sunspot.rb +50 -0
- data/setup.rb +1585 -0
- data/solr/README.txt +36 -0
- data/solr/etc/jetty.xml +206 -0
- data/solr/etc/webdefault.xml +379 -0
- data/solr/exampledocs/books.csv +11 -0
- data/solr/exampledocs/hd.xml +46 -0
- data/solr/exampledocs/ipod_other.xml +50 -0
- data/solr/exampledocs/ipod_video.xml +35 -0
- data/solr/exampledocs/mem.xml +58 -0
- data/solr/exampledocs/monitor.xml +31 -0
- data/solr/exampledocs/monitor2.xml +30 -0
- data/solr/exampledocs/mp500.xml +39 -0
- data/solr/exampledocs/post.jar +0 -0
- data/solr/exampledocs/post.sh +28 -0
- data/solr/exampledocs/sd500.xml +33 -0
- data/solr/exampledocs/solr.xml +38 -0
- data/solr/exampledocs/spellchecker.xml +58 -0
- data/solr/exampledocs/utf8-example.xml +42 -0
- data/solr/exampledocs/vidcard.xml +52 -0
- data/solr/lib/jetty-6.1.3.jar +0 -0
- data/solr/lib/jetty-util-6.1.3.jar +0 -0
- data/solr/lib/jsp-2.1/ant-1.6.5.jar +0 -0
- data/solr/lib/jsp-2.1/core-3.1.1.jar +0 -0
- data/solr/lib/jsp-2.1/jsp-2.1.jar +0 -0
- data/solr/lib/jsp-2.1/jsp-api-2.1.jar +0 -0
- data/solr/lib/servlet-api-2.5-6.1.3.jar +0 -0
- data/solr/solr/README.txt +52 -0
- data/solr/solr/bin/abc +176 -0
- data/solr/solr/bin/abo +176 -0
- data/solr/solr/bin/backup +108 -0
- data/solr/solr/bin/backupcleaner +142 -0
- data/solr/solr/bin/commit +128 -0
- data/solr/solr/bin/optimize +129 -0
- data/solr/solr/bin/readercycle +129 -0
- data/solr/solr/bin/rsyncd-disable +77 -0
- data/solr/solr/bin/rsyncd-enable +76 -0
- data/solr/solr/bin/rsyncd-start +145 -0
- data/solr/solr/bin/rsyncd-stop +105 -0
- data/solr/solr/bin/scripts-util +83 -0
- data/solr/solr/bin/snapcleaner +148 -0
- data/solr/solr/bin/snapinstaller +168 -0
- data/solr/solr/bin/snappuller +248 -0
- data/solr/solr/bin/snappuller-disable +77 -0
- data/solr/solr/bin/snappuller-enable +77 -0
- data/solr/solr/bin/snapshooter +109 -0
- data/solr/solr/conf/admin-extra.html +31 -0
- data/solr/solr/conf/protwords.txt +21 -0
- data/solr/solr/conf/schema.xml +231 -0
- data/solr/solr/conf/scripts.conf +24 -0
- data/solr/solr/conf/solrconfig.xml +394 -0
- data/solr/solr/conf/stopwords.txt +57 -0
- data/solr/solr/conf/synonyms.txt +31 -0
- data/solr/start.jar +0 -0
- data/solr/webapps/solr.war +0 -0
- data/tasks/deployment.rake +34 -0
- data/tasks/environment.rake +7 -0
- data/tasks/rcov.rake +6 -0
- data/tasks/solr.rake +12 -0
- data/tasks/website.rake +17 -0
- data/test/api/test_build_search.rb +216 -0
- data/test/api/test_helper.rb +4 -0
- data/test/api/test_indexer.rb +110 -0
- data/test/api/test_retrieve_search.rb +114 -0
- data/test/api/test_session.rb +46 -0
- data/test/custom_expectation.rb +53 -0
- data/test/integration/test_field_types.rb +62 -0
- data/test/integration/test_helper.rb +1 -0
- data/test/integration/test_keyword_search.rb +32 -0
- data/test/integration/test_pagination.rb +32 -0
- data/test/mocks/base_class.rb +2 -0
- data/test/mocks/comment.rb +28 -0
- data/test/mocks/mock_adapter.rb +25 -0
- data/test/mocks/post.rb +41 -0
- data/test/test_helper.rb +31 -0
- metadata +191 -0
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
module Matchy
|
|
2
|
+
module Expectations
|
|
3
|
+
class HaveKeyExpectation < Base
|
|
4
|
+
def matches?(receiver)
|
|
5
|
+
@receiver = receiver
|
|
6
|
+
receiver.has_key?(@expected)
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def failure_message
|
|
10
|
+
"Expected #{@receiver.inspect} to have key #{@expected.inspect}"
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def negative_failure_message
|
|
14
|
+
"Expected #{@receiver.inspect} not to have key #{@expected.inspect}"
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
class BooleanExpectation < Base
|
|
19
|
+
def initialize(method, args, test_case)
|
|
20
|
+
@method = method
|
|
21
|
+
@args = args
|
|
22
|
+
@test_case = test_case
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def matches?(receiver)
|
|
26
|
+
@receiver = receiver
|
|
27
|
+
receiver.send("#{@method}?", *@args)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def failure_message
|
|
31
|
+
"Expected #{@receiver} to #{'be ' if @args.empty?}#{@method}#{@args.map { |arg| arg.inspect } * ', '}"
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def negative_failure_message
|
|
35
|
+
"Expected #{@receiver} to not #{'be ' if @args.empty?}#{@method}#{@args.map { |arg| arg.inspect } * ', '}"
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
module TestCaseExtensions
|
|
40
|
+
def have_key(key)
|
|
41
|
+
Matchy::Expectations::HaveKeyExpectation.new(key, self)
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def method_missing(method, *args, &block)
|
|
45
|
+
if match = /be_(.*)/.match(method.to_s)
|
|
46
|
+
Matchy::Expectations::BooleanExpectation.new(match[1], [], self)
|
|
47
|
+
else
|
|
48
|
+
Matchy::Expectations::BooleanExpectation.new(method.to_s, args, self)
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
require File.join(File.dirname(__FILE__), 'test_helper')
|
|
2
|
+
|
|
3
|
+
class TestFieldTypes < Test::Unit::TestCase
|
|
4
|
+
def self.test_field_type(name, field, *values)
|
|
5
|
+
raise(ArgumentError, 'Please supply five values') unless values.length == 5
|
|
6
|
+
|
|
7
|
+
context "with field of type #{name}" do
|
|
8
|
+
before :all do
|
|
9
|
+
Sunspot.remove_all
|
|
10
|
+
@posts = values.map do |value|
|
|
11
|
+
post = Post.new(field => value)
|
|
12
|
+
Sunspot.index(post)
|
|
13
|
+
post
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
test 'should filter by exact match' do
|
|
18
|
+
Sunspot.search(Post) { with.send(field, values[2]) }.results.should == [@posts[2]]
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
test 'should filter by less than' do
|
|
22
|
+
results = Sunspot.search(Post) { with.send(field).less_than values[2] }.results
|
|
23
|
+
(0..2).each { |i| results.should include(@posts[i]) }
|
|
24
|
+
(3..4).each { |i| results.should_not include(@posts[i]) }
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
test 'should filter by greater than' do
|
|
28
|
+
results = Sunspot.search(Post) { with.send(field).greater_than values[2] }.results
|
|
29
|
+
(2..4).each { |i| results.should include(@posts[i]) }
|
|
30
|
+
(0..1).each { |i| results.should_not include(@posts[i]) }
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
test 'should filter by between' do
|
|
34
|
+
results = Sunspot.search(Post) { with.send(field).between(values[1]..values[3]) }.results
|
|
35
|
+
(1..3).each { |i| results.should include(@posts[i]) }
|
|
36
|
+
[0, 4].each { |i| results.should_not include(@posts[i]) }
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
test 'should filter by any of' do
|
|
40
|
+
results = Sunspot.search(Post) { with.send(field).any_of(values.values_at(1, 3)) }.results
|
|
41
|
+
[1, 3].each { |i| results.should include(@posts[i]) }
|
|
42
|
+
[0, 2, 4].each { |i| results.should_not include(@posts[i]) }
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
test 'should order by field ascending' do
|
|
46
|
+
results = Sunspot.search(Post) { order_by field, :asc }.results
|
|
47
|
+
results.should == @posts
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
test 'should order by field descending' do
|
|
51
|
+
results = Sunspot.search(Post) { order_by field, :desc }.results
|
|
52
|
+
results.should == @posts.reverse
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
test_field_type 'String', :title, 'apple', 'banana', 'cherry', 'date', 'eggplant'
|
|
58
|
+
test_field_type 'Integer', :blog_id, -2, 0, 3, 12, 20
|
|
59
|
+
test_field_type 'Float', :average_rating, -2.5, 0.0, 3.2, 3.5, 16.0
|
|
60
|
+
test_field_type 'Time', :published_at, *(['1970-01-01 00:00:00 UTC', '1983-07-08 04:00:00 UTC', '1983-07-08 02:00:00 -0500',
|
|
61
|
+
'2005-11-05 10:00:00 UTC', Time.now.to_s].map { |t| Time.parse(t) })
|
|
62
|
+
end
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
require File.join(File.dirname(__FILE__), '..', 'test_helper')
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
require File.join(File.dirname(__FILE__), 'test_helper')
|
|
2
|
+
|
|
3
|
+
class TestKeywordSearch < Test::Unit::TestCase
|
|
4
|
+
before :all do
|
|
5
|
+
Sunspot.remove_all
|
|
6
|
+
@posts = []
|
|
7
|
+
@posts << Post.new(:title => 'The toast elects the insufficient spirit',
|
|
8
|
+
:body => 'Does the wind write?')
|
|
9
|
+
@posts << Post.new(:title => 'A nail abbreviates the recovering insight outside the moron',
|
|
10
|
+
:body => 'The interpreted strain scans the buffer around the upper temper')
|
|
11
|
+
@posts << Post.new(:title => 'The toast abbreviates the recovering spirit',
|
|
12
|
+
:body => 'Does the wind interpret the buffer?')
|
|
13
|
+
Sunspot.index(*@posts)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
test 'matches a single keyword out of a single field' do
|
|
17
|
+
results = Sunspot.search(Post) { keywords 'toast' }.results
|
|
18
|
+
[0, 2].each { |i| results.should include(@posts[i]) }
|
|
19
|
+
[1].each { |i| results.should_not include(@posts[i]) }
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
test 'matches multiple words out of a single field' do
|
|
23
|
+
results = Sunspot.search(Post) { keywords 'elects toast' }.results
|
|
24
|
+
results.should == [@posts[0]]
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
test 'matches multiple words in multiple fields' do
|
|
28
|
+
results = Sunspot.search(Post) { keywords 'toast wind' }.results
|
|
29
|
+
[0, 2].each { |i| results.should include(@posts[i]) }
|
|
30
|
+
[1].each { |i| results.should_not include(@posts[i]) }
|
|
31
|
+
end
|
|
32
|
+
end
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
require File.join(File.dirname(__FILE__), 'test_helper')
|
|
2
|
+
|
|
3
|
+
class TestPagination < Test::Unit::TestCase
|
|
4
|
+
before :all do
|
|
5
|
+
Sunspot.remove_all
|
|
6
|
+
@posts = (0..19).map do |i|
|
|
7
|
+
Post.new(:blog_id => i)
|
|
8
|
+
end
|
|
9
|
+
Sunspot.index(*@posts)
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
should 'return all by default' do
|
|
13
|
+
results = Sunspot.search(Post) { order_by :blog_id }.results
|
|
14
|
+
results.should == @posts
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
should 'return first page of 10' do
|
|
18
|
+
results = Sunspot.search(Post) do
|
|
19
|
+
order_by :blog_id
|
|
20
|
+
paginate :page => 1, :per_page => 10
|
|
21
|
+
end.results
|
|
22
|
+
results.should == @posts[0,10]
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
should 'return second page of 10' do
|
|
26
|
+
results = Sunspot.search(Post) do
|
|
27
|
+
order_by :blog_id
|
|
28
|
+
paginate :page => 2, :per_page => 10
|
|
29
|
+
end.results
|
|
30
|
+
results.should == @posts[10,10]
|
|
31
|
+
end
|
|
32
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
class Comment < BaseClass
|
|
2
|
+
@@id = 0
|
|
3
|
+
@@comments = [nil]
|
|
4
|
+
|
|
5
|
+
attr_reader :id
|
|
6
|
+
attr_accessor :author_name, :published_at, :body
|
|
7
|
+
|
|
8
|
+
def initialize(attrs = {})
|
|
9
|
+
@id = @@id += 1
|
|
10
|
+
@@comments << self
|
|
11
|
+
attrs.each_pair { |attribute, value| self.send("#{attribute}=", value) }
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def self.get(id)
|
|
15
|
+
@@posts[id]
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def self.get_all(ids)
|
|
19
|
+
ids.map { |id| get(id) }.sort_by { |post| post.id } # this is so that results are not ordered by coincidence
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
Sunspot.setup(Comment) do
|
|
24
|
+
text :author_name, :body
|
|
25
|
+
string :author_name
|
|
26
|
+
time :published_at
|
|
27
|
+
integer :average_rating
|
|
28
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
require File.join(File.dirname(__FILE__), 'post')
|
|
2
|
+
|
|
3
|
+
module MockAdapter
|
|
4
|
+
class InstanceAdapter
|
|
5
|
+
include Sunspot::Adapters::InstanceAdapter
|
|
6
|
+
|
|
7
|
+
def id
|
|
8
|
+
instance.id
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
class ClassAdapter
|
|
13
|
+
include Sunspot::Adapters::ClassAdapter
|
|
14
|
+
|
|
15
|
+
def load(id)
|
|
16
|
+
clazz.get(id.to_i)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def load_all(ids)
|
|
20
|
+
clazz.get_all(ids.map { |id| id.to_i })
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
Sunspot::Adapters.register(MockAdapter, BaseClass)
|
data/test/mocks/post.rb
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
class Post < BaseClass
|
|
2
|
+
@@id = 0
|
|
3
|
+
@@posts = [nil]
|
|
4
|
+
|
|
5
|
+
attr_reader :id
|
|
6
|
+
attr_accessor :title, :body, :blog_id, :published_at, :average_rating, :author_name
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
def initialize(attrs = {})
|
|
10
|
+
@id = @@id += 1
|
|
11
|
+
@@posts << self
|
|
12
|
+
attrs.each_pair { |attribute, value| self.send "#{attribute}=", value }
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def category_ids
|
|
16
|
+
@category_ids ||= []
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def self.get(id)
|
|
20
|
+
@@posts[id]
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def self.get_all(ids)
|
|
24
|
+
ids.map { |id| get(id) }.sort_by { |post| post.id } # this is so that results are not ordered by coincidence
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
private
|
|
28
|
+
attr_writer :category_ids
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
Sunspot.setup(Post) do
|
|
32
|
+
text :title, :body
|
|
33
|
+
string :title
|
|
34
|
+
integer :blog_id
|
|
35
|
+
integer :category_ids, :multiple => true
|
|
36
|
+
float :average_rating
|
|
37
|
+
time :published_at
|
|
38
|
+
string :sort_title do
|
|
39
|
+
title.downcase.sub(/^(a|an|the)\W+/, '') if title
|
|
40
|
+
end
|
|
41
|
+
end
|
data/test/test_helper.rb
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
require 'rubygems'
|
|
2
|
+
gem 'jeremymcanally-matchy', '>= 0.0.1'
|
|
3
|
+
gem 'jeremymcanally-context', '>= 0.0.6'
|
|
4
|
+
gem 'ruby-debug', '~>0.10'
|
|
5
|
+
gem 'mislav-will_paginate', '~> 2.3'
|
|
6
|
+
|
|
7
|
+
require 'matchy'
|
|
8
|
+
require 'context'
|
|
9
|
+
require 'ruby-debug'
|
|
10
|
+
require 'will_paginate'
|
|
11
|
+
require 'will_paginate/collection'
|
|
12
|
+
|
|
13
|
+
require File.join(File.dirname(__FILE__), 'custom_expectation')
|
|
14
|
+
|
|
15
|
+
unless gem_name = ENV['SUNSPOT_TEST_GEM']
|
|
16
|
+
$:.unshift(File.dirname(__FILE__) + '/../lib')
|
|
17
|
+
else
|
|
18
|
+
gem gem_name
|
|
19
|
+
end
|
|
20
|
+
require 'sunspot'
|
|
21
|
+
|
|
22
|
+
require File.join(File.dirname(__FILE__), 'mocks', 'base_class.rb')
|
|
23
|
+
Dir.glob(File.join(File.dirname(__FILE__), 'mocks', '**', '*.rb')).each { |file| require file }
|
|
24
|
+
|
|
25
|
+
class Test::Unit::TestCase
|
|
26
|
+
def without_class(clazz)
|
|
27
|
+
Object.class_eval { remove_const(clazz.name.to_sym) }
|
|
28
|
+
yield
|
|
29
|
+
Object.class_eval { const_set(clazz.name.to_sym, clazz) }
|
|
30
|
+
end
|
|
31
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: outoftime-sunspot
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.0.1
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Mat Brown
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: bin
|
|
10
|
+
cert_chain: []
|
|
11
|
+
|
|
12
|
+
date: 2008-12-12 00:00:00 -08:00
|
|
13
|
+
default_executable:
|
|
14
|
+
dependencies:
|
|
15
|
+
- !ruby/object:Gem::Dependency
|
|
16
|
+
name: newgem
|
|
17
|
+
version_requirement:
|
|
18
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
19
|
+
requirements:
|
|
20
|
+
- - ">="
|
|
21
|
+
- !ruby/object:Gem::Version
|
|
22
|
+
version: 1.0.6
|
|
23
|
+
version:
|
|
24
|
+
- !ruby/object:Gem::Dependency
|
|
25
|
+
name: hoe
|
|
26
|
+
version_requirement:
|
|
27
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
28
|
+
requirements:
|
|
29
|
+
- - ">="
|
|
30
|
+
- !ruby/object:Gem::Version
|
|
31
|
+
version: 1.8.0
|
|
32
|
+
version:
|
|
33
|
+
description: ""
|
|
34
|
+
email:
|
|
35
|
+
- mat@patch.com
|
|
36
|
+
executables: []
|
|
37
|
+
|
|
38
|
+
extensions: []
|
|
39
|
+
|
|
40
|
+
extra_rdoc_files:
|
|
41
|
+
- History.txt
|
|
42
|
+
- Manifest.txt
|
|
43
|
+
- PostInstall.txt
|
|
44
|
+
- README.rdoc
|
|
45
|
+
- solr/README.txt
|
|
46
|
+
- solr/solr/README.txt
|
|
47
|
+
- solr/solr/conf/protwords.txt
|
|
48
|
+
- solr/solr/conf/stopwords.txt
|
|
49
|
+
- solr/solr/conf/synonyms.txt
|
|
50
|
+
files:
|
|
51
|
+
- History.txt
|
|
52
|
+
- Manifest.txt
|
|
53
|
+
- PostInstall.txt
|
|
54
|
+
- README.rdoc
|
|
55
|
+
- Rakefile
|
|
56
|
+
- config/hoe.rb
|
|
57
|
+
- config/requirements.rb
|
|
58
|
+
- lib/light_config.rb
|
|
59
|
+
- lib/sunspot.rb
|
|
60
|
+
- lib/sunspot/adapters.rb
|
|
61
|
+
- lib/sunspot/conditions.rb
|
|
62
|
+
- lib/sunspot/conditions_builder.rb
|
|
63
|
+
- lib/sunspot/configuration.rb
|
|
64
|
+
- lib/sunspot/field.rb
|
|
65
|
+
- lib/sunspot/field_builder.rb
|
|
66
|
+
- lib/sunspot/indexer.rb
|
|
67
|
+
- lib/sunspot/query.rb
|
|
68
|
+
- lib/sunspot/query_builder.rb
|
|
69
|
+
- lib/sunspot/restriction.rb
|
|
70
|
+
- lib/sunspot/scope_builder.rb
|
|
71
|
+
- lib/sunspot/search.rb
|
|
72
|
+
- lib/sunspot/session.rb
|
|
73
|
+
- lib/sunspot/type.rb
|
|
74
|
+
- lib/sunspot/util.rb
|
|
75
|
+
- lib/sunspot/version.rb
|
|
76
|
+
- log/test_solr.log
|
|
77
|
+
- setup.rb
|
|
78
|
+
- solr/README.txt
|
|
79
|
+
- solr/etc/jetty.xml
|
|
80
|
+
- solr/etc/webdefault.xml
|
|
81
|
+
- solr/exampledocs/books.csv
|
|
82
|
+
- solr/exampledocs/hd.xml
|
|
83
|
+
- solr/exampledocs/ipod_other.xml
|
|
84
|
+
- solr/exampledocs/ipod_video.xml
|
|
85
|
+
- solr/exampledocs/mem.xml
|
|
86
|
+
- solr/exampledocs/monitor.xml
|
|
87
|
+
- solr/exampledocs/monitor2.xml
|
|
88
|
+
- solr/exampledocs/mp500.xml
|
|
89
|
+
- solr/exampledocs/post.jar
|
|
90
|
+
- solr/exampledocs/post.sh
|
|
91
|
+
- solr/exampledocs/sd500.xml
|
|
92
|
+
- solr/exampledocs/solr.xml
|
|
93
|
+
- solr/exampledocs/spellchecker.xml
|
|
94
|
+
- solr/exampledocs/utf8-example.xml
|
|
95
|
+
- solr/exampledocs/vidcard.xml
|
|
96
|
+
- solr/lib/jetty-6.1.3.jar
|
|
97
|
+
- solr/lib/jetty-util-6.1.3.jar
|
|
98
|
+
- solr/lib/jsp-2.1/ant-1.6.5.jar
|
|
99
|
+
- solr/lib/jsp-2.1/core-3.1.1.jar
|
|
100
|
+
- solr/lib/jsp-2.1/jsp-2.1.jar
|
|
101
|
+
- solr/lib/jsp-2.1/jsp-api-2.1.jar
|
|
102
|
+
- solr/lib/servlet-api-2.5-6.1.3.jar
|
|
103
|
+
- solr/logs
|
|
104
|
+
- solr/solr/README.txt
|
|
105
|
+
- solr/solr/bin/abc
|
|
106
|
+
- solr/solr/bin/abo
|
|
107
|
+
- solr/solr/bin/backup
|
|
108
|
+
- solr/solr/bin/backupcleaner
|
|
109
|
+
- solr/solr/bin/commit
|
|
110
|
+
- solr/solr/bin/optimize
|
|
111
|
+
- solr/solr/bin/readercycle
|
|
112
|
+
- solr/solr/bin/rsyncd-disable
|
|
113
|
+
- solr/solr/bin/rsyncd-enable
|
|
114
|
+
- solr/solr/bin/rsyncd-start
|
|
115
|
+
- solr/solr/bin/rsyncd-stop
|
|
116
|
+
- solr/solr/bin/scripts-util
|
|
117
|
+
- solr/solr/bin/snapcleaner
|
|
118
|
+
- solr/solr/bin/snapinstaller
|
|
119
|
+
- solr/solr/bin/snappuller
|
|
120
|
+
- solr/solr/bin/snappuller-disable
|
|
121
|
+
- solr/solr/bin/snappuller-enable
|
|
122
|
+
- solr/solr/bin/snapshooter
|
|
123
|
+
- solr/solr/conf/admin-extra.html
|
|
124
|
+
- solr/solr/conf/protwords.txt
|
|
125
|
+
- solr/solr/conf/schema.xml
|
|
126
|
+
- solr/solr/conf/scripts.conf
|
|
127
|
+
- solr/solr/conf/solrconfig.xml
|
|
128
|
+
- solr/solr/conf/stopwords.txt
|
|
129
|
+
- solr/solr/conf/synonyms.txt
|
|
130
|
+
- solr/solr/conf/xslt
|
|
131
|
+
- solr/solr/data/spell
|
|
132
|
+
- solr/start.jar
|
|
133
|
+
- solr/webapps/solr.war
|
|
134
|
+
- tasks/deployment.rake
|
|
135
|
+
- tasks/environment.rake
|
|
136
|
+
- tasks/rcov.rake
|
|
137
|
+
- tasks/solr.rake
|
|
138
|
+
- tasks/website.rake
|
|
139
|
+
- test/api/test_build_search.rb
|
|
140
|
+
- test/api/test_helper.rb
|
|
141
|
+
- test/api/test_indexer.rb
|
|
142
|
+
- test/api/test_retrieve_search.rb
|
|
143
|
+
- test/api/test_session.rb
|
|
144
|
+
- test/custom_expectation.rb
|
|
145
|
+
- test/integration/test_field_types.rb
|
|
146
|
+
- test/integration/test_helper.rb
|
|
147
|
+
- test/integration/test_keyword_search.rb
|
|
148
|
+
- test/integration/test_pagination.rb
|
|
149
|
+
- test/mocks/base_class.rb
|
|
150
|
+
- test/mocks/comment.rb
|
|
151
|
+
- test/mocks/mock_adapter.rb
|
|
152
|
+
- test/mocks/post.rb
|
|
153
|
+
- test/test_helper.rb
|
|
154
|
+
has_rdoc: true
|
|
155
|
+
homepage: http://github.com/outoftime/sunspot
|
|
156
|
+
post_install_message: PostInstall.txt
|
|
157
|
+
rdoc_options:
|
|
158
|
+
- --main
|
|
159
|
+
- README.rdoc
|
|
160
|
+
require_paths:
|
|
161
|
+
- lib
|
|
162
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
163
|
+
requirements:
|
|
164
|
+
- - ">="
|
|
165
|
+
- !ruby/object:Gem::Version
|
|
166
|
+
version: "0"
|
|
167
|
+
version:
|
|
168
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
169
|
+
requirements:
|
|
170
|
+
- - ">="
|
|
171
|
+
- !ruby/object:Gem::Version
|
|
172
|
+
version: "0"
|
|
173
|
+
version:
|
|
174
|
+
requirements: []
|
|
175
|
+
|
|
176
|
+
rubyforge_project: sunspot
|
|
177
|
+
rubygems_version: 1.2.0
|
|
178
|
+
signing_key:
|
|
179
|
+
specification_version: 2
|
|
180
|
+
summary: library for expressive, powerful interaction with the Solr search engine
|
|
181
|
+
test_files:
|
|
182
|
+
- test/api/test_build_search.rb
|
|
183
|
+
- test/api/test_helper.rb
|
|
184
|
+
- test/api/test_indexer.rb
|
|
185
|
+
- test/api/test_retrieve_search.rb
|
|
186
|
+
- test/api/test_session.rb
|
|
187
|
+
- test/integration/test_field_types.rb
|
|
188
|
+
- test/integration/test_helper.rb
|
|
189
|
+
- test/integration/test_keyword_search.rb
|
|
190
|
+
- test/integration/test_pagination.rb
|
|
191
|
+
- test/test_helper.rb
|