picky 2.5.2 → 2.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (255) hide show
  1. data/lib/picky/adapters/rack/base.rb +23 -0
  2. data/lib/picky/adapters/rack/live_parameters.rb +33 -0
  3. data/lib/picky/adapters/rack/query.rb +65 -0
  4. data/lib/picky/adapters/rack.rb +30 -0
  5. data/lib/picky/application.rb +5 -5
  6. data/lib/picky/backend/backend.rb +108 -0
  7. data/lib/picky/backend/file/basic.rb +101 -0
  8. data/lib/picky/backend/file/json.rb +34 -0
  9. data/lib/picky/backend/file/marshal.rb +34 -0
  10. data/lib/picky/backend/file/text.rb +56 -0
  11. data/lib/picky/backend/files.rb +30 -0
  12. data/lib/picky/backend/redis/basic.rb +85 -0
  13. data/lib/picky/backend/redis/list_hash.rb +49 -0
  14. data/lib/picky/backend/redis/string_hash.rb +40 -0
  15. data/lib/picky/backend/redis.rb +40 -0
  16. data/lib/picky/calculations/location.rb +57 -0
  17. data/lib/picky/categories.rb +62 -0
  18. data/lib/picky/categories_indexed.rb +93 -0
  19. data/lib/picky/categories_indexing.rb +12 -0
  20. data/lib/picky/category.rb +127 -0
  21. data/lib/picky/category_indexed.rb +64 -0
  22. data/lib/picky/category_indexing.rb +145 -0
  23. data/lib/picky/{internals/ext → ext}/maybe_compile.rb +0 -0
  24. data/lib/picky/{internals/ext → ext}/ruby19/extconf.rb +0 -0
  25. data/lib/picky/{internals/ext → ext}/ruby19/performant.c +0 -0
  26. data/lib/picky/{internals/extensions → extensions}/array.rb +0 -0
  27. data/lib/picky/extensions/class.rb +11 -0
  28. data/lib/picky/{internals/extensions → extensions}/hash.rb +0 -0
  29. data/lib/picky/{internals/extensions → extensions}/module.rb +0 -0
  30. data/lib/picky/{internals/extensions → extensions}/object.rb +0 -0
  31. data/lib/picky/{internals/extensions → extensions}/symbol.rb +0 -0
  32. data/lib/picky/frontend_adapters/rack.rb +146 -0
  33. data/lib/picky/generators/aliases.rb +3 -3
  34. data/lib/picky/generators/base.rb +15 -0
  35. data/lib/picky/generators/partial/default.rb +5 -0
  36. data/lib/picky/generators/partial/none.rb +31 -0
  37. data/lib/picky/generators/partial/strategy.rb +25 -0
  38. data/lib/picky/generators/partial/substring.rb +118 -0
  39. data/lib/picky/generators/partial_generator.rb +15 -0
  40. data/lib/picky/generators/similarity/default.rb +7 -0
  41. data/lib/picky/generators/similarity/double_metaphone.rb +28 -0
  42. data/lib/picky/generators/similarity/metaphone.rb +28 -0
  43. data/lib/picky/generators/similarity/none.rb +31 -0
  44. data/lib/picky/generators/similarity/phonetic.rb +65 -0
  45. data/lib/picky/generators/similarity/soundex.rb +28 -0
  46. data/lib/picky/generators/similarity/strategy.rb +9 -0
  47. data/lib/picky/generators/similarity_generator.rb +15 -0
  48. data/lib/picky/generators/strategy.rb +14 -0
  49. data/lib/picky/generators/weights/default.rb +7 -0
  50. data/lib/picky/generators/weights/logarithmic.rb +39 -0
  51. data/lib/picky/generators/weights/strategy.rb +9 -0
  52. data/lib/picky/generators/weights_generator.rb +15 -0
  53. data/lib/picky/{internals/helpers → helpers}/measuring.rb +0 -0
  54. data/lib/picky/index/base.rb +119 -104
  55. data/lib/picky/index/base_indexed.rb +27 -0
  56. data/lib/picky/index/base_indexing.rb +119 -0
  57. data/lib/picky/index/memory.rb +6 -18
  58. data/lib/picky/index/redis.rb +6 -18
  59. data/lib/picky/indexed/bundle/base.rb +110 -0
  60. data/lib/picky/indexed/bundle/memory.rb +91 -0
  61. data/lib/picky/indexed/bundle/redis.rb +45 -0
  62. data/lib/picky/indexed/wrappers/bundle/calculation.rb +35 -0
  63. data/lib/picky/indexed/wrappers/bundle/location.rb +42 -0
  64. data/lib/picky/indexed/wrappers/bundle/wrapper.rb +43 -0
  65. data/lib/picky/indexed/wrappers/category/location.rb +25 -0
  66. data/lib/picky/indexed/wrappers/exact_first.rb +55 -0
  67. data/lib/picky/{internals/indexers → indexers}/base.rb +0 -0
  68. data/lib/picky/{internals/indexers → indexers}/parallel.rb +0 -0
  69. data/lib/picky/{internals/indexers → indexers}/serial.rb +0 -0
  70. data/lib/picky/{internals/indexers → indexers}/solr.rb +0 -0
  71. data/lib/picky/indexes.rb +73 -0
  72. data/lib/picky/indexes_indexed.rb +29 -0
  73. data/lib/picky/indexes_indexing.rb +49 -0
  74. data/lib/picky/indexing/bundle/base.rb +212 -0
  75. data/lib/picky/indexing/bundle/memory.rb +25 -0
  76. data/lib/picky/indexing/bundle/redis.rb +24 -0
  77. data/lib/picky/indexing/bundle/super_base.rb +61 -0
  78. data/lib/picky/indexing/wrappers/category/location.rb +25 -0
  79. data/lib/picky/interfaces/live_parameters.rb +8 -8
  80. data/lib/picky/loader.rb +89 -95
  81. data/lib/picky/{internals/performant.rb → performant.rb} +0 -0
  82. data/lib/picky/query/allocation.rb +84 -0
  83. data/lib/picky/query/allocations.rb +114 -0
  84. data/lib/picky/query/combination.rb +76 -0
  85. data/lib/picky/query/combinations/base.rb +70 -0
  86. data/lib/picky/query/combinations/memory.rb +48 -0
  87. data/lib/picky/query/combinations/redis.rb +86 -0
  88. data/lib/picky/query/indexes.rb +195 -0
  89. data/lib/picky/query/qualifiers.rb +76 -0
  90. data/lib/picky/query/token.rb +198 -0
  91. data/lib/picky/query/tokens.rb +103 -0
  92. data/lib/picky/{internals/query → query}/weights.rb +0 -0
  93. data/lib/picky/results.rb +1 -1
  94. data/lib/picky/search.rb +6 -6
  95. data/lib/picky/{internals/solr → solr}/schema_generator.rb +0 -0
  96. data/lib/picky/sources/db.rb +7 -7
  97. data/lib/picky/sources/wrappers/location.rb +2 -2
  98. data/lib/picky/tokenizers/base.rb +224 -0
  99. data/lib/picky/tokenizers/index.rb +30 -0
  100. data/lib/picky/tokenizers/location.rb +49 -0
  101. data/lib/picky/tokenizers/query.rb +55 -0
  102. data/lib/tasks/index.rake +4 -3
  103. data/lib/tasks/try.rake +2 -2
  104. data/spec/lib/{internals/adapters → adapters}/rack/base_spec.rb +1 -1
  105. data/spec/lib/{internals/adapters → adapters}/rack/live_parameters_spec.rb +1 -1
  106. data/spec/lib/{internals/adapters → adapters}/rack/query_spec.rb +1 -1
  107. data/spec/lib/application_spec.rb +3 -3
  108. data/spec/lib/{internals/index → backend}/file/basic_spec.rb +1 -1
  109. data/spec/lib/{internals/index → backend}/file/json_spec.rb +1 -1
  110. data/spec/lib/{internals/index → backend}/file/marshal_spec.rb +1 -1
  111. data/spec/lib/{internals/index → backend}/file/text_spec.rb +1 -1
  112. data/spec/lib/{internals/index → backend}/files_spec.rb +3 -3
  113. data/spec/lib/{internals/index → backend}/redis/basic_spec.rb +1 -1
  114. data/spec/lib/{internals/index → backend}/redis/list_hash_spec.rb +1 -1
  115. data/spec/lib/{internals/index → backend}/redis/string_hash_spec.rb +1 -1
  116. data/spec/lib/{internals/index → backend}/redis_spec.rb +11 -5
  117. data/spec/lib/{internals/calculations → calculations}/location_spec.rb +1 -1
  118. data/spec/lib/{internals/indexed/categories_spec.rb → categories_indexed_spec.rb} +10 -10
  119. data/spec/lib/{internals/indexed/category_spec.rb → category_indexed_spec.rb} +12 -12
  120. data/spec/lib/{internals/indexing/category_spec.rb → category_indexing_spec.rb} +10 -10
  121. data/spec/lib/{internals/cores_spec.rb → cores_spec.rb} +0 -0
  122. data/spec/lib/{internals/extensions → extensions}/array_spec.rb +0 -0
  123. data/spec/lib/{internals/extensions → extensions}/hash_spec.rb +0 -0
  124. data/spec/lib/{internals/extensions → extensions}/module_spec.rb +0 -0
  125. data/spec/lib/{internals/extensions → extensions}/object_spec.rb +0 -0
  126. data/spec/lib/{internals/extensions → extensions}/symbol_spec.rb +0 -0
  127. data/spec/lib/{internals/frontend_adapters → frontend_adapters}/rack_spec.rb +10 -10
  128. data/spec/lib/generators/aliases_spec.rb +3 -3
  129. data/spec/lib/{internals/generators → generators}/cacher_strategy_spec.rb +1 -1
  130. data/spec/lib/{internals/generators → generators}/partial/default_spec.rb +3 -3
  131. data/spec/lib/{internals/generators → generators}/partial/none_spec.rb +2 -2
  132. data/spec/lib/{internals/generators → generators}/partial/substring_spec.rb +1 -1
  133. data/spec/lib/{internals/generators → generators}/partial_generator_spec.rb +3 -3
  134. data/spec/lib/{internals/generators → generators}/similarity/double_metaphone_spec.rb +1 -1
  135. data/spec/lib/{internals/generators → generators}/similarity/metaphone_spec.rb +1 -1
  136. data/spec/lib/{internals/generators → generators}/similarity/none_spec.rb +1 -1
  137. data/spec/lib/{internals/generators → generators}/similarity/phonetic_spec.rb +1 -1
  138. data/spec/lib/{internals/generators → generators}/similarity/soundex_spec.rb +1 -1
  139. data/spec/lib/{internals/generators → generators}/similarity_generator_spec.rb +2 -2
  140. data/spec/lib/{internals/generators → generators}/weights/logarithmic_spec.rb +1 -1
  141. data/spec/lib/{internals/generators → generators}/weights_generator_spec.rb +5 -5
  142. data/spec/lib/{internals/helpers → helpers}/measuring_spec.rb +0 -0
  143. data/spec/lib/{internals/indexed/index_spec.rb → index/base_indexed_spec.rb} +5 -5
  144. data/spec/lib/{internals/indexing/index_spec.rb → index/base_indexing_spec.rb} +6 -19
  145. data/spec/lib/index/base_spec.rb +10 -53
  146. data/spec/lib/{internals/indexed → indexed}/bundle/memory_spec.rb +5 -5
  147. data/spec/lib/{internals/indexed → indexed}/bundle/redis_spec.rb +4 -4
  148. data/spec/lib/{internals/indexed → indexed}/wrappers/bundle/calculation_spec.rb +1 -1
  149. data/spec/lib/{internals/indexed → indexed}/wrappers/bundle/wrapper_spec.rb +1 -1
  150. data/spec/lib/{internals/indexed → indexed}/wrappers/exact_first_spec.rb +7 -7
  151. data/spec/lib/{internals/indexers → indexers}/base_spec.rb +0 -0
  152. data/spec/lib/{internals/indexers → indexers}/parallel_spec.rb +0 -0
  153. data/spec/lib/{internals/indexers → indexers}/serial_spec.rb +0 -0
  154. data/spec/lib/indexes_class_spec.rb +30 -0
  155. data/spec/lib/{indexed/indexes_spec.rb → indexes_indexed_spec.rb} +1 -1
  156. data/spec/lib/{indexing/indexes_spec.rb → indexes_indexing_spec.rb} +8 -8
  157. data/spec/lib/{internals/indexing/indexes_spec.rb → indexes_spec.rb} +15 -12
  158. data/spec/lib/{internals/indexing → indexing}/bundle/memory_partial_generation_speed_spec.rb +4 -4
  159. data/spec/lib/{internals/indexing → indexing}/bundle/memory_spec.rb +3 -3
  160. data/spec/lib/{internals/indexing → indexing}/bundle/redis_spec.rb +3 -3
  161. data/spec/lib/{internals/indexing → indexing}/bundle/super_base_spec.rb +2 -2
  162. data/spec/lib/{internals/interfaces → interfaces}/live_parameters_spec.rb +0 -0
  163. data/spec/lib/query/allocation_spec.rb +1 -1
  164. data/spec/lib/query/allocations_spec.rb +1 -1
  165. data/spec/lib/query/combination_spec.rb +5 -5
  166. data/spec/lib/query/combinations/base_spec.rb +1 -1
  167. data/spec/lib/query/combinations/memory_spec.rb +1 -1
  168. data/spec/lib/query/combinations/redis_spec.rb +1 -1
  169. data/spec/lib/query/indexes_spec.rb +1 -1
  170. data/spec/lib/query/qualifiers_spec.rb +4 -4
  171. data/spec/lib/query/token_spec.rb +3 -3
  172. data/spec/lib/query/tokens_spec.rb +32 -32
  173. data/spec/lib/search_spec.rb +5 -5
  174. data/spec/lib/{internals/solr → solr}/schema_generator_spec.rb +0 -0
  175. data/spec/lib/sources/db_spec.rb +4 -8
  176. data/spec/lib/sources/wrappers/location_spec.rb +1 -1
  177. data/spec/lib/{internals/tokenizers → tokenizers}/base_spec.rb +1 -1
  178. data/spec/lib/{internals/tokenizers → tokenizers}/index_spec.rb +1 -1
  179. data/spec/lib/{internals/tokenizers → tokenizers}/query_spec.rb +1 -1
  180. metadata +214 -215
  181. data/lib/picky/aliases.rb +0 -4
  182. data/lib/picky/index_bundle.rb +0 -48
  183. data/lib/picky/indexed/indexes.rb +0 -59
  184. data/lib/picky/indexing/indexes.rb +0 -87
  185. data/lib/picky/internals/adapters/rack/base.rb +0 -27
  186. data/lib/picky/internals/adapters/rack/live_parameters.rb +0 -37
  187. data/lib/picky/internals/adapters/rack/query.rb +0 -69
  188. data/lib/picky/internals/adapters/rack.rb +0 -34
  189. data/lib/picky/internals/calculations/location.rb +0 -59
  190. data/lib/picky/internals/frontend_adapters/rack.rb +0 -150
  191. data/lib/picky/internals/generators/base.rb +0 -19
  192. data/lib/picky/internals/generators/partial/default.rb +0 -7
  193. data/lib/picky/internals/generators/partial/none.rb +0 -35
  194. data/lib/picky/internals/generators/partial/strategy.rb +0 -29
  195. data/lib/picky/internals/generators/partial/substring.rb +0 -122
  196. data/lib/picky/internals/generators/partial_generator.rb +0 -19
  197. data/lib/picky/internals/generators/similarity/default.rb +0 -9
  198. data/lib/picky/internals/generators/similarity/double_metaphone.rb +0 -32
  199. data/lib/picky/internals/generators/similarity/metaphone.rb +0 -32
  200. data/lib/picky/internals/generators/similarity/none.rb +0 -35
  201. data/lib/picky/internals/generators/similarity/phonetic.rb +0 -69
  202. data/lib/picky/internals/generators/similarity/soundex.rb +0 -32
  203. data/lib/picky/internals/generators/similarity/strategy.rb +0 -11
  204. data/lib/picky/internals/generators/similarity_generator.rb +0 -19
  205. data/lib/picky/internals/generators/strategy.rb +0 -18
  206. data/lib/picky/internals/generators/weights/default.rb +0 -9
  207. data/lib/picky/internals/generators/weights/logarithmic.rb +0 -43
  208. data/lib/picky/internals/generators/weights/strategy.rb +0 -11
  209. data/lib/picky/internals/generators/weights_generator.rb +0 -19
  210. data/lib/picky/internals/index/backend.rb +0 -112
  211. data/lib/picky/internals/index/file/basic.rb +0 -105
  212. data/lib/picky/internals/index/file/json.rb +0 -38
  213. data/lib/picky/internals/index/file/marshal.rb +0 -38
  214. data/lib/picky/internals/index/file/text.rb +0 -60
  215. data/lib/picky/internals/index/files.rb +0 -34
  216. data/lib/picky/internals/index/redis/basic.rb +0 -89
  217. data/lib/picky/internals/index/redis/list_hash.rb +0 -53
  218. data/lib/picky/internals/index/redis/string_hash.rb +0 -44
  219. data/lib/picky/internals/index/redis.rb +0 -44
  220. data/lib/picky/internals/indexed/bundle/base.rb +0 -114
  221. data/lib/picky/internals/indexed/bundle/memory.rb +0 -95
  222. data/lib/picky/internals/indexed/bundle/redis.rb +0 -49
  223. data/lib/picky/internals/indexed/categories.rb +0 -140
  224. data/lib/picky/internals/indexed/category.rb +0 -111
  225. data/lib/picky/internals/indexed/index.rb +0 -63
  226. data/lib/picky/internals/indexed/wrappers/bundle/calculation.rb +0 -37
  227. data/lib/picky/internals/indexed/wrappers/bundle/location.rb +0 -44
  228. data/lib/picky/internals/indexed/wrappers/bundle/wrapper.rb +0 -45
  229. data/lib/picky/internals/indexed/wrappers/category/location.rb +0 -27
  230. data/lib/picky/internals/indexed/wrappers/exact_first.rb +0 -59
  231. data/lib/picky/internals/indexing/bundle/base.rb +0 -216
  232. data/lib/picky/internals/indexing/bundle/memory.rb +0 -29
  233. data/lib/picky/internals/indexing/bundle/redis.rb +0 -28
  234. data/lib/picky/internals/indexing/bundle/super_base.rb +0 -65
  235. data/lib/picky/internals/indexing/category.rb +0 -153
  236. data/lib/picky/internals/indexing/index.rb +0 -142
  237. data/lib/picky/internals/indexing/wrappers/category/location.rb +0 -27
  238. data/lib/picky/internals/query/allocation.rb +0 -88
  239. data/lib/picky/internals/query/allocations.rb +0 -118
  240. data/lib/picky/internals/query/combination.rb +0 -80
  241. data/lib/picky/internals/query/combinations/base.rb +0 -74
  242. data/lib/picky/internals/query/combinations/memory.rb +0 -52
  243. data/lib/picky/internals/query/combinations/redis.rb +0 -90
  244. data/lib/picky/internals/query/indexes.rb +0 -199
  245. data/lib/picky/internals/query/qualifiers.rb +0 -82
  246. data/lib/picky/internals/query/token.rb +0 -202
  247. data/lib/picky/internals/query/tokens.rb +0 -109
  248. data/lib/picky/internals/shared/category.rb +0 -52
  249. data/lib/picky/internals/tokenizers/base.rb +0 -228
  250. data/lib/picky/internals/tokenizers/index.rb +0 -34
  251. data/lib/picky/internals/tokenizers/location.rb +0 -54
  252. data/lib/picky/internals/tokenizers/query.rb +0 -59
  253. data/lib/picky/internals.rb +0 -2
  254. data/spec/lib/aliases_spec.rb +0 -9
  255. data/spec/lib/index_bundle_spec.rb +0 -69
