picky 4.0.0pre1 → 4.0.0pre2

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 (112) hide show
  1. data/aux/picky/cli.rb +6 -2
  2. data/lib/picky.rb +10 -8
  3. data/lib/picky/backends/backend.rb +37 -0
  4. data/lib/picky/backends/file.rb +0 -20
  5. data/lib/picky/backends/memory.rb +0 -29
  6. data/lib/picky/backends/redis.rb +74 -15
  7. data/lib/picky/backends/redis/list.rb +1 -1
  8. data/lib/picky/backends/sqlite.rb +0 -27
  9. data/lib/picky/bundle.rb +2 -2
  10. data/lib/picky/bundle_indexed.rb +1 -1
  11. data/lib/picky/bundle_indexing.rb +1 -1
  12. data/lib/picky/categories_indexed.rb +1 -11
  13. data/lib/picky/category.rb +4 -4
  14. data/lib/picky/category/location.rb +25 -0
  15. data/lib/picky/category_realtime.rb +4 -3
  16. data/lib/picky/console.rb +1 -1
  17. data/lib/picky/constants.rb +1 -1
  18. data/lib/picky/ext/maybe_compile.rb +2 -2
  19. data/lib/picky/extensions/object.rb +3 -2
  20. data/lib/picky/generators/aliases.rb +7 -2
  21. data/lib/picky/generators/partial/default.rb +1 -0
  22. data/lib/picky/generators/similarity/default.rb +1 -0
  23. data/lib/picky/generators/similarity/phonetic.rb +13 -2
  24. data/lib/picky/generators/strategy.rb +0 -2
  25. data/lib/picky/generators/weights/constant.rb +1 -2
  26. data/lib/picky/generators/weights/default.rb +1 -0
  27. data/lib/picky/generators/weights/dynamic.rb +1 -1
  28. data/lib/picky/generators/weights/logarithmic.rb +1 -1
  29. data/lib/picky/generators/weights/{runtime.rb → stub.rb} +1 -3
  30. data/lib/picky/index.rb +3 -3
  31. data/lib/picky/index_indexing.rb +0 -2
  32. data/lib/picky/index_realtime.rb +1 -1
  33. data/lib/picky/indexers/base.rb +7 -0
  34. data/lib/picky/indexers/parallel.rb +2 -4
  35. data/lib/picky/indexers/serial.rb +2 -0
  36. data/lib/picky/indexes_indexing.rb +1 -1
  37. data/lib/picky/interfaces/live_parameters/master_child.rb +175 -0
  38. data/lib/picky/interfaces/live_parameters/unicorn.rb +37 -0
  39. data/lib/picky/loader.rb +238 -259
  40. data/lib/picky/query/allocation.rb +19 -10
  41. data/lib/picky/query/combination.rb +7 -1
  42. data/lib/picky/query/combinations.rb +1 -6
  43. data/lib/picky/query/token.rb +26 -36
  44. data/lib/picky/results.rb +18 -17
  45. data/lib/picky/scheduler.rb +2 -1
  46. data/lib/picky/search.rb +1 -1
  47. data/lib/picky/sinatra.rb +6 -6
  48. data/lib/picky/statistics.rb +2 -0
  49. data/lib/picky/tokenizer.rb +8 -8
  50. data/lib/picky/wrappers/bundle/calculation.rb +4 -4
  51. data/lib/picky/wrappers/bundle/location.rb +1 -2
  52. data/lib/tasks/framework.rake +1 -1
  53. data/lib/tasks/statistics.rake +1 -1
  54. data/lib/tasks/try.rake +1 -1
  55. data/lib/tasks/try.rb +1 -1
  56. data/spec/aux/picky/cli_spec.rb +12 -12
  57. data/spec/ext/performant_spec.rb +16 -16
  58. data/spec/functional/backends/file_spec.rb +78 -7
  59. data/spec/functional/backends/memory_spec.rb +78 -7
  60. data/spec/functional/backends/redis_spec.rb +73 -13
  61. data/spec/functional/dynamic_weights_spec.rb +3 -4
  62. data/spec/functional/realtime_spec.rb +2 -2
  63. data/spec/functional/speed_spec.rb +2 -2
  64. data/spec/functional/terminate_early_spec.rb +3 -3
  65. data/spec/lib/analytics_spec.rb +1 -1
  66. data/spec/lib/analyzer_spec.rb +5 -3
  67. data/spec/lib/categories_indexed_spec.rb +38 -20
  68. data/spec/lib/category/location_spec.rb +30 -0
  69. data/spec/lib/character_substituters/west_european_spec.rb +1 -0
  70. data/spec/lib/extensions/hash_spec.rb +6 -5
  71. data/spec/lib/extensions/module_spec.rb +6 -6
  72. data/spec/lib/extensions/object_spec.rb +9 -8
  73. data/spec/lib/extensions/string_spec.rb +1 -1
  74. data/spec/lib/generators/similarity/phonetic_spec.rb +11 -0
  75. data/spec/lib/index_realtime_spec.rb +5 -5
  76. data/spec/lib/interfaces/{live_parameters_spec.rb → live_parameters/master_child_spec.rb} +26 -26
  77. data/spec/lib/interfaces/live_parameters/unicorn_spec.rb +160 -0
  78. data/spec/lib/loader_spec.rb +65 -25
  79. data/spec/lib/query/allocation_spec.rb +25 -22
  80. data/spec/lib/query/combinations_spec.rb +13 -36
  81. data/spec/lib/query/token_spec.rb +144 -131
  82. data/spec/lib/query/tokens_spec.rb +14 -0
  83. data/spec/lib/results_spec.rb +14 -8
  84. data/spec/lib/search_spec.rb +1 -1
  85. data/spec/lib/sinatra_spec.rb +8 -8
  86. metadata +28 -91
  87. data/lib/picky/adapters/rack.rb +0 -34
  88. data/lib/picky/adapters/rack/base.rb +0 -27
  89. data/lib/picky/adapters/rack/live_parameters.rb +0 -37
  90. data/lib/picky/adapters/rack/search.rb +0 -67
  91. data/lib/picky/application.rb +0 -268
  92. data/lib/picky/frontend_adapters/rack.rb +0 -161
  93. data/lib/picky/interfaces/live_parameters.rb +0 -187
  94. data/lib/picky/sources/base.rb +0 -92
  95. data/lib/picky/sources/couch.rb +0 -76
  96. data/lib/picky/sources/csv.rb +0 -83
  97. data/lib/picky/sources/db.rb +0 -189
  98. data/lib/picky/sources/delicious.rb +0 -63
  99. data/lib/picky/sources/mongo.rb +0 -80
  100. data/lib/picky/wrappers/category/location.rb +0 -38
  101. data/lib/tasks/routes.rake +0 -8
  102. data/spec/lib/adapters/rack/base_spec.rb +0 -24
  103. data/spec/lib/adapters/rack/live_parameters_spec.rb +0 -26
  104. data/spec/lib/adapters/rack/query_spec.rb +0 -39
  105. data/spec/lib/application_spec.rb +0 -155
  106. data/spec/lib/frontend_adapters/rack_spec.rb +0 -294
  107. data/spec/lib/sources/base_spec.rb +0 -53
  108. data/spec/lib/sources/couch_spec.rb +0 -114
  109. data/spec/lib/sources/csv_spec.rb +0 -89
  110. data/spec/lib/sources/db_spec.rb +0 -125
  111. data/spec/lib/sources/delicious_spec.rb +0 -94
  112. data/spec/lib/sources/mongo_spec.rb +0 -50
