xapit 0.2.7 → 0.3.0
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/{CHANGELOG → CHANGELOG.rdoc} +7 -2
- data/Gemfile +19 -0
- data/LICENSE +4 -4
- data/README.rdoc +61 -108
- data/Rakefile +11 -10
- data/features/facets.feature +93 -82
- data/features/finding.feature +196 -138
- data/features/indexing.feature +35 -37
- data/features/remote_server.feature +10 -0
- data/features/step_definitions/xapit_steps.rb +53 -25
- data/features/suggestions.feature +20 -14
- data/features/support/env.rb +13 -6
- data/features/support/xapit_helpers.rb +8 -9
- data/lib/generators/xapit/install_generator.rb +14 -0
- data/lib/generators/xapit/templates/xapit.ru +6 -0
- data/lib/generators/xapit/templates/xapit.yml +11 -0
- data/lib/xapit.rb +106 -64
- data/lib/xapit/client/collection.rb +150 -0
- data/lib/xapit/client/facet.rb +11 -0
- data/lib/xapit/client/facet_option.rb +29 -0
- data/lib/xapit/client/index_builder.rb +67 -0
- data/lib/xapit/client/membership.rb +46 -0
- data/lib/xapit/client/model_adapters/abstract_model_adapter.rb +30 -0
- data/lib/xapit/client/model_adapters/active_record_adapter.rb +27 -0
- data/lib/xapit/client/model_adapters/default_model_adapter.rb +7 -0
- data/lib/xapit/client/railtie.rb +18 -0
- data/lib/xapit/client/remote_database.rb +21 -0
- data/lib/xapit/client/tasks.rb +18 -0
- data/lib/xapit/server/app.rb +27 -0
- data/lib/xapit/server/database.rb +47 -0
- data/lib/xapit/server/indexer.rb +138 -0
- data/lib/xapit/server/query.rb +240 -0
- data/spec/fixtures/blankdb/flintlock +0 -0
- data/spec/fixtures/blankdb/iamchert +1 -0
- data/spec/fixtures/blankdb/postlist.DB +0 -0
- data/spec/fixtures/blankdb/postlist.baseA +0 -0
- data/spec/fixtures/blankdb/record.DB +0 -0
- data/spec/fixtures/blankdb/record.baseA +0 -0
- data/spec/fixtures/blankdb/termlist.DB +0 -0
- data/spec/fixtures/blankdb/termlist.baseA +0 -0
- data/spec/fixtures/xapit.ru +13 -0
- data/spec/fixtures/xapit.yml +4 -0
- data/spec/spec_helper.rb +8 -9
- data/spec/support/spec_macros.rb +6 -0
- data/spec/{xapit_member.rb → support/xapit_member.rb} +14 -16
- data/spec/xapit/client/collection_spec.rb +63 -0
- data/spec/xapit/client/facet_option_spec.rb +26 -0
- data/spec/xapit/client/facet_spec.rb +13 -0
- data/spec/xapit/client/index_builder_spec.rb +66 -0
- data/spec/xapit/client/membership_spec.rb +43 -0
- data/spec/xapit/client/model_adapters/active_record_adapter_spec.rb +62 -0
- data/spec/xapit/client/model_adapters/default_model_adapter_spec.rb +7 -0
- data/spec/xapit/client/remote_database_spec.rb +19 -0
- data/spec/xapit/server/app_spec.rb +22 -0
- data/spec/xapit/server/database_spec.rb +37 -0
- data/spec/xapit/server/indexer_spec.rb +82 -0
- data/spec/xapit/server/query_spec.rb +43 -0
- data/spec/xapit/xapit_spec.rb +28 -0
- metadata +124 -93
- data/Manifest +0 -60
- data/features/sorting.feature +0 -29
- data/init.rb +0 -1
- data/install.rb +0 -8
- data/lib/xapit/adapters/abstract_adapter.rb +0 -47
- data/lib/xapit/adapters/active_record_adapter.rb +0 -20
- data/lib/xapit/adapters/data_mapper_adapter.rb +0 -10
- data/lib/xapit/collection.rb +0 -187
- data/lib/xapit/config.rb +0 -84
- data/lib/xapit/facet.rb +0 -67
- data/lib/xapit/facet_blueprint.rb +0 -59
- data/lib/xapit/facet_option.rb +0 -56
- data/lib/xapit/index_blueprint.rb +0 -147
- data/lib/xapit/indexers/abstract_indexer.rb +0 -116
- data/lib/xapit/indexers/classic_indexer.rb +0 -29
- data/lib/xapit/indexers/simple_indexer.rb +0 -38
- data/lib/xapit/membership.rb +0 -137
- data/lib/xapit/query.rb +0 -89
- data/lib/xapit/query_parsers/abstract_query_parser.rb +0 -174
- data/lib/xapit/query_parsers/classic_query_parser.rb +0 -29
- data/lib/xapit/query_parsers/simple_query_parser.rb +0 -75
- data/lib/xapit/rake_tasks.rb +0 -13
- data/rails_generators/xapit/USAGE +0 -13
- data/rails_generators/xapit/templates/setup_xapit.rb +0 -1
- data/rails_generators/xapit/templates/xapit.rake +0 -4
- data/rails_generators/xapit/xapit_generator.rb +0 -20
- data/spec/xapit/adapters/active_record_adapter_spec.rb +0 -31
- data/spec/xapit/adapters/data_mapper_adapter_spec.rb +0 -10
- data/spec/xapit/collection_spec.rb +0 -176
- data/spec/xapit/config_spec.rb +0 -62
- data/spec/xapit/facet_blueprint_spec.rb +0 -29
- data/spec/xapit/facet_option_spec.rb +0 -80
- data/spec/xapit/facet_spec.rb +0 -73
- data/spec/xapit/index_blueprint_spec.rb +0 -112
- data/spec/xapit/indexers/abstract_indexer_spec.rb +0 -111
- data/spec/xapit/indexers/classic_indexer_spec.rb +0 -35
- data/spec/xapit/indexers/simple_indexer_spec.rb +0 -69
- data/spec/xapit/membership_spec.rb +0 -55
- data/spec/xapit/query_parsers/abstract_query_parser_spec.rb +0 -60
- data/spec/xapit/query_parsers/classic_query_parser_spec.rb +0 -20
- data/spec/xapit/query_parsers/simple_query_parser_spec.rb +0 -86
- data/spec/xapit/query_spec.rb +0 -60
- data/tasks/spec.rb +0 -9
- data/tasks/xapit.rake +0 -1
- data/uninstall.rb +0 -5
- data/xapit.gemspec +0 -30
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
|
2
|
-
|
|
3
|
-
class OtherMember
|
|
4
|
-
include Xapit::Membership
|
|
5
|
-
end
|
|
6
|
-
|
|
7
|
-
describe XapitMember do
|
|
8
|
-
it "should have xapit method" do
|
|
9
|
-
OtherMember.should respond_to(:xapit)
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
it "should not respond to xapit_index_blueprint if xapit isn't called" do
|
|
13
|
-
OtherMember.should_not respond_to(:xapit_index_blueprint)
|
|
14
|
-
OtherMember.should_not respond_to(:search)
|
|
15
|
-
OtherMember.new.should_not respond_to(:search_similar)
|
|
16
|
-
OtherMember.new.should_not respond_to(:xapit_relevance)
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
describe "with description indexed" do
|
|
20
|
-
before(:each) do
|
|
21
|
-
XapitMember.xapit do |index|
|
|
22
|
-
index.text :description
|
|
23
|
-
end
|
|
24
|
-
XapitMember.instance_variable_set("@xapit_adapter", nil)
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
it "should have xapit index blueprint" do
|
|
28
|
-
XapitMember.xapit_index_blueprint.should be_kind_of(Xapit::IndexBlueprint)
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
it "should return collection from search" do
|
|
32
|
-
XapitMember.search("foo").class.should == Xapit::Collection
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
it "should store xapit_relevance" do
|
|
36
|
-
member = XapitMember.new
|
|
37
|
-
member.xapit_relevance = 123
|
|
38
|
-
member.xapit_relevance.should == 123
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
it "should have an adapter" do
|
|
42
|
-
XapitMember.xapit_adapter.class.should == Xapit::ActiveRecordAdapter
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
it "should use DataMapper adapter if that is ancestor" do
|
|
46
|
-
stub(XapitMember).ancestors { ["DataMapper::Resource"] }
|
|
47
|
-
XapitMember.xapit_adapter.class.should == Xapit::DataMapperAdapter
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
it "should raise an exception when no adapter is found" do
|
|
51
|
-
stub(XapitMember).ancestors { [] }
|
|
52
|
-
lambda { XapitMember.xapit_adapter }.should raise_error
|
|
53
|
-
end
|
|
54
|
-
end
|
|
55
|
-
end
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
|
|
2
|
-
|
|
3
|
-
describe Xapit::AbstractQueryParser do
|
|
4
|
-
before(:each) do
|
|
5
|
-
end
|
|
6
|
-
|
|
7
|
-
it "should parse conditions hash into terms" do
|
|
8
|
-
parser = Xapit::AbstractQueryParser.new(:conditions => { :foo => 'bar', 'hello' => :world })
|
|
9
|
-
parser.condition_terms.sort.should == ["Xfoo-bar", "Xhello-world"].sort
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
it "should convert time into integer before placing in condition term" do
|
|
13
|
-
time = Time.now
|
|
14
|
-
parser = Xapit::AbstractQueryParser.new(:conditions => { :time => time })
|
|
15
|
-
parser.condition_terms.should == ["Xtime-#{time.to_i}"]
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
it "should convert date into time then integer before placing in condition term" do
|
|
19
|
-
date = Date.today
|
|
20
|
-
parser = Xapit::AbstractQueryParser.new(:conditions => { :date => date })
|
|
21
|
-
parser.condition_terms.should == ["Xdate-#{date.to_time.to_i}"]
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
it "should give spelling suggestion on full term" do
|
|
25
|
-
Xapit::Config.writable_database.add_spelling("foo bar")
|
|
26
|
-
parser = Xapit::AbstractQueryParser.new(nil, "foo barr")
|
|
27
|
-
parser.spelling_suggestion.should == "foo bar"
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
it "should allow an array of conditions to be specified and use OR xapian query." do
|
|
31
|
-
parser = Xapit::AbstractQueryParser.new(:not_conditions => { :foo => %w[hello world]})
|
|
32
|
-
parser.not_condition_terms.first.xapian_query.description.should == Xapit::Query.new(%w[Xfoo-hello Xfoo-world], :or).xapian_query.description
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
it "should allow range condition to be specified and use VALUE_RANGE xapian query." do
|
|
36
|
-
XapitMember.xapit { |i| i.field :foo }
|
|
37
|
-
expected = Xapian::Query.new(Xapian::Query::OP_VALUE_RANGE, 0, Xapian.sortable_serialise(2), Xapian.sortable_serialise(5))
|
|
38
|
-
parser = Xapit::AbstractQueryParser.new(XapitMember, :conditions => { :foo => 2..5 })
|
|
39
|
-
parser.condition_terms.first.description.should == expected.description
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
it "should allow range condition to be specified in array." do
|
|
43
|
-
XapitMember.xapit { |i| i.field :foo }
|
|
44
|
-
expected = Xapian::Query.new(Xapian::Query::OP_OR,
|
|
45
|
-
Xapian::Query.new(Xapian::Query::OP_VALUE_RANGE, 0, Xapian.sortable_serialise(2), Xapian.sortable_serialise(5)),
|
|
46
|
-
Xapian::Query.new(Xapian::Query::OP_AND, ["Xfoo-10"])
|
|
47
|
-
)
|
|
48
|
-
parser = Xapit::AbstractQueryParser.new(XapitMember, :conditions => { :foo => [2..5, 10] })
|
|
49
|
-
parser.condition_terms.first.xapian_query.description.should == expected.description
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
it "should expand punctuated terms properly" do
|
|
53
|
-
XapitMember.xapit { |i| i.field :name }
|
|
54
|
-
bar = XapitMember.new(:name => "foo-bar")
|
|
55
|
-
baz = XapitMember.new(:name => "foo-baz")
|
|
56
|
-
zap = XapitMember.new(:name => "foo-zap")
|
|
57
|
-
Xapit.index_all
|
|
58
|
-
XapitMember.search(:conditions => { :name => "foo-b*"}).should == [bar, baz]
|
|
59
|
-
end
|
|
60
|
-
end
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
|
|
2
|
-
|
|
3
|
-
describe Xapit::ClassicQueryParser do
|
|
4
|
-
before(:each) do
|
|
5
|
-
@parser = Xapit::ClassicQueryParser.new(nil, nil)
|
|
6
|
-
end
|
|
7
|
-
|
|
8
|
-
it "should have an initial xapian parser with stemming and default operator support" do
|
|
9
|
-
Xapit::Config.writable_database # just so a database exists
|
|
10
|
-
expected = Xapian::QueryParser.new
|
|
11
|
-
expected.stemmer = Xapian::Stem.new("english")
|
|
12
|
-
expected.stemming_strategy = Xapian::QueryParser::STEM_SOME
|
|
13
|
-
expected.default_op = Xapian::Query::OP_AND
|
|
14
|
-
@parser.xapian_query_from_text("foo bar").description.should == expected.parse_query("foo bar").description
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
it "should remove asterisks from terms with one letter" do
|
|
18
|
-
@parser.cleanup_text("J*").should == "J"
|
|
19
|
-
end
|
|
20
|
-
end
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
|
|
2
|
-
|
|
3
|
-
describe Xapit::SimpleQueryParser do
|
|
4
|
-
describe "with stemming" do
|
|
5
|
-
it "should include stemmed variation for single word" do
|
|
6
|
-
Xapit::SimpleQueryParser.new(nil, "jumping").parsed.should == "Zjump"
|
|
7
|
-
end
|
|
8
|
-
|
|
9
|
-
it "should include stemmed variations for multiple words" do
|
|
10
|
-
Xapit::SimpleQueryParser.new(nil, "jumping high").parsed.should == [:and, "Zjump", "Zhigh"]
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
it "should add stemmed variation for 'not' option" do
|
|
14
|
-
Xapit::SimpleQueryParser.new(nil, "jumping not high").parsed.should == [:and, "Zjump", [:not, "Zhigh"]]
|
|
15
|
-
end
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
describe "without stemming" do
|
|
19
|
-
before(:each) do
|
|
20
|
-
Xapit::Config.options[:stemming] = false
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
it "should parse nothing for simple string" do
|
|
24
|
-
Xapit::SimpleQueryParser.new(nil, "foobar").parsed.should == "foobar"
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
it "should parse empty string as blank string" do
|
|
28
|
-
Xapit::SimpleQueryParser.new(nil, "").parsed.should == ""
|
|
29
|
-
Xapit::SimpleQueryParser.new(nil, " \t ").parsed.should == ""
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
it "should parse white space as AND" do
|
|
33
|
-
Xapit::SimpleQueryParser.new(nil, "foo bar").parsed.should == [:and, "foo", "bar"]
|
|
34
|
-
Xapit::SimpleQueryParser.new(nil, "\t foo \t bar ").parsed.should == [:and, "foo", "bar"]
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
it "should parse simple 'or' query" do
|
|
38
|
-
Xapit::SimpleQueryParser.new(nil, "foo or bar").parsed.should == [:or, "foo", "bar"]
|
|
39
|
-
Xapit::SimpleQueryParser.new(nil, " foo or\t bar \t ").parsed.should == [:or, "foo", "bar"]
|
|
40
|
-
Xapit::SimpleQueryParser.new(nil, "foo OR bar").parsed.should == [:or, "foo", "bar"]
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
it "should parse 'and' within 'or' giving 'or' presedence" do
|
|
44
|
-
Xapit::SimpleQueryParser.new(nil, "foo or bar blah").parsed.should == [:or, "foo", [:and, "bar", "blah"]]
|
|
45
|
-
Xapit::SimpleQueryParser.new(nil, "foo bar or blah").parsed.should == [:or, [:and, "foo", "bar"], "blah"]
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
it "should parse simple 'not' query" do
|
|
49
|
-
Xapit::SimpleQueryParser.new(nil, "foo not bar").parsed.should == [:and, "foo", [:not, "bar"]]
|
|
50
|
-
Xapit::SimpleQueryParser.new(nil, "foo NOT bar blah").parsed.should == [:and, "foo", [:not, "bar"], "blah"]
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
it "should convert simple query to xapian query" do
|
|
54
|
-
Xapit::SimpleQueryParser.new(nil, "foo bar").xapian_query.description.should == Xapian::Query.new(Xapian::Query::OP_AND, "foo", "bar").description
|
|
55
|
-
Xapit::SimpleQueryParser.new(nil, "foo OR bar").xapian_query.description.should == Xapian::Query.new(Xapian::Query::OP_OR, "foo", "bar").description
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
it "should convert deep query to xapian query" do
|
|
59
|
-
query = Xapian::Query.new(Xapian::Query::OP_OR,
|
|
60
|
-
Xapian::Query.new(Xapian::Query::OP_OR, ["foo"]),
|
|
61
|
-
Xapian::Query.new(Xapian::Query::OP_AND, ["bar", "blah"])
|
|
62
|
-
)
|
|
63
|
-
Xapit::SimpleQueryParser.new(nil, "foo or bar blah").xapian_query.description.should == query.description
|
|
64
|
-
end
|
|
65
|
-
|
|
66
|
-
it "should convert multi-deep query to xapian query" do
|
|
67
|
-
query = Xapian::Query.new(Xapian::Query::OP_OR,
|
|
68
|
-
Xapian::Query.new(Xapian::Query::OP_AND, ["foo", "bar"]),
|
|
69
|
-
Xapian::Query.new(Xapian::Query::OP_AND, ["test", "blah"])
|
|
70
|
-
)
|
|
71
|
-
Xapit::SimpleQueryParser.new(nil, "foo bar or test blah").xapian_query.description.should == query.description
|
|
72
|
-
end
|
|
73
|
-
|
|
74
|
-
it "should convert single word query to xapian query" do
|
|
75
|
-
Xapit::SimpleQueryParser.new(nil, "foo").xapian_query.description.should == Xapian::Query.new(Xapian::Query::OP_AND, ["foo"]).description
|
|
76
|
-
end
|
|
77
|
-
|
|
78
|
-
it "should convert negative query to xapian query" do
|
|
79
|
-
query = Xapian::Query.new(Xapian::Query::OP_AND_NOT,
|
|
80
|
-
Xapian::Query.new(Xapian::Query::OP_AND, ["foo"]),
|
|
81
|
-
Xapian::Query.new(Xapian::Query::OP_AND, ["bar"])
|
|
82
|
-
)
|
|
83
|
-
Xapit::SimpleQueryParser.new(nil, "foo not bar").xapian_query.description.should == query.description
|
|
84
|
-
end
|
|
85
|
-
end
|
|
86
|
-
end
|
data/spec/xapit/query_spec.rb
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
|
2
|
-
|
|
3
|
-
describe Xapit::Query do
|
|
4
|
-
it "should use query passed in" do
|
|
5
|
-
expected = Xapian::Query.new(Xapian::Query::OP_AND, ["foo bar"])
|
|
6
|
-
query = Xapit::Query.new(expected)
|
|
7
|
-
query.xapian_query.should == expected
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
it "should build a query from a string parameter" do
|
|
11
|
-
expected = Xapian::Query.new(Xapian::Query::OP_AND, ["foo bar"])
|
|
12
|
-
query = Xapit::Query.new("foo bar")
|
|
13
|
-
query.xapian_query.description.should == expected.description
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
it "should build a query from an array of strings" do
|
|
17
|
-
expected = Xapian::Query.new(Xapian::Query::OP_AND, %w[foo bar])
|
|
18
|
-
query = Xapit::Query.new(%w[foo bar])
|
|
19
|
-
query.xapian_query.description.should == expected.description
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
it "should build a query from an array of strings with :or operator" do
|
|
23
|
-
expected = Xapian::Query.new(Xapian::Query::OP_OR, %w[foo bar])
|
|
24
|
-
query = Xapit::Query.new(%w[foo bar], :or)
|
|
25
|
-
query.xapian_query.description.should == expected.description
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
it "should AND two queries together" do
|
|
29
|
-
expected = Xapian::Query.new(Xapian::Query::OP_AND,
|
|
30
|
-
Xapian::Query.new(Xapian::Query::OP_AND, ["foo"]),
|
|
31
|
-
Xapian::Query.new(Xapian::Query::OP_AND, ["bar"])
|
|
32
|
-
)
|
|
33
|
-
query = Xapit::Query.new("foo")
|
|
34
|
-
query.and_query("bar").xapian_query.description.should == expected.description
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
it "should OR two queries together" do
|
|
38
|
-
expected = Xapian::Query.new(Xapian::Query::OP_OR,
|
|
39
|
-
Xapian::Query.new(Xapian::Query::OP_AND, ["foo"]),
|
|
40
|
-
Xapian::Query.new(Xapian::Query::OP_AND, ["bar"])
|
|
41
|
-
)
|
|
42
|
-
query = Xapit::Query.new("foo")
|
|
43
|
-
query.or_query("bar").xapian_query.description.should == expected.description
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
it "should build a query from an array of mixed strings and queries" do
|
|
47
|
-
expected = Xapian::Query.new(Xapian::Query::OP_AND,
|
|
48
|
-
Xapian::Query.new(Xapian::Query::OP_AND, ["foo"]),
|
|
49
|
-
Xapian::Query.new(Xapian::Query::OP_AND, ["bar"])
|
|
50
|
-
)
|
|
51
|
-
query = Xapit::Query.new([Xapit::Query.new("foo"), Xapian::Query.new(Xapian::Query::OP_AND, ["bar"])])
|
|
52
|
-
query.xapian_query.description.should == expected.description
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
it "should use xapit query passed in" do
|
|
56
|
-
expected = Xapian::Query.new(Xapian::Query::OP_AND, ["foo bar"])
|
|
57
|
-
query = Xapit::Query.new(Xapit::Query.new("foo bar"))
|
|
58
|
-
query.xapian_query.description.should == expected.description
|
|
59
|
-
end
|
|
60
|
-
end
|
data/tasks/spec.rb
DELETED
data/tasks/xapit.rake
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
require File.join(File.dirname(__FILE__), '/../lib/xapit/rake_tasks')
|
data/uninstall.rb
DELETED
data/xapit.gemspec
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
|
2
|
-
|
|
3
|
-
Gem::Specification.new do |s|
|
|
4
|
-
s.name = %q{xapit}
|
|
5
|
-
s.version = "0.2.7"
|
|
6
|
-
|
|
7
|
-
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
|
8
|
-
s.authors = ["Ryan Bates"]
|
|
9
|
-
s.date = %q{2009-07-07}
|
|
10
|
-
s.description = %q{Ruby library for interacting with Xapian, a full text search engine.}
|
|
11
|
-
s.email = %q{ryan (at) railscasts (dot) com}
|
|
12
|
-
s.extra_rdoc_files = ["CHANGELOG", "lib/xapit/adapters/abstract_adapter.rb", "lib/xapit/adapters/active_record_adapter.rb", "lib/xapit/adapters/data_mapper_adapter.rb", "lib/xapit/collection.rb", "lib/xapit/config.rb", "lib/xapit/facet.rb", "lib/xapit/facet_blueprint.rb", "lib/xapit/facet_option.rb", "lib/xapit/index_blueprint.rb", "lib/xapit/indexers/abstract_indexer.rb", "lib/xapit/indexers/classic_indexer.rb", "lib/xapit/indexers/simple_indexer.rb", "lib/xapit/membership.rb", "lib/xapit/query.rb", "lib/xapit/query_parsers/abstract_query_parser.rb", "lib/xapit/query_parsers/classic_query_parser.rb", "lib/xapit/query_parsers/simple_query_parser.rb", "lib/xapit/rake_tasks.rb", "lib/xapit.rb", "LICENSE", "README.rdoc", "tasks/spec.rb", "tasks/xapit.rake"]
|
|
13
|
-
s.files = ["CHANGELOG", "features/facets.feature", "features/finding.feature", "features/indexing.feature", "features/sorting.feature", "features/step_definitions/common_steps.rb", "features/step_definitions/xapit_steps.rb", "features/suggestions.feature", "features/support/env.rb", "features/support/xapit_helpers.rb", "init.rb", "install.rb", "lib/xapit/adapters/abstract_adapter.rb", "lib/xapit/adapters/active_record_adapter.rb", "lib/xapit/adapters/data_mapper_adapter.rb", "lib/xapit/collection.rb", "lib/xapit/config.rb", "lib/xapit/facet.rb", "lib/xapit/facet_blueprint.rb", "lib/xapit/facet_option.rb", "lib/xapit/index_blueprint.rb", "lib/xapit/indexers/abstract_indexer.rb", "lib/xapit/indexers/classic_indexer.rb", "lib/xapit/indexers/simple_indexer.rb", "lib/xapit/membership.rb", "lib/xapit/query.rb", "lib/xapit/query_parsers/abstract_query_parser.rb", "lib/xapit/query_parsers/classic_query_parser.rb", "lib/xapit/query_parsers/simple_query_parser.rb", "lib/xapit/rake_tasks.rb", "lib/xapit.rb", "LICENSE", "Manifest", "rails_generators/xapit/templates/setup_xapit.rb", "rails_generators/xapit/templates/xapit.rake", "rails_generators/xapit/USAGE", "rails_generators/xapit/xapit_generator.rb", "Rakefile", "README.rdoc", "spec/spec_helper.rb", "spec/xapit/adapters/active_record_adapter_spec.rb", "spec/xapit/adapters/data_mapper_adapter_spec.rb", "spec/xapit/collection_spec.rb", "spec/xapit/config_spec.rb", "spec/xapit/facet_blueprint_spec.rb", "spec/xapit/facet_option_spec.rb", "spec/xapit/facet_spec.rb", "spec/xapit/index_blueprint_spec.rb", "spec/xapit/indexers/abstract_indexer_spec.rb", "spec/xapit/indexers/classic_indexer_spec.rb", "spec/xapit/indexers/simple_indexer_spec.rb", "spec/xapit/membership_spec.rb", "spec/xapit/query_parsers/abstract_query_parser_spec.rb", "spec/xapit/query_parsers/classic_query_parser_spec.rb", "spec/xapit/query_parsers/simple_query_parser_spec.rb", "spec/xapit/query_spec.rb", "spec/xapit_member.rb", "tasks/spec.rb", "tasks/xapit.rake", "uninstall.rb", "xapit.gemspec"]
|
|
14
|
-
s.homepage = %q{http://github.com/ryanb/xapit}
|
|
15
|
-
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Xapit", "--main", "README.rdoc"]
|
|
16
|
-
s.require_paths = ["lib"]
|
|
17
|
-
s.rubyforge_project = %q{xapit}
|
|
18
|
-
s.rubygems_version = %q{1.3.3}
|
|
19
|
-
s.summary = %q{Ruby library for interacting with Xapian, a full text search engine.}
|
|
20
|
-
|
|
21
|
-
if s.respond_to? :specification_version then
|
|
22
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
|
23
|
-
s.specification_version = 3
|
|
24
|
-
|
|
25
|
-
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
|
26
|
-
else
|
|
27
|
-
end
|
|
28
|
-
else
|
|
29
|
-
end
|
|
30
|
-
end
|