@@ -1,10 +1,10 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Internals::Indexing::Index do
3
+ describe Index::Base do
4
4
 
5
5
  context "with categories" do
6
6
  before(:each) do
7
- @source = stub :some_source
7
+ @source = []
8
8
 
9
9
  @index = described_class.new :some_name, source: @source
10
10
  @index.define_category :some_category_name1
@@ -22,24 +22,11 @@ describe Internals::Indexing::Index do
22
22
  @index.source.should == :some_other_source
23
23
  end
24
24
  end
25
- describe "generate_caches" do
26
- it "delegates to each category" do
27
- category1 = stub :category1
28
- category2 = stub :category2
29
-
30
- @index.stub! :categories => [category1, category2]
31
-
32
- category1.should_receive(:generate_caches).once.ordered.with
33
- category2.should_receive(:generate_caches).once.ordered.with
34
-
35
- @index.generate_caches
36
- end
37
- end
38
25
  describe 'find' do
39
26
  context 'no categories' do
40
27
  it 'raises on none existent category' do
41
28
  expect do
42
- @index.find :some_non_existent_name
29
+ @index[:some_non_existent_name]
43
30
  end.to raise_error(%Q{Index category "some_non_existent_name" not found. Possible categories: "some_category_name1", "some_category_name2".})