@@ -51,7 +51,7 @@ describe Picky::Search do
51
51
  context 'no tokenizer predefined' do
52
52
  let(:search) { described_class.new }
53
53
  it 'returns the default tokenizer' do
54
- search.tokenizer.should == Picky::Tokenizer.query_default
54
+ search.tokenizer.should == Picky::Tokenizer.searching
55
55
  end
56
56
  end
57
57
  context 'tokenizer predefined' do
@@ -1,16 +1,16 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Picky::Sinatra do
4
-
4
+
5
5
  let(:extendee) { Class.new {} }
6
-
6
+
7
7
  it 'has no Picky specific methods' do
8
8
  lambda { extendee.indexing }.should raise_error
9
9
  end
10
10
  it 'has no Picky specific methods' do
11
11
  lambda { extendee.searching }.should raise_error
12
12
  end
13
-
13
+
14
14
  context 'after extending' do
15
15
  before(:each) do
16
16
  extendee.extend Picky::Sinatra
@@ -22,15 +22,15 @@ describe Picky::Sinatra do
22
22
  extendee.send :searching, some: 'option'
23
23
  end
24
24
  it 'gets delegated correctly' do
25
- Picky::Application.should_receive(:indexing).once.with some: 'option'
26
-
25
+ Picky::Tokenizer.should_receive(:default_indexing_with).once.with some: 'option'
26
+
27
27
  extendee.send :indexing, some: 'option'
