picky 2.5.2 → 2.6.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
|