44
31
  end
45
32
  end
@@ -48,11 +35,11 @@ describe Internals::Indexing::Index do
48
35
  @index.define_category :some_name, :source => stub(:source)
49
36
  end
50
37
  it 'returns it if found' do
51
- @index.find(:some_name).should_not == nil
38
+ @index[:some_name].should_not == nil
52
39
  end
53
40
  it 'raises on none existent category' do
54
41
  expect do
55
- @index.find :some_non_existent_name
42
+ @index[:some_non_existent_name]
56
43
  end.to raise_error(%Q{Index category "some_non_existent_name" not found. Possible categories: "some_category_name1", "some_category_name2", "some_name".})
57
44
  end
58
45
  end
@@ -61,7 +48,7 @@ describe Internals::Indexing::Index do
61
48
 
62
49
  context "no categories" do
63
50
  it "works" do
64
- described_class.new :some_name, source: @source
51
+ described_class.new :some_name, source: []
65
52
  end
66
53
  end
67
54
 
@@ -61,67 +61,24 @@ ERROR
61
61
  api.geo_categories :some_lat, :some_lng, 1, :lat_from => :some_lat_from, :lng_from => :some_lng_from
62
62
  end
63
63
  end
64
-
65
- describe 'define_source' do
66
- it 'delegates to the internal indexing' do
67
- indexing = stub :indexing
68
- api.stub! :internal_indexing => indexing
69
-
70
- indexing.should_receive(:define_source).once.with :some_source
71
-
72
- api.define_source :some_source
73
- end
74
- it 'has an alias' do
75
- indexing = stub :indexing
76
- api.stub! :internal_indexing => indexing
77
-
78
- indexing.should_receive(:define_source).once.with :some_source
79
-
80
- api.source :some_source
81
- end
82
- end
83
-
84
- describe 'define_indexing' do
85
- it 'delegates to the internal indexing' do
86
- indexing = stub :indexing
87
- api.stub! :internal_indexing => indexing
88
-
89
- indexing.should_receive(:define_indexing).once.with :some_options
90
-
91
- api.define_indexing :some_options
92
- end
93
- it 'has an alias' do
94
- indexing = stub :indexing
95
- api.stub! :internal_indexing => indexing
96
-
97
- indexing.should_receive(:define_indexing).once.with :some_options
98
-
99
- api.indexing :some_options
100
- end
101
- end
102
64
 