28
28
  end
29
29
  it 'gets delegated correctly' do
30
- Picky::Application.should_receive(:searching).once.with some: 'option'
31
-
30
+ Picky::Tokenizer.should_receive(:default_searching_with).once.with some: 'option'
31
+
32
32
  extendee.send :searching, some: 'option'
33
33
  end
34
34
  end
35
-
35
+
36
36
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: picky
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0pre1
4
+ version: 4.0.0pre2
5
5
  prerelease: 5
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-12-06 00:00:00.000000000 Z
12
+ date: 2011-12-12 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: &70311745503320 !ruby/object:Gem::Requirement
16
+ requirement: &70284145905500 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,43 +21,21 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70311745503320
24
+ version_requirements: *70284145905500
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: picky-client
27
- requirement: &70311745502640 !ruby/object:Gem::Requirement
27
+ requirement: &70284145904960 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
31
31
  - !ruby/object:Gem::Version
32
- version: 4.0.0pre1
32
+ version: 4.0.0pre2
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70311745502640
36
- - !ruby/object:Gem::Dependency
37
- name: rack
38
- requirement: &70311745502040 !ruby/object:Gem::Requirement
39
- none: false
40
- requirements:
41
- - - ! '>='
42
- - !ruby/object:Gem::Version
43
- version: '0'
44
- type: :runtime
45
- prerelease: false
46
- version_requirements: *70311745502040
47
- - !ruby/object:Gem::Dependency
48
- name: rack_fast_escape
49
- requirement: &70311745501280 !ruby/object:Gem::Requirement
50
- none: false
51
- requirements:
52
- - - ! '>='
53
- - !ruby/object:Gem::Version
54
- version: '0'
55
- type: :runtime
56
- prerelease: false
57
- version_requirements: *70311745501280
35
+ version_requirements: *70284145904960
58
36
  - !ruby/object:Gem::Dependency
59
37
  name: text
60
- requirement: &70311745500860 !ruby/object:Gem::Requirement
38
+ requirement: &70284145904520 !ruby/object:Gem::Requirement
61
39
  none: false
62
40
  requirements:
63
41
  - - ! '>='
@@ -65,10 +43,10 @@ dependencies:
65
43
  version: '0'
66
44
  type: :runtime
67
45
  prerelease: false
68
- version_requirements: *70311745500860
46
+ version_requirements: *70284145904520
69
47
  - !ruby/object:Gem::Dependency
70
48
  name: yajl-ruby
71
- requirement: &70311745500360 !ruby/object:Gem::Requirement
49
+ requirement: &70284145904040 !ruby/object:Gem::Requirement
72
50
  none: false
73
51
  requirements:
74
52
  - - ! '>='
@@ -76,10 +54,10 @@ dependencies:
76
54
  version: '0'
77
55
  type: :runtime
78
56
  prerelease: false
79
- version_requirements: *70311745500360
57
+ version_requirements: *70284145904040
80
58
  - !ruby/object:Gem::Dependency
81
59
  name: activesupport
82
- requirement: &70311745499600 !ruby/object:Gem::Requirement
60
+ requirement: &70284145903480 !ruby/object:Gem::Requirement
83
61
  none: false
84
62
  requirements:
85
63
  - - ~>
@@ -87,10 +65,10 @@ dependencies:
87
65
  version: '3.0'
88
66
  type: :runtime
89
67
  prerelease: false
90
- version_requirements: *70311745499600
68
+ version_requirements: *70284145903480
91
69
  - !ruby/object:Gem::Dependency
92
70
  name: procrastinate
93
- requirement: &70311745498920 !ruby/object:Gem::Requirement
71
+ requirement: &70284145902860 !ruby/object:Gem::Requirement
94
72
  none: false
95
73
  requirements:
96
74
  - - ~>
@@ -98,21 +76,10 @@ dependencies:
98
76
  version: '0.4'
99
77
  type: :runtime
100
78
  prerelease: false
101
- version_requirements: *70311745498920
79
+ version_requirements: *70284145902860
102
80
  - !ruby/object:Gem::Dependency
103
- name: unicorn
104
- requirement: &70311745498540 !ruby/object:Gem::Requirement
105
- none: false
106
- requirements:
107
- - - ! '>='
108
- - !ruby/object:Gem::Version
109
- version: '0'
110
- type: :runtime
111
- prerelease: false
112
- version_requirements: *70311745498540
113
- - !ruby/object:Gem::Dependency
114
- name: sinatra
115
- requirement: &70311745498080 !ruby/object:Gem::Requirement
81
+ name: rack_fast_escape
82
+ requirement: &70284145902240 !ruby/object:Gem::Requirement
116
83
  none: false
