picky 2.5.2 → 2.6.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/lib/picky/adapters/rack/base.rb +23 -0
- data/lib/picky/adapters/rack/live_parameters.rb +33 -0
- data/lib/picky/adapters/rack/query.rb +65 -0
- data/lib/picky/adapters/rack.rb +30 -0
- data/lib/picky/application.rb +5 -5
- data/lib/picky/backend/backend.rb +108 -0
- data/lib/picky/backend/file/basic.rb +101 -0
- data/lib/picky/backend/file/json.rb +34 -0
- data/lib/picky/backend/file/marshal.rb +34 -0
- data/lib/picky/backend/file/text.rb +56 -0
- data/lib/picky/backend/files.rb +30 -0
- data/lib/picky/backend/redis/basic.rb +85 -0
- data/lib/picky/backend/redis/list_hash.rb +49 -0
- data/lib/picky/backend/redis/string_hash.rb +40 -0
- data/lib/picky/backend/redis.rb +40 -0
- data/lib/picky/calculations/location.rb +57 -0
- data/lib/picky/categories.rb +62 -0
- data/lib/picky/categories_indexed.rb +93 -0
- data/lib/picky/categories_indexing.rb +12 -0
- data/lib/picky/category.rb +127 -0
- data/lib/picky/category_indexed.rb +64 -0
- data/lib/picky/category_indexing.rb +145 -0
- data/lib/picky/{internals/ext → ext}/maybe_compile.rb +0 -0
- data/lib/picky/{internals/ext → ext}/ruby19/extconf.rb +0 -0
- data/lib/picky/{internals/ext → ext}/ruby19/performant.c +0 -0
- data/lib/picky/{internals/extensions → extensions}/array.rb +0 -0
- data/lib/picky/extensions/class.rb +11 -0
- data/lib/picky/{internals/extensions → extensions}/hash.rb +0 -0
- data/lib/picky/{internals/extensions → extensions}/module.rb +0 -0
- data/lib/picky/{internals/extensions → extensions}/object.rb +0 -0
- data/lib/picky/{internals/extensions → extensions}/symbol.rb +0 -0
- data/lib/picky/frontend_adapters/rack.rb +146 -0
- data/lib/picky/generators/aliases.rb +3 -3
- data/lib/picky/generators/base.rb +15 -0
- data/lib/picky/generators/partial/default.rb +5 -0
- data/lib/picky/generators/partial/none.rb +31 -0
- data/lib/picky/generators/partial/strategy.rb +25 -0
- data/lib/picky/generators/partial/substring.rb +118 -0
- data/lib/picky/generators/partial_generator.rb +15 -0
- data/lib/picky/generators/similarity/default.rb +7 -0
- data/lib/picky/generators/similarity/double_metaphone.rb +28 -0
- data/lib/picky/generators/similarity/metaphone.rb +28 -0
- data/lib/picky/generators/similarity/none.rb +31 -0
- data/lib/picky/generators/similarity/phonetic.rb +65 -0
- data/lib/picky/generators/similarity/soundex.rb +28 -0
- data/lib/picky/generators/similarity/strategy.rb +9 -0
- data/lib/picky/generators/similarity_generator.rb +15 -0
- data/lib/picky/generators/strategy.rb +14 -0
- data/lib/picky/generators/weights/default.rb +7 -0
- data/lib/picky/generators/weights/logarithmic.rb +39 -0
- data/lib/picky/generators/weights/strategy.rb +9 -0
- data/lib/picky/generators/weights_generator.rb +15 -0
- data/lib/picky/{internals/helpers → helpers}/measuring.rb +0 -0
- data/lib/picky/index/base.rb +119 -104
- data/lib/picky/index/base_indexed.rb +27 -0
- data/lib/picky/index/base_indexing.rb +119 -0
- data/lib/picky/index/memory.rb +6 -18
- data/lib/picky/index/redis.rb +6 -18
- data/lib/picky/indexed/bundle/base.rb +110 -0
- data/lib/picky/indexed/bundle/memory.rb +91 -0
- data/lib/picky/indexed/bundle/redis.rb +45 -0
- data/lib/picky/indexed/wrappers/bundle/calculation.rb +35 -0
- data/lib/picky/indexed/wrappers/bundle/location.rb +42 -0
- data/lib/picky/indexed/wrappers/bundle/wrapper.rb +43 -0
- data/lib/picky/indexed/wrappers/category/location.rb +25 -0
- data/lib/picky/indexed/wrappers/exact_first.rb +55 -0
- data/lib/picky/{internals/indexers → indexers}/base.rb +0 -0
- data/lib/picky/{internals/indexers → indexers}/parallel.rb +0 -0
- data/lib/picky/{internals/indexers → indexers}/serial.rb +0 -0
- data/lib/picky/{internals/indexers → indexers}/solr.rb +0 -0
- data/lib/picky/indexes.rb +73 -0
- data/lib/picky/indexes_indexed.rb +29 -0
- data/lib/picky/indexes_indexing.rb +49 -0
- data/lib/picky/indexing/bundle/base.rb +212 -0
- data/lib/picky/indexing/bundle/memory.rb +25 -0
- data/lib/picky/indexing/bundle/redis.rb +24 -0
- data/lib/picky/indexing/bundle/super_base.rb +61 -0
- data/lib/picky/indexing/wrappers/category/location.rb +25 -0
- data/lib/picky/interfaces/live_parameters.rb +8 -8
- data/lib/picky/loader.rb +89 -95
- data/lib/picky/{internals/performant.rb → performant.rb} +0 -0
- data/lib/picky/query/allocation.rb +84 -0
- data/lib/picky/query/allocations.rb +114 -0
- data/lib/picky/query/combination.rb +76 -0
- data/lib/picky/query/combinations/base.rb +70 -0
- data/lib/picky/query/combinations/memory.rb +48 -0
- data/lib/picky/query/combinations/redis.rb +86 -0
- data/lib/picky/query/indexes.rb +195 -0
- data/lib/picky/query/qualifiers.rb +76 -0
- data/lib/picky/query/token.rb +198 -0
- data/lib/picky/query/tokens.rb +103 -0
- data/lib/picky/{internals/query → query}/weights.rb +0 -0
- data/lib/picky/results.rb +1 -1
- data/lib/picky/search.rb +6 -6
- data/lib/picky/{internals/solr → solr}/schema_generator.rb +0 -0
- data/lib/picky/sources/db.rb +7 -7
- data/lib/picky/sources/wrappers/location.rb +2 -2
- data/lib/picky/tokenizers/base.rb +224 -0
- data/lib/picky/tokenizers/index.rb +30 -0
- data/lib/picky/tokenizers/location.rb +49 -0
- data/lib/picky/tokenizers/query.rb +55 -0
- data/lib/tasks/index.rake +4 -3
- data/lib/tasks/try.rake +2 -2
- data/spec/lib/{internals/adapters → adapters}/rack/base_spec.rb +1 -1
- data/spec/lib/{internals/adapters → adapters}/rack/live_parameters_spec.rb +1 -1
- data/spec/lib/{internals/adapters → adapters}/rack/query_spec.rb +1 -1
- data/spec/lib/application_spec.rb +3 -3
- data/spec/lib/{internals/index → backend}/file/basic_spec.rb +1 -1
- data/spec/lib/{internals/index → backend}/file/json_spec.rb +1 -1
- data/spec/lib/{internals/index → backend}/file/marshal_spec.rb +1 -1
- data/spec/lib/{internals/index → backend}/file/text_spec.rb +1 -1
- data/spec/lib/{internals/index → backend}/files_spec.rb +3 -3
- data/spec/lib/{internals/index → backend}/redis/basic_spec.rb +1 -1
- data/spec/lib/{internals/index → backend}/redis/list_hash_spec.rb +1 -1
- data/spec/lib/{internals/index → backend}/redis/string_hash_spec.rb +1 -1
- data/spec/lib/{internals/index → backend}/redis_spec.rb +11 -5
- data/spec/lib/{internals/calculations → calculations}/location_spec.rb +1 -1
- data/spec/lib/{internals/indexed/categories_spec.rb → categories_indexed_spec.rb} +10 -10
- data/spec/lib/{internals/indexed/category_spec.rb → category_indexed_spec.rb} +12 -12
- data/spec/lib/{internals/indexing/category_spec.rb → category_indexing_spec.rb} +10 -10
- data/spec/lib/{internals/cores_spec.rb → cores_spec.rb} +0 -0
- data/spec/lib/{internals/extensions → extensions}/array_spec.rb +0 -0
- data/spec/lib/{internals/extensions → extensions}/hash_spec.rb +0 -0
- data/spec/lib/{internals/extensions → extensions}/module_spec.rb +0 -0
- data/spec/lib/{internals/extensions → extensions}/object_spec.rb +0 -0
- data/spec/lib/{internals/extensions → extensions}/symbol_spec.rb +0 -0
- data/spec/lib/{internals/frontend_adapters → frontend_adapters}/rack_spec.rb +10 -10
- data/spec/lib/generators/aliases_spec.rb +3 -3
- data/spec/lib/{internals/generators → generators}/cacher_strategy_spec.rb +1 -1
- data/spec/lib/{internals/generators → generators}/partial/default_spec.rb +3 -3
- data/spec/lib/{internals/generators → generators}/partial/none_spec.rb +2 -2
- data/spec/lib/{internals/generators → generators}/partial/substring_spec.rb +1 -1
- data/spec/lib/{internals/generators → generators}/partial_generator_spec.rb +3 -3
- data/spec/lib/{internals/generators → generators}/similarity/double_metaphone_spec.rb +1 -1
- data/spec/lib/{internals/generators → generators}/similarity/metaphone_spec.rb +1 -1
- data/spec/lib/{internals/generators → generators}/similarity/none_spec.rb +1 -1
- data/spec/lib/{internals/generators → generators}/similarity/phonetic_spec.rb +1 -1
- data/spec/lib/{internals/generators → generators}/similarity/soundex_spec.rb +1 -1
- data/spec/lib/{internals/generators → generators}/similarity_generator_spec.rb +2 -2
- data/spec/lib/{internals/generators → generators}/weights/logarithmic_spec.rb +1 -1
- data/spec/lib/{internals/generators → generators}/weights_generator_spec.rb +5 -5
- data/spec/lib/{internals/helpers → helpers}/measuring_spec.rb +0 -0
- data/spec/lib/{internals/indexed/index_spec.rb → index/base_indexed_spec.rb} +5 -5
- data/spec/lib/{internals/indexing/index_spec.rb → index/base_indexing_spec.rb} +6 -19
- data/spec/lib/index/base_spec.rb +10 -53
- data/spec/lib/{internals/indexed → indexed}/bundle/memory_spec.rb +5 -5
- data/spec/lib/{internals/indexed → indexed}/bundle/redis_spec.rb +4 -4
- data/spec/lib/{internals/indexed → indexed}/wrappers/bundle/calculation_spec.rb +1 -1
- data/spec/lib/{internals/indexed → indexed}/wrappers/bundle/wrapper_spec.rb +1 -1
- data/spec/lib/{internals/indexed → indexed}/wrappers/exact_first_spec.rb +7 -7
- data/spec/lib/{internals/indexers → indexers}/base_spec.rb +0 -0
- data/spec/lib/{internals/indexers → indexers}/parallel_spec.rb +0 -0
- data/spec/lib/{internals/indexers → indexers}/serial_spec.rb +0 -0
- data/spec/lib/indexes_class_spec.rb +30 -0
- data/spec/lib/{indexed/indexes_spec.rb → indexes_indexed_spec.rb} +1 -1
- data/spec/lib/{indexing/indexes_spec.rb → indexes_indexing_spec.rb} +8 -8
- data/spec/lib/{internals/indexing/indexes_spec.rb → indexes_spec.rb} +15 -12
- data/spec/lib/{internals/indexing → indexing}/bundle/memory_partial_generation_speed_spec.rb +4 -4
- data/spec/lib/{internals/indexing → indexing}/bundle/memory_spec.rb +3 -3
- data/spec/lib/{internals/indexing → indexing}/bundle/redis_spec.rb +3 -3
- data/spec/lib/{internals/indexing → indexing}/bundle/super_base_spec.rb +2 -2
- data/spec/lib/{internals/interfaces → interfaces}/live_parameters_spec.rb +0 -0
- data/spec/lib/query/allocation_spec.rb +1 -1
- data/spec/lib/query/allocations_spec.rb +1 -1
- data/spec/lib/query/combination_spec.rb +5 -5
- data/spec/lib/query/combinations/base_spec.rb +1 -1
- data/spec/lib/query/combinations/memory_spec.rb +1 -1
- data/spec/lib/query/combinations/redis_spec.rb +1 -1
- data/spec/lib/query/indexes_spec.rb +1 -1
- data/spec/lib/query/qualifiers_spec.rb +4 -4
- data/spec/lib/query/token_spec.rb +3 -3
- data/spec/lib/query/tokens_spec.rb +32 -32
- data/spec/lib/search_spec.rb +5 -5
- data/spec/lib/{internals/solr → solr}/schema_generator_spec.rb +0 -0
- data/spec/lib/sources/db_spec.rb +4 -8
- data/spec/lib/sources/wrappers/location_spec.rb +1 -1
- data/spec/lib/{internals/tokenizers → tokenizers}/base_spec.rb +1 -1
- data/spec/lib/{internals/tokenizers → tokenizers}/index_spec.rb +1 -1
- data/spec/lib/{internals/tokenizers → tokenizers}/query_spec.rb +1 -1
- metadata +214 -215
- data/lib/picky/aliases.rb +0 -4
- data/lib/picky/index_bundle.rb +0 -48
- data/lib/picky/indexed/indexes.rb +0 -59
- data/lib/picky/indexing/indexes.rb +0 -87
- data/lib/picky/internals/adapters/rack/base.rb +0 -27
- data/lib/picky/internals/adapters/rack/live_parameters.rb +0 -37
- data/lib/picky/internals/adapters/rack/query.rb +0 -69
- data/lib/picky/internals/adapters/rack.rb +0 -34
- data/lib/picky/internals/calculations/location.rb +0 -59
- data/lib/picky/internals/frontend_adapters/rack.rb +0 -150
- data/lib/picky/internals/generators/base.rb +0 -19
- data/lib/picky/internals/generators/partial/default.rb +0 -7
- data/lib/picky/internals/generators/partial/none.rb +0 -35
- data/lib/picky/internals/generators/partial/strategy.rb +0 -29
- data/lib/picky/internals/generators/partial/substring.rb +0 -122
- data/lib/picky/internals/generators/partial_generator.rb +0 -19
- data/lib/picky/internals/generators/similarity/default.rb +0 -9
- data/lib/picky/internals/generators/similarity/double_metaphone.rb +0 -32
- data/lib/picky/internals/generators/similarity/metaphone.rb +0 -32
- data/lib/picky/internals/generators/similarity/none.rb +0 -35
- data/lib/picky/internals/generators/similarity/phonetic.rb +0 -69
- data/lib/picky/internals/generators/similarity/soundex.rb +0 -32
- data/lib/picky/internals/generators/similarity/strategy.rb +0 -11
- data/lib/picky/internals/generators/similarity_generator.rb +0 -19
- data/lib/picky/internals/generators/strategy.rb +0 -18
- data/lib/picky/internals/generators/weights/default.rb +0 -9
- data/lib/picky/internals/generators/weights/logarithmic.rb +0 -43
- data/lib/picky/internals/generators/weights/strategy.rb +0 -11
- data/lib/picky/internals/generators/weights_generator.rb +0 -19
- data/lib/picky/internals/index/backend.rb +0 -112
- data/lib/picky/internals/index/file/basic.rb +0 -105
- data/lib/picky/internals/index/file/json.rb +0 -38
- data/lib/picky/internals/index/file/marshal.rb +0 -38
- data/lib/picky/internals/index/file/text.rb +0 -60
- data/lib/picky/internals/index/files.rb +0 -34
- data/lib/picky/internals/index/redis/basic.rb +0 -89
- data/lib/picky/internals/index/redis/list_hash.rb +0 -53
- data/lib/picky/internals/index/redis/string_hash.rb +0 -44
- data/lib/picky/internals/index/redis.rb +0 -44
- data/lib/picky/internals/indexed/bundle/base.rb +0 -114
- data/lib/picky/internals/indexed/bundle/memory.rb +0 -95
- data/lib/picky/internals/indexed/bundle/redis.rb +0 -49
- data/lib/picky/internals/indexed/categories.rb +0 -140
- data/lib/picky/internals/indexed/category.rb +0 -111
- data/lib/picky/internals/indexed/index.rb +0 -63
- data/lib/picky/internals/indexed/wrappers/bundle/calculation.rb +0 -37
- data/lib/picky/internals/indexed/wrappers/bundle/location.rb +0 -44
- data/lib/picky/internals/indexed/wrappers/bundle/wrapper.rb +0 -45
- data/lib/picky/internals/indexed/wrappers/category/location.rb +0 -27
- data/lib/picky/internals/indexed/wrappers/exact_first.rb +0 -59
- data/lib/picky/internals/indexing/bundle/base.rb +0 -216
- data/lib/picky/internals/indexing/bundle/memory.rb +0 -29
- data/lib/picky/internals/indexing/bundle/redis.rb +0 -28
- data/lib/picky/internals/indexing/bundle/super_base.rb +0 -65
- data/lib/picky/internals/indexing/category.rb +0 -153
- data/lib/picky/internals/indexing/index.rb +0 -142
- data/lib/picky/internals/indexing/wrappers/category/location.rb +0 -27
- data/lib/picky/internals/query/allocation.rb +0 -88
- data/lib/picky/internals/query/allocations.rb +0 -118
- data/lib/picky/internals/query/combination.rb +0 -80
- data/lib/picky/internals/query/combinations/base.rb +0 -74
- data/lib/picky/internals/query/combinations/memory.rb +0 -52
- data/lib/picky/internals/query/combinations/redis.rb +0 -90
- data/lib/picky/internals/query/indexes.rb +0 -199
- data/lib/picky/internals/query/qualifiers.rb +0 -82
- data/lib/picky/internals/query/token.rb +0 -202
- data/lib/picky/internals/query/tokens.rb +0 -109
- data/lib/picky/internals/shared/category.rb +0 -52
- data/lib/picky/internals/tokenizers/base.rb +0 -228
- data/lib/picky/internals/tokenizers/index.rb +0 -34
- data/lib/picky/internals/tokenizers/location.rb +0 -54
- data/lib/picky/internals/tokenizers/query.rb +0 -59
- data/lib/picky/internals.rb +0 -2
- data/spec/lib/aliases_spec.rb +0 -9
- data/spec/lib/index_bundle_spec.rb +0 -69
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
2
|
|
|
3
|
-
describe
|
|
3
|
+
describe Backend::Files do
|
|
4
4
|
|
|
5
5
|
before(:each) do
|
|
6
|
-
index =
|
|
7
|
-
category =
|
|
6
|
+
index = Index::Memory.new :some_index, source: []
|
|
7
|
+
category = Category.new :some_category, index
|
|
8
8
|
|
|
9
9
|
@files = described_class.new :some_name, category
|
|
10
10
|
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
2
|
|
|
3
|
-
describe
|
|
3
|
+
describe Backend::Redis do
|
|
4
4
|
|
|
5
5
|
context 'indexing' do
|
|
6
6
|
let(:category) do
|
|
7
|
-
index = stub :index,
|
|
8
|
-
|
|
7
|
+
index = stub :index,
|
|
8
|
+
:name => :some_index,
|
|
9
|
+
:indexing_bundle_class => Indexing::Bundle::Memory,
|
|
10
|
+
:indexed_bundle_class => Indexed::Bundle::Memory
|
|
11
|
+
category = Category.new :some_category, index
|
|
9
12
|
end
|
|
10
13
|
let(:redis) { described_class.new :some_name, category }
|
|
11
14
|
|
|
@@ -75,8 +78,11 @@ describe Internals::Index::Redis do
|
|
|
75
78
|
|
|
76
79
|
context 'indexed' do
|
|
77
80
|
let(:category) do
|
|
78
|
-
index = stub :index,
|
|
79
|
-
|
|
81
|
+
index = stub :index,
|
|
82
|
+
:name => :some_index,
|
|
83
|
+
:indexing_bundle_class => Indexing::Bundle::Memory,
|
|
84
|
+
:indexed_bundle_class => Indexed::Bundle::Memory
|
|
85
|
+
category = Category.new :some_category, index
|
|
80
86
|
end
|
|
81
87
|
let(:redis) { described_class.new :some_name, category }
|
|
82
88
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
2
|
|
|
3
|
-
describe
|
|
3
|
+
describe Categories do
|
|
4
4
|
context 'with option ignore_unassigned_tokens' do
|
|
5
5
|
context 'ignore_unassigned_tokens true' do
|
|
6
6
|
before(:each) do
|
|
@@ -22,16 +22,16 @@ describe Internals::Indexed::Categories do
|
|
|
22
22
|
|
|
23
23
|
context "with real categories" do
|
|
24
24
|
before(:each) do
|
|
25
|
-
@index1 =
|
|
25
|
+
@index1 = Index::Memory.new :name, source: []
|
|
26
26
|
|
|
27
27
|
@categories = described_class.new
|
|
28
|
-
@categories <<
|
|
29
|
-
@categories <<
|
|
30
|
-
@categories <<
|
|
28
|
+
@categories << Category.new(:category1, @index1)
|
|
29
|
+
@categories << Category.new(:category2, @index1)
|
|
30
|
+
@categories << Category.new(:category3, @index1)
|
|
31
31
|
end
|
|
32
32
|
describe "similar_possible_for" do
|
|
33
33
|
before(:each) do
|
|
34
|
-
@token =
|
|
34
|
+
@token = Query::Token.processed 'similar~'
|
|
35
35
|
end
|
|
36
36
|
it "returns possible categories" do
|
|
37
37
|
@categories.similar_possible_for(@token).should == []
|
|
@@ -65,11 +65,11 @@ describe Internals::Indexed::Categories do
|
|
|
65
65
|
|
|
66
66
|
context 'without options' do
|
|
67
67
|
before(:each) do
|
|
68
|
-
@index1 =
|
|
68
|
+
@index1 = Index::Memory.new :some_index, source: []
|
|
69
69
|
|
|
70
|
-
@category1 =
|
|
71
|
-
@category2 =
|
|
72
|
-
@category3 =
|
|
70
|
+
@category1 = Category.new :category1, @index1
|
|
71
|
+
@category2 = Category.new :category2, @index1
|
|
72
|
+
@category3 = Category.new :category3, @index1
|
|
73
73
|
|
|
74
74
|
@categories = described_class.new
|
|
75
75
|
@categories << @category1
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
2
|
|
|
3
|
-
describe
|
|
3
|
+
describe Category do
|
|
4
4
|
|
|
5
5
|
before(:each) do
|
|
6
|
-
@index =
|
|
6
|
+
@index = Index::Base.new :some_index, source: []
|
|
7
7
|
@partial_strategy = stub :partial, :use_exact_for_partial? => false
|
|
8
8
|
@weights_strategy = stub :weights
|
|
9
9
|
@similarity_strategy = stub :similarity
|
|
@@ -29,30 +29,30 @@ describe Internals::Indexed::Category do
|
|
|
29
29
|
@partial_strategy.stub! :use_exact_for_partial? => true
|
|
30
30
|
end
|
|
31
31
|
it 'returns the partial index' do
|
|
32
|
-
@category.
|
|
32
|
+
@category.indexed_partial.should be_kind_of(Indexed::Bundle::Memory)
|
|
33
33
|
end
|
|
34
34
|
end
|
|
35
35
|
context 'with a partial strategy that uses the partial index (default)' do
|
|
36
36
|
it 'returns the partial index' do
|
|
37
|
-
@category.
|
|
37
|
+
@category.indexed_partial.should be_kind_of(Indexed::Bundle::Memory)
|
|
38
38
|
end
|
|
39
39
|
end
|
|
40
40
|
end
|
|
41
|
-
context 'indexed_bundle_class defined' do
|
|
41
|
+
context 'indexed_bundle_class defined differently' do
|
|
42
42
|
before(:each) do
|
|
43
|
-
@category = described_class.new :some_name,
|
|
43
|
+
@category = described_class.new :some_name, Index::Redis.new(:some_index_name, source: [])
|
|
44
44
|
end
|
|
45
45
|
context 'with a partial strategy that uses the exact index' do
|
|
46
46
|
before(:each) do
|
|
47
47
|
@partial_strategy.stub! :use_exact_for_partial? => true
|
|
48
48
|
end
|
|
49
49
|
it 'returns the partial index' do
|
|
50
|
-
@category.
|
|
50
|
+
@category.indexed_partial.should be_kind_of(Indexed::Bundle::Redis)
|
|
51
51
|
end
|
|
52
52
|
end
|
|
53
53
|
context 'with a partial strategy that uses the partial index (default)' do
|
|
54
54
|
it 'returns the partial index' do
|
|
55
|
-
@category.
|
|
55
|
+
@category.indexed_partial.should be_kind_of(Indexed::Bundle::Redis)
|
|
56
56
|
end
|
|
57
57
|
end
|
|
58
58
|
end
|
|
@@ -143,10 +143,10 @@ describe Internals::Indexed::Category do
|
|
|
143
143
|
@category.stub! :weight => :some_weight, :bundle_for => :bundle
|
|
144
144
|
end
|
|
145
145
|
it 'should return a new combination' do
|
|
146
|
-
@category.combination_for(@token).should be_kind_of(
|
|
146
|
+
@category.combination_for(@token).should be_kind_of(Query::Combination)
|
|
147
147
|
end
|
|
148
148
|
it 'should create the combination correctly' do
|
|
149
|
-
|
|
149
|
+
Query::Combination.should_receive(:new).once.with @token, @category
|
|
150
150
|
|
|
151
151
|
@category.combination_for @token
|
|
152
152
|
end
|
|
@@ -155,8 +155,8 @@ describe Internals::Indexed::Category do
|
|
|
155
155
|
|
|
156
156
|
context 'stubbed exact/partial' do
|
|
157
157
|
before(:each) do
|
|
158
|
-
@category.stub! :
|
|
159
|
-
@category.stub! :
|
|
158
|
+
@category.stub! :indexed_exact => (@exact = stub :exact)
|
|
159
|
+
@category.stub! :indexed_partial => (@partial = stub :partial)
|
|
160
160
|
end
|
|
161
161
|
describe 'bundle_for' do
|
|
162
162
|
it 'should return the right bundle' do
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
2
|
|
|
3
|
-
describe
|
|
3
|
+
describe Category do
|
|
4
4
|
|
|
5
5
|
before(:each) do
|
|
6
|
-
@index =
|
|
6
|
+
@index = Index::Memory.new :some_index, source: []
|
|
7
7
|
@source = stub :some_given_source, :key_format => nil
|
|
8
8
|
end
|
|
9
9
|
let(:category) { described_class.new(:some_category, @index, :source => @source).tap { |c| c.stub! :timed_exclaim } }
|
|
10
10
|
|
|
11
11
|
context "unit specs" do
|
|
12
|
-
let(:exact) { category.
|
|
13
|
-
let(:partial) { category.
|
|
12
|
+
let(:exact) { category.indexing_exact }
|
|
13
|
+
let(:partial) { category.indexing_partial }
|
|
14
14
|
|
|
15
15
|
describe 'backup_caches' do
|
|
16
16
|
it 'delegates to both bundles' do
|
|
@@ -134,7 +134,7 @@ describe Internals::Indexing::Category do
|
|
|
134
134
|
end
|
|
135
135
|
context 'it has an index' do
|
|
136
136
|
before(:each) do
|
|
137
|
-
category.
|
|
137
|
+
category.instance_variable_set :@index, stub(:index, :key_format => :yet_another_key_format)
|
|
138
138
|
end
|
|
139
139
|
it 'returns that key_format' do
|
|
140
140
|
category.key_format.should == :yet_another_key_format
|
|
@@ -159,7 +159,7 @@ describe Internals::Indexing::Category do
|
|
|
159
159
|
end
|
|
160
160
|
end
|
|
161
161
|
|
|
162
|
-
describe "cache
|
|
162
|
+
describe "cache" do
|
|
163
163
|
before(:each) do
|
|
164
164
|
category.stub! :generate_caches
|
|
165
165
|
category.stub! :configure
|
|
@@ -167,12 +167,12 @@ describe Internals::Indexing::Category do
|
|
|
167
167
|
it "prepares the cache directory" do
|
|
168
168
|
category.should_receive(:prepare_index_directory).once.with
|
|
169
169
|
|
|
170
|
-
category.cache
|
|
170
|
+
category.cache
|
|
171
171
|
end
|
|
172
172
|
it "tells the indexer to index" do
|
|
173
173
|
category.should_receive(:generate_caches).once.with
|
|
174
174
|
|
|
175
|
-
category.cache
|
|
175
|
+
category.cache
|
|
176
176
|
end
|
|
177
177
|
end
|
|
178
178
|
describe "index" do
|
|
@@ -183,12 +183,12 @@ describe Internals::Indexing::Category do
|
|
|
183
183
|
it "prepares the cache directory" do
|
|
184
184
|
category.should_receive(:prepare_index_directory).once.with
|
|
185
185
|
|
|
186
|
-
category.
|
|
186
|
+
category.prepare
|
|
187
187
|
end
|
|
188
188
|
it "tells the indexer to index" do
|
|
189
189
|
@indexer.should_receive(:index).once.with
|
|
190
190
|
|
|
191
|
-
category.
|
|
191
|
+
category.prepare
|
|
192
192
|
end
|
|
193
193
|
end
|
|
194
194
|
describe "source" do
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
#
|
|
3
3
|
require 'spec_helper'
|
|
4
4
|
|
|
5
|
-
describe
|
|
5
|
+
describe FrontendAdapters::Rack do
|
|
6
6
|
|
|
7
7
|
before(:each) do
|
|
8
8
|
@rack_adapter = described_class.new
|
|
@@ -188,7 +188,7 @@ describe Internals::FrontendAdapters::Rack do
|
|
|
188
188
|
@rack_adapter.route %r{regexp1} => :query1, %r{regexp2} => :query2, :some => :option
|
|
189
189
|
end
|
|
190
190
|
it 'does not accept nil queries' do
|
|
191
|
-
lambda { @rack_adapter.route %r{some/regexp} => nil }.should raise_error(
|
|
191
|
+
lambda { @rack_adapter.route %r{some/regexp} => nil }.should raise_error(FrontendAdapters::Rack::RouteTargetNilError, /Routing for \/some\\\/regexp\/ was defined with a nil target object, i.e. \/some\\\/regexp\/ => nil./)
|
|
192
192
|
end
|
|
193
193
|
end
|
|
194
194
|
|
|
@@ -202,7 +202,7 @@ describe Internals::FrontendAdapters::Rack do
|
|
|
202
202
|
|
|
203
203
|
describe 'route_one' do
|
|
204
204
|
before(:each) do
|
|
205
|
-
|
|
205
|
+
Adapters::Rack.stub! :app_for => :some_query_app
|
|
206
206
|
end
|
|
207
207
|
it 'should add the right route' do
|
|
208
208
|
@routes.should_receive(:add_route).once.with :some_query_app, { :request_method => "GET", :path_info => /some_url/ }, {}, "some_query"
|
|
@@ -223,7 +223,7 @@ describe Internals::FrontendAdapters::Rack do
|
|
|
223
223
|
|
|
224
224
|
describe 'default' do
|
|
225
225
|
it 'should call answer' do
|
|
226
|
-
@rack_adapter.should_receive(:answer).once.with nil,
|
|
226
|
+
@rack_adapter.should_receive(:answer).once.with nil, FrontendAdapters::Rack::STATUSES[200]
|
|
227
227
|
|
|
228
228
|
@rack_adapter.default 200
|
|
229
229
|
end
|
|
@@ -231,21 +231,21 @@ describe Internals::FrontendAdapters::Rack do
|
|
|
231
231
|
|
|
232
232
|
describe 'STATUSES' do
|
|
233
233
|
it 'is a lambda' do
|
|
234
|
-
|
|
234
|
+
FrontendAdapters::Rack::STATUSES[200].respond_to?(:call).should == true
|
|
235
235
|
end
|
|
236
236
|
it 'is a lambda' do
|
|
237
|
-
|
|
237
|
+
FrontendAdapters::Rack::STATUSES[404].respond_to?(:call).should == true
|
|
238
238
|
end
|
|
239
239
|
end
|
|
240
240
|
|
|
241
241
|
describe 'root' do
|
|
242
242
|
it 'should call answer' do
|
|
243
|
-
@rack_adapter.should_receive(:answer).once.with %r{^/$},
|
|
243
|
+
@rack_adapter.should_receive(:answer).once.with %r{^/$}, FrontendAdapters::Rack::STATUSES[200]
|
|
244
244
|
|
|
245
245
|
@rack_adapter.root 200
|
|
246
246
|
end
|
|
247
247
|
it 'should call answer' do
|
|
248
|
-
@rack_adapter.should_receive(:answer).once.with %r{^/$},
|
|
248
|
+
@rack_adapter.should_receive(:answer).once.with %r{^/$}, FrontendAdapters::Rack::STATUSES[404]
|
|
249
249
|
|
|
250
250
|
@rack_adapter.root 404
|
|
251
251
|
end
|
|
@@ -274,14 +274,14 @@ describe Internals::FrontendAdapters::Rack do
|
|
|
274
274
|
context 'without app' do
|
|
275
275
|
context 'with url' do
|
|
276
276
|
it 'should use the 200 with default_options from the url' do
|
|
277
|
-
@routes.should_receive(:add_route).once.with
|
|
277
|
+
@routes.should_receive(:add_route).once.with FrontendAdapters::Rack::STATUSES[200], { :request_method => "GET", :path_info => /some_url/ }
|
|
278
278
|
|
|
279
279
|
@rack_adapter.answer 'some_url'
|
|
280
280
|
end
|
|
281
281
|
end
|
|
282
282
|
context 'without url' do
|
|
283
283
|
it 'should use the 200 with default_options' do
|
|
284
|
-
@routes.should_receive(:add_route).once.with
|
|
284
|
+
@routes.should_receive(:add_route).once.with FrontendAdapters::Rack::STATUSES[200], { :request_method => "GET" }
|
|
285
285
|
|
|
286
286
|
@rack_adapter.answer
|
|
287
287
|
end
|
|
@@ -3,13 +3,13 @@ require 'spec_helper'
|
|
|
3
3
|
describe 'aliases' do
|
|
4
4
|
|
|
5
5
|
it 'aliases correctly' do
|
|
6
|
-
Partial.should ==
|
|
6
|
+
Partial.should == Generators::Partial
|
|
7
7
|
end
|
|
8
8
|
it 'aliases correctly' do
|
|
9
|
-
Similarity.should ==
|
|
9
|
+
Similarity.should == Generators::Similarity
|
|
10
10
|
end
|
|
11
11
|
it 'aliases correctly' do
|
|
12
|
-
Weights.should ==
|
|
12
|
+
Weights.should == Generators::Weights
|
|
13
13
|
end
|
|
14
14
|
|
|
15
15
|
end
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
2
|
|
|
3
|
-
describe
|
|
3
|
+
describe Generators::Partial::Default do
|
|
4
4
|
|
|
5
|
-
let(:default) {
|
|
5
|
+
let(:default) { Generators::Partial::Default }
|
|
6
6
|
|
|
7
7
|
it "should be a subtoken" do
|
|
8
|
-
default.should be_kind_of(
|
|
8
|
+
default.should be_kind_of(Generators::Partial::Substring)
|
|
9
9
|
end
|
|
10
10
|
it "should be a the right down to" do
|
|
11
11
|
default.from.should == -3
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
2
|
|
|
3
|
-
describe
|
|
3
|
+
describe Generators::Partial::None do
|
|
4
4
|
|
|
5
5
|
it 'is not saved' do
|
|
6
6
|
described_class.new.saved?.should == false
|
|
7
7
|
end
|
|
8
8
|
it "has the right superclass" do
|
|
9
|
-
described_class.should <
|
|
9
|
+
described_class.should < Generators::Partial::Strategy
|
|
10
10
|
end
|
|
11
11
|
it "returns an empty index" do
|
|
12
12
|
described_class.new.generate_from(:unimportant).should == {}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
2
|
|
|
3
|
-
describe
|
|
3
|
+
describe Generators::PartialGenerator do
|
|
4
4
|
|
|
5
5
|
context 'integration' do
|
|
6
6
|
it 'should generate the correct values with a given strategy' do
|
|
7
7
|
generator = described_class.new :meier => [1], :maier => [2]
|
|
8
8
|
|
|
9
|
-
generator.generate(
|
|
9
|
+
generator.generate(Generators::Partial::Substring.new).should == {
|
|
10
10
|
:meier => [1],
|
|
11
11
|
:meie => [1],
|
|
12
12
|
:mei => [1],
|
|
@@ -21,7 +21,7 @@ describe Internals::Generators::PartialGenerator do
|
|
|
21
21
|
it 'should generate the correct values with a given specific strategy' do
|
|
22
22
|
generator = described_class.new :meier => [1], :maier => [2]
|
|
23
23
|
|
|
24
|
-
generator.generate(
|
|
24
|
+
generator.generate(Generators::Partial::Substring.new(:from => 3)).should == {
|
|
25
25
|
:meier => [1],
|
|
26
26
|
:meie => [1],
|
|
27
27
|
:mei => [1],
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
2
|
|
|
3
|
-
describe
|
|
3
|
+
describe Generators::SimilarityGenerator do
|
|
4
4
|
|
|
5
5
|
context 'integration' do
|
|
6
6
|
it 'should generate the correct values' do
|
|
@@ -15,7 +15,7 @@ describe Internals::Generators::SimilarityGenerator do
|
|
|
15
15
|
:meyer => nil,
|
|
16
16
|
:peter => nil
|
|
17
17
|
|
|
18
|
-
generator.generate(
|
|
18
|
+
generator.generate(Generators::Similarity::DoubleMetaphone.new).should == { :MR => [:meier, :maier, :mayer, :meyer], :PTR => [:peter] }
|
|
19
19
|
end
|
|
20
20
|
end
|
|
21
21
|
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
2
|
|
|
3
|
-
describe
|
|
3
|
+
describe Generators::WeightsGenerator do
|
|
4
4
|
|
|
5
5
|
context 'integration' do
|
|
6
6
|
it 'should generate the correct values' do
|
|
7
7
|
generator = described_class.new :a => Array.new(0),
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
:b => Array.new(1),
|
|
9
|
+
:c => Array.new(10),
|
|
10
|
+
:d => Array.new(100),
|
|
11
|
+
:e => Array.new(1000)
|
|
12
12
|
|
|
13
13
|
result = generator.generate
|
|
14
14
|
|
|
File without changes
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
2
|
|
|
3
|
-
describe
|
|
3
|
+
describe Index::Base do
|
|
4
4
|
|
|
5
5
|
context 'without stubbed categories' do
|
|
6
6
|
before(:each) do
|
|
7
|
-
@index = described_class.new :some_index_name
|
|
7
|
+
@index = described_class.new :some_index_name, source: []
|
|
8
8
|
end
|
|
9
9
|
|
|
10
10
|
describe 'define_category' do
|
|
@@ -14,7 +14,7 @@ describe Internals::Indexed::Index do
|
|
|
14
14
|
@index.categories.categories.size.should == 1
|
|
15
15
|
end
|
|
16
16
|
it 'returns the new category' do
|
|
17
|
-
@index.define_category(:some_category_name).should be_kind_of(
|
|
17
|
+
@index.define_category(:some_category_name).should be_kind_of(Category)
|
|
18
18
|
end
|
|
19
19
|
end
|
|
20
20
|
end
|
|
@@ -23,7 +23,7 @@ describe Internals::Indexed::Index do
|
|
|
23
23
|
before(:each) do
|
|
24
24
|
@categories = stub :categories
|
|
25
25
|
|
|
26
|
-
@index = described_class.new :some_name
|
|
26
|
+
@index = described_class.new :some_name, source: []
|
|
27
27
|
@index.define_category :some_category_name1
|
|
28
28
|
@index.define_category :some_category_name2
|
|
29
29
|
|
|
@@ -48,7 +48,7 @@ describe Internals::Indexed::Index do
|
|
|
48
48
|
|
|
49
49
|
context "no categories" do
|
|
50
50
|
it "works" do
|
|
51
|
-
described_class.new :some_name
|
|
51
|
+
described_class.new :some_name, source: []
|
|
52
52
|
end
|
|
53
53
|
end
|
|
54
54
|
|