103
65
  describe 'define_category' do
104
66
  context 'with block' do
105
- it 'returns itself' do
106
- api.define_category(:some_name){ |indexing, indexed| }.should == api
67
+ it 'returns the category' do
68
+ expected = nil
69
+ api.define_category(:some_name){ |category| expected = category }.should == expected
107
70
  end
108
71
  it 'takes a string' do
109
72
  lambda { api.define_category('some_name'){ |indexing, indexed| } }.should_not raise_error
110
73
  end
111
74
  it 'yields both the indexing category and the indexed category' do
112
- api.define_category(:some_name) do |indexing, indexed|
113
- indexing.should be_kind_of(Internals::Indexing::Category)
114
- indexed.should be_kind_of(Internals::Indexed::Category)
115
- end
116
- end
117
- it 'yields the indexing category which has the given name' do
118
- api.define_category(:some_name) do |indexing, indexed|
119
- indexing.name.should == :some_name
75
+ api.define_category(:some_name) do |category|
76
+ category.should be_kind_of(Category)
120
77
  end
121
78
  end
122
- it 'yields the indexed category which has the given name' do
123
- api.define_category(:some_name) do |indexing, indexed|
124
- indexed.name.should == :some_name
79
+ it 'yields the category which has the given name' do
80
+ api.define_category(:some_name) do |category|
81
+ category.name.should == :some_name
125
82
  end