117
84
  requirements:
118
85
  - - ! '>='
@@ -120,7 +87,7 @@ dependencies:
120
87
  version: '0'
121
88
  type: :runtime
122
89
  prerelease: false
123
- version_requirements: *70311745498080
90
+ version_requirements: *70284145902240
124
91
  description: Fast Ruby semantic text search engine with comfortable single field interface.
125
92
  email: florian.hanke+picky@gmail.com
126
93
  executables:
@@ -130,13 +97,8 @@ extensions:
130
97
  extra_rdoc_files: []
131
98
  files:
132
99
  - aux/picky/cli.rb
133
- - lib/picky/adapters/rack/base.rb
134
- - lib/picky/adapters/rack/live_parameters.rb
135
- - lib/picky/adapters/rack/search.rb
136
- - lib/picky/adapters/rack.rb
137
100
  - lib/picky/analytics.rb
138
101
  - lib/picky/analyzer.rb
139
- - lib/picky/application.rb
140
102
  - lib/picky/backends/backend.rb
141
103
  - lib/picky/backends/file/basic.rb
142
104
  - lib/picky/backends/file/json.rb
@@ -171,6 +133,7 @@ files:
171
133
  - lib/picky/categories_indexed.rb
172
134
  - lib/picky/categories_indexing.rb
173
135
  - lib/picky/categories_realtime.rb
136
+ - lib/picky/category/location.rb
174
137
  - lib/picky/category.rb
175
138
  - lib/picky/category_convenience.rb
176
139
  - lib/picky/category_indexed.rb
@@ -189,7 +152,6 @@ files:
189
152
  - lib/picky/extensions/object.rb
190
153
  - lib/picky/extensions/string.rb
191
154
  - lib/picky/extensions/symbol.rb
192
- - lib/picky/frontend_adapters/rack.rb
193
155
  - lib/picky/generators/aliases.rb
194
156
  - lib/picky/generators/partial/default.rb
195
157
  - lib/picky/generators/partial/infix.rb
@@ -209,8 +171,8 @@ files:
209
171
  - lib/picky/generators/weights/default.rb
210
172
  - lib/picky/generators/weights/dynamic.rb
211
173
  - lib/picky/generators/weights/logarithmic.rb
212
- - lib/picky/generators/weights/runtime.rb
213
174
  - lib/picky/generators/weights/strategy.rb
175
+ - lib/picky/generators/weights/stub.rb
214
176
  - lib/picky/helpers/indexing.rb
215
177
  - lib/picky/helpers/measuring.rb
216
178
  - lib/picky/index.rb
@@ -225,7 +187,8 @@ files:
225
187
  - lib/picky/indexes_convenience.rb
226
188
  - lib/picky/indexes_indexed.rb
227
189
  - lib/picky/indexes_indexing.rb
228
- - lib/picky/interfaces/live_parameters.rb
190
+ - lib/picky/interfaces/live_parameters/master_child.rb
191
+ - lib/picky/interfaces/live_parameters/unicorn.rb
229
192
  - lib/picky/loader.rb
230
193
  - lib/picky/migrations/from_30_to_31.rb
231
194
  - lib/picky/performant.rb
@@ -245,12 +208,6 @@ files:
245
208
  - lib/picky/scheduler.rb
246
209
  - lib/picky/search.rb
247
210
  - lib/picky/sinatra.rb
248
- - lib/picky/sources/base.rb
249
- - lib/picky/sources/couch.rb
250
- - lib/picky/sources/csv.rb
251
- - lib/picky/sources/db.rb
252
- - lib/picky/sources/delicious.rb
253
- - lib/picky/sources/mongo.rb
254
211
  - lib/picky/statistics.rb
255
212
  - lib/picky/tasks.rb
256
213
  - lib/picky/tokenizer.rb
@@ -259,13 +216,11 @@ files:
259
216
  - lib/picky/wrappers/bundle/exact_partial.rb
260
217
  - lib/picky/wrappers/bundle/location.rb
261
218
  - lib/picky/wrappers/bundle/wrapper.rb
262
- - lib/picky/wrappers/category/location.rb
263
219
  - lib/picky.rb
264
220
  - lib/tasks/try.rb
