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.
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