126
83
  end
127
84
  end
@@ -130,10 +87,10 @@ ERROR
130
87
  lambda { api.define_category(:some_name) }.should_not raise_error
131
88
  end
132
89
  it 'takes a string' do
133
- lambda { api.define_category('some_name').should == api }.should_not raise_error
90
+ lambda { api.define_category('some_name') }.should_not raise_error
134
91
  end
135
92
  it 'returns itself' do
136
- api.define_category(:some_name).should == api
93
+ api.define_category(:some_name).should be_kind_of(Category)
137
94
  end
138
95
  end
139
96
  end
@@ -1,10 +1,10 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Internals::Indexed::Bundle::Memory do
3
+ describe Indexed::Bundle::Memory do
4
4
 
5
5
  before(:each) do
6
- @index = stub :index, :name => :some_index
7
- @category = Internals::Indexed::Category.new :some_category, @index
6
+ @index = Index::Memory.new :some_index, source: []
7
+ @category = Category.new :some_category, @index
8
8
 
9
9
  @similarity = stub :similarity
10
10
  @bundle = described_class.new :some_name, @category, @similarity
@@ -160,8 +160,8 @@ Memory
160
160
 
161
161
  describe 'initialization' do
162
162
  before(:each) do
163
- @index = stub :index, :name => :some_index
164
- @category = Internals::Indexed::Category.new :some_category, @index
163
+ @index = Index::Memory.new :some_index, source: []
164
+ @category = Category.new :some_category, @index
165
165
 