265
221
  - lib/tasks/application.rake
266
222
  - lib/tasks/framework.rake
267
223
  - lib/tasks/index.rake
268
- - lib/tasks/routes.rake
269
224
  - lib/tasks/server.rake
270
225
  - lib/tasks/statistics.rake
271
226
  - lib/tasks/todo.rake
@@ -288,12 +243,8 @@ files:
288
243
  - spec/functional/regression_spec.rb
289
244
  - spec/functional/speed_spec.rb
290
245
  - spec/functional/terminate_early_spec.rb
291
- - spec/lib/adapters/rack/base_spec.rb
292
- - spec/lib/adapters/rack/live_parameters_spec.rb
293
- - spec/lib/adapters/rack/query_spec.rb
294
246
  - spec/lib/analytics_spec.rb
295
247
  - spec/lib/analyzer_spec.rb
296
- - spec/lib/application_spec.rb
297
248
  - spec/lib/backends/backend_spec.rb
298
249
  - spec/lib/backends/file/basic_spec.rb
299
250
  - spec/lib/backends/file_spec.rb
@@ -316,6 +267,7 @@ files:
316
267
  - spec/lib/bundling_spec.rb
317
268
  - spec/lib/calculations/location_spec.rb
318
269
  - spec/lib/categories_indexed_spec.rb
270
+ - spec/lib/category/location_spec.rb
319
271
  - spec/lib/category_indexed_spec.rb
320
272
  - spec/lib/category_indexing_spec.rb
321
273
  - spec/lib/category_spec.rb
@@ -326,7 +278,6 @@ files:
326
278
  - spec/lib/extensions/object_spec.rb
327
279
  - spec/lib/extensions/string_spec.rb
328
280
  - spec/lib/extensions/symbol_spec.rb
329
- - spec/lib/frontend_adapters/rack_spec.rb
330
281
  - spec/lib/generators/aliases_spec.rb
331
282
  - spec/lib/generators/cacher_strategy_spec.rb
332
283
  - spec/lib/generators/partial/default_spec.rb
@@ -360,7 +311,8 @@ files:
360
311
  - spec/lib/indexes_spec.rb
361
312
  - spec/lib/indexing/bundle_partial_generation_speed_spec.rb
362
313
  - spec/lib/indexing/bundle_spec.rb
363
- - spec/lib/interfaces/live_parameters_spec.rb
314
+ - spec/lib/interfaces/live_parameters/master_child_spec.rb
315
+ - spec/lib/interfaces/live_parameters/unicorn_spec.rb
364
316
  - spec/lib/loader_spec.rb
365
317
  - spec/lib/query/allocation_spec.rb
366
318
  - spec/lib/query/allocations_spec.rb
@@ -380,12 +332,6 @@ files:
380
332
  - spec/lib/search_spec.rb
381
333
  - spec/lib/sinatra_spec.rb
382
334
  - spec/lib/solr/schema_generator_spec.rb
383
- - spec/lib/sources/base_spec.rb
384
- - spec/lib/sources/couch_spec.rb
385
- - spec/lib/sources/csv_spec.rb
386
- - spec/lib/sources/db_spec.rb
387
- - spec/lib/sources/delicious_spec.rb
388
- - spec/lib/sources/mongo_spec.rb
389
335
  - spec/lib/statistics_spec.rb
390
336
  - spec/lib/tasks/try_spec.rb
391
337
  - spec/lib/tokenizer_spec.rb
@@ -432,12 +378,8 @@ test_files:
432
378
  - spec/functional/regression_spec.rb
433
379
  - spec/functional/speed_spec.rb
434
380
  - spec/functional/terminate_early_spec.rb
435
- - spec/lib/adapters/rack/base_spec.rb
436
- - spec/lib/adapters/rack/live_parameters_spec.rb
437
- - spec/lib/adapters/rack/query_spec.rb
438
381
  - spec/lib/analytics_spec.rb
439
382
  - spec/lib/analyzer_spec.rb
440
- - spec/lib/application_spec.rb
441
383
  - spec/lib/backends/backend_spec.rb
442
384
  - spec/lib/backends/file/basic_spec.rb
443
385
  - spec/lib/backends/file_spec.rb
@@ -460,6 +402,7 @@ test_files:
460
402
  - spec/lib/bundling_spec.rb
461
403
  - spec/lib/calculations/location_spec.rb
462
404
  - spec/lib/categories_indexed_spec.rb
405
+ - spec/lib/category/location_spec.rb
463
406
  - spec/lib/category_indexed_spec.rb