166
166
  @bundle = described_class.new :some_name, @category, :similarity
167
167
  end
@@ -1,14 +1,14 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Internals::Indexed::Bundle::Redis do
3
+ describe Indexed::Bundle::Redis do
4
4
 
5
5
  before(:each) do
6
6
  @backend = stub :backend
7
7
 
8
- Internals::Index::Redis.stub! :new => @backend
8
+ Backend::Redis.stub! :new => @backend
9
9
 
10
- @index = stub :index, :name => :some_index
11
- @category = Internals::Indexed::Category.new :some_category, @index
10
+ @index = Index::Memory.new :some_index, source: []
11
+ @category = Category.new :some_category, @index
12
12
 
13
13
  @similarity = stub :similarity
14
14
  @bundle = described_class.new :some_name, @category, @similarity
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Internals::Indexed::Wrappers::Bundle::Calculation do
3
+ describe Indexed::Wrappers::Bundle::Calculation do
4
4
 
5
5
  before(:each) do
6
6
  @bundle = stub :bundle
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Internals::Indexed::Wrappers::Bundle::Wrapper do
3
+ describe Indexed::Wrappers::Bundle::Wrapper do
4
4
 
5
5
  before(:each) do
6
6
  @bundle = stub :bundle
@@ -1,11 +1,11 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Internals::Indexed::Wrappers::ExactFirst do
3
+ describe Indexed::Wrappers::ExactFirst do
4
4
 
5
5
  before(:each) do
6
6
  @exact = stub :exact
7
7
  @partial = stub :partial
8
- @category = stub :category, :exact => @exact, :partial => @partial
8
+ @category = stub :category, :indexed_exact => @exact, :indexed_partial => @partial
9
9
 
10
10
  @wrapper = described_class.new @category
11
11
  end
@@ -13,17 +13,17 @@ describe Internals::Indexed::Wrappers::ExactFirst do
13
13
  describe "self.wrap" do
14
14
  context "index" do
15
15
  it "wraps each category" do
16
- index = Internals::Indexed::Index.new :index_name
16
+ index = Index::Memory.new :some_index, source: []
17
17
  index.define_category :some_category
18
18
 
19
- Internals::Indexed::Wrappers::ExactFirst.wrap index
19
+ Indexed::Wrappers::ExactFirst.wrap index
20
20
 
21
21
  index.categories.categories.each do |category|
22
- category.should be_kind_of(Internals::Indexed::Wrappers::ExactFirst)
22
+ category.should be_kind_of(Indexed::Wrappers::ExactFirst)
23
23
  end
24
24
  end
25
25
  it "returns the index" do
26
- index = Internals::Indexed::Index.new :index_name
26
+ index = Index::Memory.new :some_index, source: []
27
27
  index.define_category :some_category
28
28
 
29
29
  described_class.wrap(index).should == index
@@ -31,7 +31,7 @@ describe Internals::Indexed::Wrappers::ExactFirst do
31
31
  end
32
32
  context "category" do
33
33
  it "wraps each category" do
34
- category = stub :category, :exact => :exact, :partial => :partial
34
+ category = stub :category, :indexed_exact => :exact, :indexed_partial => :partial
35
35
 
36
36
  described_class.wrap(category).should be_kind_of(described_class)
37
37
  end
@@ -0,0 +1,30 @@
1
+ require 'spec_helper'
2
+
3
+ describe Indexes do
4
+
5
+ before(:each) do
6
+ @index = stub :some_index, :name => :some_index
7
+ @indexes = described_class.instance
8
+ end
9
+
10
+ describe 'clear' do
11
+ it 'clears the indexes' do
12
+ Indexes.register @index
13
+
14
+ Indexes.clear
15
+
16
+ @indexes.indexes.should == []
17
+ end
18
+ end
19
+
20
+ describe 'register' do
21
+ it 'adds the given index to the indexes' do
22
+ Indexes.clear
23
+
24
+ Indexes.register @index
25
+
26
+ @indexes.indexes.should == [@index]
27
+ end
28
+ end
29
+
30
+ end
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Indexed::Indexes do
3
+ describe Indexes do
4
4
 
5
5
  context 'after initialize' do
6
6
  let(:indexes) { described_class.new }
@@ -1,6 +1,8 @@
1
+ # encoding: utf-8
2
+ #
1
3
  require 'spec_helper'
2
4
 
3
- describe Indexing::Indexes do
5
+ describe Indexes do
4
6
 
5
7
  context 'after initialize' do
6
8
  let(:indexes) { described_class.new }
@@ -8,7 +10,7 @@ describe Indexing::Indexes do
8
10
  indexes.indexes.should == []
9
11
  end
10
12
  end
11
-
13
+
12
14
  describe 'methods' do
13
15
  let(:indexes) { described_class.new }
14
16
  before(:each) do
@@ -20,11 +22,9 @@ describe Indexing::Indexes do
20
22
  describe 'index_for_tests' do
21
23
  it 'takes a snapshot, then indexes and caches each' do
22
24
  indexes.should_receive(:take_snapshot).once.with.ordered
23
- @index1.should_receive(:index!).once.with.ordered
24
- @index1.should_receive(:cache!).once.with.ordered
25
- @index2.should_receive(:index!).once.with.ordered
26
- @index2.should_receive(:cache!).once.with.ordered
27
-
25
+ @index1.should_receive(:index).once.with.ordered
26
+ @index2.should_receive(:index).once.with.ordered
27
+
28
28
  indexes.index_for_tests
29
29
  end
30
30
  end
@@ -36,7 +36,7 @@ describe Indexing::Indexes do
36
36
  describe 'clear' do
37
37
  it 'clears the indexes' do
38
38
  indexes.clear
39
-
39
+
40
40
  indexes.indexes.should == []
41
41
  end
42
42
  end
@@ -1,11 +1,12 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Indexing::Indexes do
4
-
3
+ describe Indexes do
4
+
5
5
  before(:each) do
6
- @indexes = Indexing::Indexes.new
6
+ @index = stub :some_index, :name => :some_index
7
+ @indexes = described_class.instance
7
8
  end
8
-
9
+
9
10
  describe 'indexes' do
10
11
  it 'exists' do
11
12
  lambda { @indexes.indexes }.should_not raise_error
@@ -14,23 +15,25 @@ describe Indexing::Indexes do
14
15
  @indexes.indexes.should be_empty
15
16
  end
16
17
  end
17
-
18
+
18
19
  describe 'clear' do
19
20
  it 'clears the indexes' do
20
- @indexes.register :some_index
21
-
21
+ @indexes.register @index
22
+
22
23
  @indexes.clear
23
-
24
+
24
25
  @indexes.indexes.should == []
25
26
  end
26
27
  end
27
-
28
+
28
29
  describe 'register' do
29
30
  it 'adds the given index to the indexes' do
30
- @indexes.register :some_index
31
+ @indexes.clear
31
32
 
32
- @indexes.indexes.should == [:some_index]
33
+ @indexes.register @index
34
+
35
+ @indexes.indexes.should == [@index]
33
36
  end
34
37
  end
35
-
38
+
36
39
  end
@@ -1,12 +1,12 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Internals::Indexing::Bundle::Memory do
3
+ describe Indexing::Bundle::Memory do
4
4
 
5
5
  before(:each) do
6
- @index = stub :index, :name => :some_index, :bundle_class => nil
7
- @category = Internals::Indexing::Category.new :some_category, @index
6
+ @index = Index::Memory.new :some_index, source: []
7
+ @category = Category.new :some_category, @index
8
8
 
9
- @partial_strategy = Internals::Generators::Partial::Substring.new :from => 1
9
+ @partial_strategy = Generators::Partial::Substring.new :from => 1
10
10
  @exact = described_class.new :some_name, @category, nil, @partial_strategy, nil
11
11
  end
12
12
 
@@ -1,10 +1,10 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Internals::Indexing::Bundle::Memory do
3
+ describe Indexing::Bundle::Memory do
4
4
 
5
5
  before(:each) do
6
- @index = stub :index, :name => :some_index, :bundle_class => nil
7
- @category = Internals::Indexing::Category.new :some_category, @index
6
+ @index = Index::Memory.new :some_index, source: []
7
+ @category = Category.new :some_category, @index
8
8
 
9
9
  @partial = stub :partial
10
10
  @weights = stub :weights
@@ -1,10 +1,10 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Internals::Indexing::Bundle::Redis do
3
+ describe Indexing::Bundle::Redis do
4
4
 
5
5
  before(:each) do