464
407
  - spec/lib/category_indexing_spec.rb
465
408
  - spec/lib/category_spec.rb
@@ -470,7 +413,6 @@ test_files:
470
413
  - spec/lib/extensions/object_spec.rb
471
414
  - spec/lib/extensions/string_spec.rb
472
415
  - spec/lib/extensions/symbol_spec.rb
473
- - spec/lib/frontend_adapters/rack_spec.rb
474
416
  - spec/lib/generators/aliases_spec.rb
475
417
  - spec/lib/generators/cacher_strategy_spec.rb
476
418
  - spec/lib/generators/partial/default_spec.rb
@@ -504,7 +446,8 @@ test_files:
504
446
  - spec/lib/indexes_spec.rb
505
447
  - spec/lib/indexing/bundle_partial_generation_speed_spec.rb
506
448
  - spec/lib/indexing/bundle_spec.rb
507
- - spec/lib/interfaces/live_parameters_spec.rb
449
+ - spec/lib/interfaces/live_parameters/master_child_spec.rb
450
+ - spec/lib/interfaces/live_parameters/unicorn_spec.rb
508
451
  - spec/lib/loader_spec.rb
509
452
  - spec/lib/query/allocation_spec.rb
510
453
  - spec/lib/query/allocations_spec.rb
@@ -524,12 +467,6 @@ test_files:
524
467
  - spec/lib/search_spec.rb
525
468
  - spec/lib/sinatra_spec.rb
526
469
  - spec/lib/solr/schema_generator_spec.rb
527
- - spec/lib/sources/base_spec.rb
528
- - spec/lib/sources/couch_spec.rb
529
- - spec/lib/sources/csv_spec.rb
530
- - spec/lib/sources/db_spec.rb
531
- - spec/lib/sources/delicious_spec.rb
532
- - spec/lib/sources/mongo_spec.rb
533
470
  - spec/lib/statistics_spec.rb
534
471
  - spec/lib/tasks/try_spec.rb
535
472
  - spec/lib/tokenizer_spec.rb
@@ -1,34 +0,0 @@
1
- module Picky
2
-
3
- module Adapters
4
-
5
- # This is an adapter that is plugged into a Rack outlet.
6
- #
7
- # It looks at what is given to it and generate an appropriate
8
- # adapter for it.
9
- #
10
- # For example, if you give it a query, it will extract the query param etc.
11
- # and call search on it if it is called by Rack.
12
- #
13
- # Usage:
14
- # Adapters::Rack.app_for(thing, options)
15
- #
16
- module Rack
17
-
18
- # Generates the appropriate app for Rack.
19
- #
20
- @@mapping = {
21
- :search => Search,
22
- :parameters => LiveParameters
23
- }
24
- def self.app_for thing, options = {}
25
- @@mapping.each_pair do |method, adapter|
26
- return adapter.new(thing).to_app(options) if thing.respond_to?(method)
27
- end
28
- end
29
-
30
- end
31
-
32
- end
33
-
34
- end
@@ -1,27 +0,0 @@
1
- module Picky
2
-
3
- module Adapters
4
- # Adapter that is plugged into a Rack outlet.
5
- #
6
- module Rack
7
-
8
- # Subclasses of this class should respond to
9
- # * to_app(options)
10
- #
11
- class Base
12
-
13
- # Puts together an appropriately structured Rack response.
14
- #
15
- # Note: Bytesize is needed to have special characters not trip up Rack.
16
- #
17
- def respond_with response, content_type = 'application/json'
18
- [200, { 'Content-Type' => content_type, 'Content-Length' => response.bytesize.to_s }, [response]]
19
- end
20
-
21
- end
22
-
23
- end
24
-
25
- end
26
-
27
- end
@@ -1,37 +0,0 @@
1
- module Picky
2
-
3
- module Adapters
4
-
5
- #
6
- #
7
- module Rack
8
-
9
- class LiveParameters < Base
10
-
11
- def initialize live_parameters
12
- @live_parameters = live_parameters
13
- end
14
-
15
- #
16
- #
17
- def to_app options = {}
18
- # For capturing by the lambda block.
19
- #
20
- live_parameters = @live_parameters
21
-
22
- lambda do |env|
23
- params = ::Rack::Request.new(env).params
24
-
25
- results = live_parameters.parameters params
26
-
27
- respond_with results.to_json
28
- end
29
- end
30
-
31
- end
32
-
33
- end
34
-
35
- end
36
-
37
- end