6
- @index = stub :index, :name => :some_index, :bundle_class => nil
7
- @category = Internals::Indexing::Category.new :some_category, @index
6
+ @index = Index::Memory.new :some_index, source: []
7
+ @category = Category.new :some_category, @index
8
8
 
9
9
  @partial = stub :partial
10
10
  @weights = stub :weights
@@ -1,10 +1,10 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Internals::Indexing::Bundle::SuperBase do
3
+ describe Indexing::Bundle::SuperBase do
4
4
 
5
5
  before(:each) do
6
6
  @configuration = stub :configuration, :identifier => 'some_identifier'
7
- Internals::Index::Files.stub! :new
7
+ Backend::Files.stub! :new
8
8
  @similarity = Similarity::DoubleMetaphone.new 3
9
9
  @bundle = described_class.new :some_name, @configuration, @similarity
10
10
  end
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Internals::Query::Allocation do
3
+ describe Query::Allocation do
4
4
 
5
5
  before(:each) do
6
6
  @combinations = stub :combinations
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Internals::Query::Allocations do
3
+ describe Query::Allocations do
4
4
 
5
5
  describe 'reduce_to' do
6
6
  before(:each) do
@@ -2,14 +2,14 @@
2
2
  #
3
3
  require 'spec_helper'
4
4
 
5
- describe 'Query::Combination' do
5
+ describe Query::Combination do
6
6
 
7
7
  before(:each) do
8
8
  @bundle = stub :bundle, :identifier => :bundle_name
9
- @token = Internals::Query::Token.processed('some_text~')
9
+ @token = Query::Token.processed('some_text~')
10
10
  @category = stub :category, :bundle_for => @bundle, :name => :some_category_name
11
11
 
12
- @combination = Internals::Query::Combination.new @token, @category
12
+ @combination = described_class.new @token, @category
13
13
  end
14
14
 
15
15
  describe "to_s" do
@@ -41,9 +41,9 @@ describe 'Query::Combination' do
41
41
  describe 'to_result' do
42
42
  context 'functional with qualifier' do
43
43
  before(:each) do
44
- token = Internals::Tokenizers::Query.new.tokenize('name:Blä~').first
44
+ token = Tokenizers::Query.new.tokenize('name:Blä~').first
45
45
 
46
- @combination = Internals::Query::Combination.new token, @category
46
+ @combination = Query::Combination.new token, @category
47
47
  end
48
48
  it 'should return a correct result' do
49
49
  @combination.to_result.should == [:some_category_name, 'Blä~', :blä] # Note: Characters not substituted. That's ok.
@@ -2,7 +2,7 @@
2
2
  #
3
3
  require 'spec_helper'
4
4
 
5
- describe Internals::Query::Combinations::Base do
5
+ describe Query::Combinations::Base do
6
6
 
7
7
  before(:each) do
8
8
  @combinations_ary = stub :combinations_ary
@@ -2,7 +2,7 @@
2
2
  #
3
3
  require 'spec_helper'
4
4
 
5
- describe Internals::Query::Combinations::Memory do
5
+ describe Query::Combinations::Memory do
6
6
 
7
7
  before(:each) do
8
8
  @combinations_ary = stub :combinations_ary
@@ -2,7 +2,7 @@
2
2
  #
3
3
  require 'spec_helper'
4
4
 
5
- describe Internals::Query::Combinations::Redis do
5
+ describe Query::Combinations::Redis do
6
6
 
7
7
  before(:each) do
8
8
  @combinations_ary = stub :combinations_ary
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Internals::Query::Indexes do
3
+ describe Query::Indexes do
4
4
 
5
5
  3.times do |i|
6
6
  n = i + 1
@@ -1,11 +1,11 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Internals::Query::Qualifiers do
3
+ describe Query::Qualifiers do
4
4
 
5
5
  before(:each) do
6
- described_class.instance << Internals::Query::Qualifier.new(:test1, ['t1', 'tt1', 'ttt1'])
7
- described_class.instance << Internals::Query::Qualifier.new(:test2, [:t2, :tt2, :ttt2])
8
- described_class.instance << Internals::Query::Qualifier.new(:test3, [:t3, :tt3, :ttt3])
6
+ described_class.instance << Query::Qualifier.new(:test1, ['t1', 'tt1', 'ttt1'])
7
+ described_class.instance << Query::Qualifier.new(:test2, [:t2, :tt2, :ttt2])
8
+ described_class.instance << Query::Qualifier.new(:test3, [:t3, :tt3, :ttt3])
9
9
  described_class.instance.prepare
10
10
  end
11
11
 
@@ -1,11 +1,11 @@
1
1
  # coding: utf-8
2
2
  require 'spec_helper'
3
3
 
4
- describe Internals::Query::Token do
4
+ describe Query::Token do
5
5
 
6
6
  before(:all) do
7
- Internals::Query::Qualifiers.instance << Internals::Query::Qualifier.new(:specific, [:sp, :spec])
8
- Internals::Query::Qualifiers.instance.prepare
7
+ Query::Qualifiers.instance << Query::Qualifier.new(:specific, [:sp, :spec])
8
+ Query::Qualifiers.instance.prepare
9
9
  end
10
10
 
11
11
  describe '==' do