picky 4.0.0pre2 → 4.0.0pre3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. data/aux/picky/cli.rb +1 -1
  2. data/lib/picky/backends/backend.rb +0 -16
  3. data/lib/picky/backends/file.rb +5 -10
  4. data/lib/picky/backends/memory.rb +5 -10
  5. data/lib/picky/backends/redis/basic.rb +3 -3
  6. data/lib/picky/backends/redis/list.rb +5 -6
  7. data/lib/picky/backends/redis/string.rb +1 -1
  8. data/lib/picky/backends/redis.rb +24 -27
  9. data/lib/picky/backends/sqlite/basic.rb +4 -4
  10. data/lib/picky/backends/sqlite.rb +7 -13
  11. data/lib/picky/bundle.rb +39 -43
  12. data/lib/picky/bundle_indexed.rb +17 -2
  13. data/lib/picky/bundle_indexing.rb +1 -26
  14. data/lib/picky/bundle_realtime.rb +2 -6
  15. data/lib/picky/category_indexing.rb +2 -2
  16. data/lib/picky/generators/similarity/phonetic.rb +3 -1
  17. data/lib/picky/index_indexing.rb +1 -1
  18. data/lib/picky/indexers/base.rb +5 -4
  19. data/lib/picky/indexers/parallel.rb +3 -3
  20. data/lib/picky/indexers/serial.rb +2 -2
  21. data/lib/picky/wrappers/bundle/location.rb +3 -5
  22. data/spec/functional/backends/redis_bundle_realtime_spec.rb +1 -1
  23. data/spec/functional/backends/redis_spec.rb +29 -6
  24. data/spec/functional/backends/special_spec.rb +229 -0
  25. data/spec/functional/backends/sqlite_bundle_realtime_spec.rb +1 -1
  26. data/spec/functional/backends/sqlite_spec.rb +1 -1
  27. data/spec/lib/backends/backend_spec.rb +40 -24
  28. data/spec/lib/backends/file_spec.rb +25 -25
  29. data/spec/lib/backends/memory_spec.rb +51 -51
  30. data/spec/lib/backends/redis_spec.rb +77 -77
  31. data/spec/lib/backends/sqlite/array_spec.rb +1 -1
  32. data/spec/lib/backends/sqlite_spec.rb +51 -51
  33. data/spec/lib/{indexed/bundle_spec.rb → bundle_indexed_spec.rb} +0 -0
  34. data/spec/lib/{indexing/bundle_spec.rb → bundle_indexing_spec.rb} +2 -9
  35. data/spec/lib/{indexing/bundle_partial_generation_speed_spec.rb → bundle_partial_generation_speed_spec.rb} +0 -0
  36. data/spec/lib/{indexed/bundle_realtime_spec.rb → bundle_realtime_spec.rb} +0 -0
  37. data/spec/lib/category_indexed_spec.rb +2 -2
  38. data/spec/lib/category_spec.rb +2 -2
  39. data/spec/lib/extensions/object_spec.rb +8 -8
  40. data/spec/lib/generators/similarity/phonetic_spec.rb +13 -7
  41. data/spec/lib/index_spec.rb +16 -0
  42. data/spec/lib/indexers/base_spec.rb +1 -1
  43. metadata +27 -25
@@ -2,83 +2,83 @@ require 'spec_helper'
2
2
 
3
3
  describe Picky::Backends::Redis do
4
4
 
5
- context 'with options' do
6
- before(:each) do
7
- @backend = described_class.new inverted: Picky::Backends::Redis::Float.new(:unimportant, :unimportant),
8
- weights: Picky::Backends::Redis::String.new(:unimportant, :unimportant),
9
- similarity: Picky::Backends::Redis::Float.new(:unimportant, :unimportant),
10
- configuration: Picky::Backends::Redis::List.new(:unimportant, :unimportant)
11
-
12
- @backend.stub! :timed_exclaim
13
- end
14
-
15
- describe "redis_with_scripting?" do
16
- let(:client) { stub :client}
17
- let(:redis) { described_class.new client: client }
18
-
19
- it "answers correctly" do
20
- client.stub! :info => {"redis_version"=>"2.2.2", "redis_git_sha1"=>"00000000", "redis_git_dirty"=>"0", "arch_bits"=>"64", "multiplexing_api"=>"kqueue", "process_id"=>"70364", "uptime_in_seconds"=>"86804", "uptime_in_days"=>"1", "lru_clock"=>"2057342", "used_cpu_sys"=>"12.76", "used_cpu_user"=>"13.44", "used_cpu_sys_childrens"=>"0.62", "used_cpu_user_childrens"=>"0.30", "connected_clients"=>"1", "connected_slaves"=>"0", "client_longest_output_list"=>"0", "client_biggest_input_buf"=>"0", "blocked_clients"=>"0", "used_memory"=>"34389632", "used_memory_human"=>"32.80M", "used_memory_rss"=>"675840", "mem_fragmentation_ratio"=>"0.02", "use_tcmalloc"=>"0", "loading"=>"0", "aof_enabled"=>"0", "changes_since_last_save"=>"0", "bgsave_in_progress"=>"0", "last_save_time"=>"1320721195", "bgrewriteaof_in_progress"=>"0", "total_connections_received"=>"20", "total_commands_processed"=>"327594", "expired_keys"=>"0", "evicted_keys"=>"0", "keyspace_hits"=>"218584", "keyspace_misses"=>"98664", "hash_max_zipmap_entries"=>"512", "hash_max_zipmap_value"=>"64", "pubsub_channels"=>"0", "pubsub_patterns"=>"0", "vm_enabled"=>"0", "role"=>"master", "allocation_stats"=>"2=74,6=1,8=15,9=156,10=142939,11=104891,12=290902,13=263791,14=14570,15=29143,16=1661979,17=8986,18=6370,19=4508,20=18010,21=1622,22=1136,23=544,24=419271,25=154,26=73,27=32,28=30,29=14,32=419046,33=6,34=7,35=15,36=10,37=12,38=625,39=7127,40=207716,41=40840,42=7246,43=2645,44=28390,45=37835,46=35164,47=67465,48=54765,49=41247,50=44391,51=36420,52=29582,53=21491,54=18575,55=14101,56=61954,57=5476,58=3246,59=2227,60=1502,61=868,62=541,63=282,64=69006,65=87,66=58,67=32,68=30,69=6,70=2,71=5,72=12723,74=19,75=2,76=13,77=6,80=12500,81=10,82=4,83=8,84=10,85=14,86=5,87=37,88=97714,89=58,91=30,93=68,94=14,95=35,97=56,99=46,101=24,103=17,104=846,105=1,106=15,107=19,109=4,110=6,111=13,113=8,114=8,115=4,116=5,117=8,118=11,119=4,120=217,121=18,122=6,125=5,126=12,128=4411,131=12,133=8,136=57,137=14,138=10,142=6,143=4,145=6,147=14,150=4,152=23,153=6,157=4,158=6,159=14,163=8,164=18,166=4,168=6,169=1,170=16,171=27,173=7,174=10,175=31,177=14,178=6,179=13,181=39,182=4,183=12,184=7,185=42,187=16,189=69,191=22,193=17,195=8,196=16,197=23,199=20,201=23,203=12,205=4,206=16,207=6,208=4,209=10,211=1,213=8,215=4,216=10,217=4,218=14,219=10,221=14,223=4,225=8,226=6,227=4,228=10,230=10,232=6,234=6,237=4,238=6,239=8,240=6,241=4,242=6,245=6,248=4,249=16,250=6,252=4,253=4,>=256=113463", "db15"=>"keys=26605,expires=0"}
21
-
22
- redis.redis_with_scripting?.should == false
23
- end
24
- it "answers correctly" do
25
- client.stub! :info => {"redis_version"=>"2.6.0", "redis_git_sha1"=>"00000000", "redis_git_dirty"=>"0", "arch_bits"=>"64", "multiplexing_api"=>"kqueue", "process_id"=>"70364", "uptime_in_seconds"=>"86804", "uptime_in_days"=>"1", "lru_clock"=>"2057342", "used_cpu_sys"=>"12.76", "used_cpu_user"=>"13.44", "used_cpu_sys_childrens"=>"0.62", "used_cpu_user_childrens"=>"0.30", "connected_clients"=>"1", "connected_slaves"=>"0", "client_longest_output_list"=>"0", "client_biggest_input_buf"=>"0", "blocked_clients"=>"0", "used_memory"=>"34389632", "used_memory_human"=>"32.80M", "used_memory_rss"=>"675840", "mem_fragmentation_ratio"=>"0.02", "use_tcmalloc"=>"0", "loading"=>"0", "aof_enabled"=>"0", "changes_since_last_save"=>"0", "bgsave_in_progress"=>"0", "last_save_time"=>"1320721195", "bgrewriteaof_in_progress"=>"0", "total_connections_received"=>"20", "total_commands_processed"=>"327594", "expired_keys"=>"0", "evicted_keys"=>"0", "keyspace_hits"=>"218584", "keyspace_misses"=>"98664", "hash_max_zipmap_entries"=>"512", "hash_max_zipmap_value"=>"64", "pubsub_channels"=>"0", "pubsub_patterns"=>"0", "vm_enabled"=>"0", "role"=>"master", "allocation_stats"=>"2=74,6=1,8=15,9=156,10=142939,11=104891,12=290902,13=263791,14=14570,15=29143,16=1661979,17=8986,18=6370,19=4508,20=18010,21=1622,22=1136,23=544,24=419271,25=154,26=73,27=32,28=30,29=14,32=419046,33=6,34=7,35=15,36=10,37=12,38=625,39=7127,40=207716,41=40840,42=7246,43=2645,44=28390,45=37835,46=35164,47=67465,48=54765,49=41247,50=44391,51=36420,52=29582,53=21491,54=18575,55=14101,56=61954,57=5476,58=3246,59=2227,60=1502,61=868,62=541,63=282,64=69006,65=87,66=58,67=32,68=30,69=6,70=2,71=5,72=12723,74=19,75=2,76=13,77=6,80=12500,81=10,82=4,83=8,84=10,85=14,86=5,87=37,88=97714,89=58,91=30,93=68,94=14,95=35,97=56,99=46,101=24,103=17,104=846,105=1,106=15,107=19,109=4,110=6,111=13,113=8,114=8,115=4,116=5,117=8,118=11,119=4,120=217,121=18,122=6,125=5,126=12,128=4411,131=12,133=8,136=57,137=14,138=10,142=6,143=4,145=6,147=14,150=4,152=23,153=6,157=4,158=6,159=14,163=8,164=18,166=4,168=6,169=1,170=16,171=27,173=7,174=10,175=31,177=14,178=6,179=13,181=39,182=4,183=12,184=7,185=42,187=16,189=69,191=22,193=17,195=8,196=16,197=23,199=20,201=23,203=12,205=4,206=16,207=6,208=4,209=10,211=1,213=8,215=4,216=10,217=4,218=14,219=10,221=14,223=4,225=8,226=6,227=4,228=10,230=10,232=6,234=6,237=4,238=6,239=8,240=6,241=4,242=6,245=6,248=4,249=16,250=6,252=4,253=4,>=256=113463", "db15"=>"keys=26605,expires=0"}
26
-
27
- redis.redis_with_scripting?.should == true
28
- end
29
- it "answers correctly" do
30
- client.stub! :info => {:redis_version=>"2.2.2", "redis_git_sha1"=>"00000000", "redis_git_dirty"=>"0", "arch_bits"=>"64", "multiplexing_api"=>"kqueue", "process_id"=>"70364", "uptime_in_seconds"=>"86804", "uptime_in_days"=>"1", "lru_clock"=>"2057342", "used_cpu_sys"=>"12.76", "used_cpu_user"=>"13.44", "used_cpu_sys_childrens"=>"0.62", "used_cpu_user_childrens"=>"0.30", "connected_clients"=>"1", "connected_slaves"=>"0", "client_longest_output_list"=>"0", "client_biggest_input_buf"=>"0", "blocked_clients"=>"0", "used_memory"=>"34389632", "used_memory_human"=>"32.80M", "used_memory_rss"=>"675840", "mem_fragmentation_ratio"=>"0.02", "use_tcmalloc"=>"0", "loading"=>"0", "aof_enabled"=>"0", "changes_since_last_save"=>"0", "bgsave_in_progress"=>"0", "last_save_time"=>"1320721195", "bgrewriteaof_in_progress"=>"0", "total_connections_received"=>"20", "total_commands_processed"=>"327594", "expired_keys"=>"0", "evicted_keys"=>"0", "keyspace_hits"=>"218584", "keyspace_misses"=>"98664", "hash_max_zipmap_entries"=>"512", "hash_max_zipmap_value"=>"64", "pubsub_channels"=>"0", "pubsub_patterns"=>"0", "vm_enabled"=>"0", "role"=>"master", "allocation_stats"=>"2=74,6=1,8=15,9=156,10=142939,11=104891,12=290902,13=263791,14=14570,15=29143,16=1661979,17=8986,18=6370,19=4508,20=18010,21=1622,22=1136,23=544,24=419271,25=154,26=73,27=32,28=30,29=14,32=419046,33=6,34=7,35=15,36=10,37=12,38=625,39=7127,40=207716,41=40840,42=7246,43=2645,44=28390,45=37835,46=35164,47=67465,48=54765,49=41247,50=44391,51=36420,52=29582,53=21491,54=18575,55=14101,56=61954,57=5476,58=3246,59=2227,60=1502,61=868,62=541,63=282,64=69006,65=87,66=58,67=32,68=30,69=6,70=2,71=5,72=12723,74=19,75=2,76=13,77=6,80=12500,81=10,82=4,83=8,84=10,85=14,86=5,87=37,88=97714,89=58,91=30,93=68,94=14,95=35,97=56,99=46,101=24,103=17,104=846,105=1,106=15,107=19,109=4,110=6,111=13,113=8,114=8,115=4,116=5,117=8,118=11,119=4,120=217,121=18,122=6,125=5,126=12,128=4411,131=12,133=8,136=57,137=14,138=10,142=6,143=4,145=6,147=14,150=4,152=23,153=6,157=4,158=6,159=14,163=8,164=18,166=4,168=6,169=1,170=16,171=27,173=7,174=10,175=31,177=14,178=6,179=13,181=39,182=4,183=12,184=7,185=42,187=16,189=69,191=22,193=17,195=8,196=16,197=23,199=20,201=23,203=12,205=4,206=16,207=6,208=4,209=10,211=1,213=8,215=4,216=10,217=4,218=14,219=10,221=14,223=4,225=8,226=6,227=4,228=10,230=10,232=6,234=6,237=4,238=6,239=8,240=6,241=4,242=6,245=6,248=4,249=16,250=6,252=4,253=4,>=256=113463", "db15"=>"keys=26605,expires=0"}
31
-
32
- redis.redis_with_scripting?.should == false
33
- end
34
- it "answers correctly" do
35
- client.stub! :info => {:redis_version=>"2.6.0", "redis_git_sha1"=>"00000000", "redis_git_dirty"=>"0", "arch_bits"=>"64", "multiplexing_api"=>"kqueue", "process_id"=>"70364", "uptime_in_seconds"=>"86804", "uptime_in_days"=>"1", "lru_clock"=>"2057342", "used_cpu_sys"=>"12.76", "used_cpu_user"=>"13.44", "used_cpu_sys_childrens"=>"0.62", "used_cpu_user_childrens"=>"0.30", "connected_clients"=>"1", "connected_slaves"=>"0", "client_longest_output_list"=>"0", "client_biggest_input_buf"=>"0", "blocked_clients"=>"0", "used_memory"=>"34389632", "used_memory_human"=>"32.80M", "used_memory_rss"=>"675840", "mem_fragmentation_ratio"=>"0.02", "use_tcmalloc"=>"0", "loading"=>"0", "aof_enabled"=>"0", "changes_since_last_save"=>"0", "bgsave_in_progress"=>"0", "last_save_time"=>"1320721195", "bgrewriteaof_in_progress"=>"0", "total_connections_received"=>"20", "total_commands_processed"=>"327594", "expired_keys"=>"0", "evicted_keys"=>"0", "keyspace_hits"=>"218584", "keyspace_misses"=>"98664", "hash_max_zipmap_entries"=>"512", "hash_max_zipmap_value"=>"64", "pubsub_channels"=>"0", "pubsub_patterns"=>"0", "vm_enabled"=>"0", "role"=>"master", "allocation_stats"=>"2=74,6=1,8=15,9=156,10=142939,11=104891,12=290902,13=263791,14=14570,15=29143,16=1661979,17=8986,18=6370,19=4508,20=18010,21=1622,22=1136,23=544,24=419271,25=154,26=73,27=32,28=30,29=14,32=419046,33=6,34=7,35=15,36=10,37=12,38=625,39=7127,40=207716,41=40840,42=7246,43=2645,44=28390,45=37835,46=35164,47=67465,48=54765,49=41247,50=44391,51=36420,52=29582,53=21491,54=18575,55=14101,56=61954,57=5476,58=3246,59=2227,60=1502,61=868,62=541,63=282,64=69006,65=87,66=58,67=32,68=30,69=6,70=2,71=5,72=12723,74=19,75=2,76=13,77=6,80=12500,81=10,82=4,83=8,84=10,85=14,86=5,87=37,88=97714,89=58,91=30,93=68,94=14,95=35,97=56,99=46,101=24,103=17,104=846,105=1,106=15,107=19,109=4,110=6,111=13,113=8,114=8,115=4,116=5,117=8,118=11,119=4,120=217,121=18,122=6,125=5,126=12,128=4411,131=12,133=8,136=57,137=14,138=10,142=6,143=4,145=6,147=14,150=4,152=23,153=6,157=4,158=6,159=14,163=8,164=18,166=4,168=6,169=1,170=16,171=27,173=7,174=10,175=31,177=14,178=6,179=13,181=39,182=4,183=12,184=7,185=42,187=16,189=69,191=22,193=17,195=8,196=16,197=23,199=20,201=23,203=12,205=4,206=16,207=6,208=4,209=10,211=1,213=8,215=4,216=10,217=4,218=14,219=10,221=14,223=4,225=8,226=6,227=4,228=10,230=10,232=6,234=6,237=4,238=6,239=8,240=6,241=4,242=6,245=6,248=4,249=16,250=6,252=4,253=4,>=256=113463", "db15"=>"keys=26605,expires=0"}
36
-
37
- redis.redis_with_scripting?.should == true
38
- end
39
- end
40
-
41
- describe 'create_...' do
42
- [
43
- [:inverted, Picky::Backends::Redis::Float],
44
- [:weights, Picky::Backends::Redis::String],
45
- [:similarity, Picky::Backends::Redis::Float],
46
- [:configuration, Picky::Backends::Redis::List]
47
- ].each do |type, kind|
48
- it "creates and returns a(n) #{type} index" do
49
- @backend.send(:"create_#{type}",
50
- stub(type, :identifier => "some_identifier:#{type}")
51
- ).should be_kind_of(kind)
52
- end
53
- end
54
- end
55
- end
56
-
57
- context 'with lambda options' do
58
- before(:each) do
59
- @backend = described_class.new inverted: ->(bundle, client){ Picky::Backends::Redis::Float.new(client, bundle.identifier(:inverted)) },
60
- weights: ->(bundle, client){ Picky::Backends::Redis::String.new(client, bundle.identifier(:weights)) },
61
- similarity: ->(bundle, client){ Picky::Backends::Redis::Float.new(client, bundle.identifier(:similarity)) },
62
- configuration: ->(bundle, client){ Picky::Backends::Redis::List.new(client, bundle.identifier(:configuration)) }
63
-
64
- @backend.stub! :timed_exclaim
65
- end
66
-
67
- describe 'create_...' do
68
- [
69
- [:inverted, Picky::Backends::Redis::Float],
70
- [:weights, Picky::Backends::Redis::String],
71
- [:similarity, Picky::Backends::Redis::Float],
72
- [:configuration, Picky::Backends::Redis::List]
73
- ].each do |type, kind|
74
- it "creates and returns a(n) #{type} index" do
75
- to_a_able_stub = Object.new
76
- to_a_able_stub.stub! :identifier => "some_identifier:#{type}"
77
- @backend.send(:"create_#{type}", to_a_able_stub).should be_kind_of(kind)
78
- end
79
- end
80
- end
81
- end
5
+ # context 'with options' do
6
+ # before(:each) do
7
+ # @backend = described_class.new inverted: Picky::Backends::Redis::Float.new(:unimportant, :unimportant),
8
+ # weights: Picky::Backends::Redis::String.new(:unimportant, :unimportant),
9
+ # similarity: Picky::Backends::Redis::Float.new(:unimportant, :unimportant),
10
+ # configuration: Picky::Backends::Redis::List.new(:unimportant, :unimportant)
11
+ #
12
+ # @backend.stub! :timed_exclaim
13
+ # end
14
+ #
15
+ # describe "redis_with_scripting?" do
16
+ # let(:client) { stub :client}
17
+ # let(:redis) { described_class.new client: client }
18
+ #
19
+ # it "answers correctly" do
20
+ # client.stub! :info => {"redis_version"=>"2.2.2", "redis_git_sha1"=>"00000000", "redis_git_dirty"=>"0", "arch_bits"=>"64", "multiplexing_api"=>"kqueue", "process_id"=>"70364", "uptime_in_seconds"=>"86804", "uptime_in_days"=>"1", "lru_clock"=>"2057342", "used_cpu_sys"=>"12.76", "used_cpu_user"=>"13.44", "used_cpu_sys_childrens"=>"0.62", "used_cpu_user_childrens"=>"0.30", "connected_clients"=>"1", "connected_slaves"=>"0", "client_longest_output_list"=>"0", "client_biggest_input_buf"=>"0", "blocked_clients"=>"0", "used_memory"=>"34389632", "used_memory_human"=>"32.80M", "used_memory_rss"=>"675840", "mem_fragmentation_ratio"=>"0.02", "use_tcmalloc"=>"0", "loading"=>"0", "aof_enabled"=>"0", "changes_since_last_save"=>"0", "bgsave_in_progress"=>"0", "last_save_time"=>"1320721195", "bgrewriteaof_in_progress"=>"0", "total_connections_received"=>"20", "total_commands_processed"=>"327594", "expired_keys"=>"0", "evicted_keys"=>"0", "keyspace_hits"=>"218584", "keyspace_misses"=>"98664", "hash_max_zipmap_entries"=>"512", "hash_max_zipmap_value"=>"64", "pubsub_channels"=>"0", "pubsub_patterns"=>"0", "vm_enabled"=>"0", "role"=>"master", "allocation_stats"=>"2=74,6=1,8=15,9=156,10=142939,11=104891,12=290902,13=263791,14=14570,15=29143,16=1661979,17=8986,18=6370,19=4508,20=18010,21=1622,22=1136,23=544,24=419271,25=154,26=73,27=32,28=30,29=14,32=419046,33=6,34=7,35=15,36=10,37=12,38=625,39=7127,40=207716,41=40840,42=7246,43=2645,44=28390,45=37835,46=35164,47=67465,48=54765,49=41247,50=44391,51=36420,52=29582,53=21491,54=18575,55=14101,56=61954,57=5476,58=3246,59=2227,60=1502,61=868,62=541,63=282,64=69006,65=87,66=58,67=32,68=30,69=6,70=2,71=5,72=12723,74=19,75=2,76=13,77=6,80=12500,81=10,82=4,83=8,84=10,85=14,86=5,87=37,88=97714,89=58,91=30,93=68,94=14,95=35,97=56,99=46,101=24,103=17,104=846,105=1,106=15,107=19,109=4,110=6,111=13,113=8,114=8,115=4,116=5,117=8,118=11,119=4,120=217,121=18,122=6,125=5,126=12,128=4411,131=12,133=8,136=57,137=14,138=10,142=6,143=4,145=6,147=14,150=4,152=23,153=6,157=4,158=6,159=14,163=8,164=18,166=4,168=6,169=1,170=16,171=27,173=7,174=10,175=31,177=14,178=6,179=13,181=39,182=4,183=12,184=7,185=42,187=16,189=69,191=22,193=17,195=8,196=16,197=23,199=20,201=23,203=12,205=4,206=16,207=6,208=4,209=10,211=1,213=8,215=4,216=10,217=4,218=14,219=10,221=14,223=4,225=8,226=6,227=4,228=10,230=10,232=6,234=6,237=4,238=6,239=8,240=6,241=4,242=6,245=6,248=4,249=16,250=6,252=4,253=4,>=256=113463", "db15"=>"keys=26605,expires=0"}
21
+ #
22
+ # redis.redis_with_scripting?.should == false
23
+ # end
24
+ # it "answers correctly" do
25
+ # client.stub! :info => {"redis_version"=>"2.6.0", "redis_git_sha1"=>"00000000", "redis_git_dirty"=>"0", "arch_bits"=>"64", "multiplexing_api"=>"kqueue", "process_id"=>"70364", "uptime_in_seconds"=>"86804", "uptime_in_days"=>"1", "lru_clock"=>"2057342", "used_cpu_sys"=>"12.76", "used_cpu_user"=>"13.44", "used_cpu_sys_childrens"=>"0.62", "used_cpu_user_childrens"=>"0.30", "connected_clients"=>"1", "connected_slaves"=>"0", "client_longest_output_list"=>"0", "client_biggest_input_buf"=>"0", "blocked_clients"=>"0", "used_memory"=>"34389632", "used_memory_human"=>"32.80M", "used_memory_rss"=>"675840", "mem_fragmentation_ratio"=>"0.02", "use_tcmalloc"=>"0", "loading"=>"0", "aof_enabled"=>"0", "changes_since_last_save"=>"0", "bgsave_in_progress"=>"0", "last_save_time"=>"1320721195", "bgrewriteaof_in_progress"=>"0", "total_connections_received"=>"20", "total_commands_processed"=>"327594", "expired_keys"=>"0", "evicted_keys"=>"0", "keyspace_hits"=>"218584", "keyspace_misses"=>"98664", "hash_max_zipmap_entries"=>"512", "hash_max_zipmap_value"=>"64", "pubsub_channels"=>"0", "pubsub_patterns"=>"0", "vm_enabled"=>"0", "role"=>"master", "allocation_stats"=>"2=74,6=1,8=15,9=156,10=142939,11=104891,12=290902,13=263791,14=14570,15=29143,16=1661979,17=8986,18=6370,19=4508,20=18010,21=1622,22=1136,23=544,24=419271,25=154,26=73,27=32,28=30,29=14,32=419046,33=6,34=7,35=15,36=10,37=12,38=625,39=7127,40=207716,41=40840,42=7246,43=2645,44=28390,45=37835,46=35164,47=67465,48=54765,49=41247,50=44391,51=36420,52=29582,53=21491,54=18575,55=14101,56=61954,57=5476,58=3246,59=2227,60=1502,61=868,62=541,63=282,64=69006,65=87,66=58,67=32,68=30,69=6,70=2,71=5,72=12723,74=19,75=2,76=13,77=6,80=12500,81=10,82=4,83=8,84=10,85=14,86=5,87=37,88=97714,89=58,91=30,93=68,94=14,95=35,97=56,99=46,101=24,103=17,104=846,105=1,106=15,107=19,109=4,110=6,111=13,113=8,114=8,115=4,116=5,117=8,118=11,119=4,120=217,121=18,122=6,125=5,126=12,128=4411,131=12,133=8,136=57,137=14,138=10,142=6,143=4,145=6,147=14,150=4,152=23,153=6,157=4,158=6,159=14,163=8,164=18,166=4,168=6,169=1,170=16,171=27,173=7,174=10,175=31,177=14,178=6,179=13,181=39,182=4,183=12,184=7,185=42,187=16,189=69,191=22,193=17,195=8,196=16,197=23,199=20,201=23,203=12,205=4,206=16,207=6,208=4,209=10,211=1,213=8,215=4,216=10,217=4,218=14,219=10,221=14,223=4,225=8,226=6,227=4,228=10,230=10,232=6,234=6,237=4,238=6,239=8,240=6,241=4,242=6,245=6,248=4,249=16,250=6,252=4,253=4,>=256=113463", "db15"=>"keys=26605,expires=0"}
26
+ #
27
+ # redis.redis_with_scripting?.should == true
28
+ # end
29
+ # it "answers correctly" do
30
+ # client.stub! :info => {:redis_version=>"2.2.2", "redis_git_sha1"=>"00000000", "redis_git_dirty"=>"0", "arch_bits"=>"64", "multiplexing_api"=>"kqueue", "process_id"=>"70364", "uptime_in_seconds"=>"86804", "uptime_in_days"=>"1", "lru_clock"=>"2057342", "used_cpu_sys"=>"12.76", "used_cpu_user"=>"13.44", "used_cpu_sys_childrens"=>"0.62", "used_cpu_user_childrens"=>"0.30", "connected_clients"=>"1", "connected_slaves"=>"0", "client_longest_output_list"=>"0", "client_biggest_input_buf"=>"0", "blocked_clients"=>"0", "used_memory"=>"34389632", "used_memory_human"=>"32.80M", "used_memory_rss"=>"675840", "mem_fragmentation_ratio"=>"0.02", "use_tcmalloc"=>"0", "loading"=>"0", "aof_enabled"=>"0", "changes_since_last_save"=>"0", "bgsave_in_progress"=>"0", "last_save_time"=>"1320721195", "bgrewriteaof_in_progress"=>"0", "total_connections_received"=>"20", "total_commands_processed"=>"327594", "expired_keys"=>"0", "evicted_keys"=>"0", "keyspace_hits"=>"218584", "keyspace_misses"=>"98664", "hash_max_zipmap_entries"=>"512", "hash_max_zipmap_value"=>"64", "pubsub_channels"=>"0", "pubsub_patterns"=>"0", "vm_enabled"=>"0", "role"=>"master", "allocation_stats"=>"2=74,6=1,8=15,9=156,10=142939,11=104891,12=290902,13=263791,14=14570,15=29143,16=1661979,17=8986,18=6370,19=4508,20=18010,21=1622,22=1136,23=544,24=419271,25=154,26=73,27=32,28=30,29=14,32=419046,33=6,34=7,35=15,36=10,37=12,38=625,39=7127,40=207716,41=40840,42=7246,43=2645,44=28390,45=37835,46=35164,47=67465,48=54765,49=41247,50=44391,51=36420,52=29582,53=21491,54=18575,55=14101,56=61954,57=5476,58=3246,59=2227,60=1502,61=868,62=541,63=282,64=69006,65=87,66=58,67=32,68=30,69=6,70=2,71=5,72=12723,74=19,75=2,76=13,77=6,80=12500,81=10,82=4,83=8,84=10,85=14,86=5,87=37,88=97714,89=58,91=30,93=68,94=14,95=35,97=56,99=46,101=24,103=17,104=846,105=1,106=15,107=19,109=4,110=6,111=13,113=8,114=8,115=4,116=5,117=8,118=11,119=4,120=217,121=18,122=6,125=5,126=12,128=4411,131=12,133=8,136=57,137=14,138=10,142=6,143=4,145=6,147=14,150=4,152=23,153=6,157=4,158=6,159=14,163=8,164=18,166=4,168=6,169=1,170=16,171=27,173=7,174=10,175=31,177=14,178=6,179=13,181=39,182=4,183=12,184=7,185=42,187=16,189=69,191=22,193=17,195=8,196=16,197=23,199=20,201=23,203=12,205=4,206=16,207=6,208=4,209=10,211=1,213=8,215=4,216=10,217=4,218=14,219=10,221=14,223=4,225=8,226=6,227=4,228=10,230=10,232=6,234=6,237=4,238=6,239=8,240=6,241=4,242=6,245=6,248=4,249=16,250=6,252=4,253=4,>=256=113463", "db15"=>"keys=26605,expires=0"}
31
+ #
32
+ # redis.redis_with_scripting?.should == false
33
+ # end
34
+ # it "answers correctly" do
35
+ # client.stub! :info => {:redis_version=>"2.6.0", "redis_git_sha1"=>"00000000", "redis_git_dirty"=>"0", "arch_bits"=>"64", "multiplexing_api"=>"kqueue", "process_id"=>"70364", "uptime_in_seconds"=>"86804", "uptime_in_days"=>"1", "lru_clock"=>"2057342", "used_cpu_sys"=>"12.76", "used_cpu_user"=>"13.44", "used_cpu_sys_childrens"=>"0.62", "used_cpu_user_childrens"=>"0.30", "connected_clients"=>"1", "connected_slaves"=>"0", "client_longest_output_list"=>"0", "client_biggest_input_buf"=>"0", "blocked_clients"=>"0", "used_memory"=>"34389632", "used_memory_human"=>"32.80M", "used_memory_rss"=>"675840", "mem_fragmentation_ratio"=>"0.02", "use_tcmalloc"=>"0", "loading"=>"0", "aof_enabled"=>"0", "changes_since_last_save"=>"0", "bgsave_in_progress"=>"0", "last_save_time"=>"1320721195", "bgrewriteaof_in_progress"=>"0", "total_connections_received"=>"20", "total_commands_processed"=>"327594", "expired_keys"=>"0", "evicted_keys"=>"0", "keyspace_hits"=>"218584", "keyspace_misses"=>"98664", "hash_max_zipmap_entries"=>"512", "hash_max_zipmap_value"=>"64", "pubsub_channels"=>"0", "pubsub_patterns"=>"0", "vm_enabled"=>"0", "role"=>"master", "allocation_stats"=>"2=74,6=1,8=15,9=156,10=142939,11=104891,12=290902,13=263791,14=14570,15=29143,16=1661979,17=8986,18=6370,19=4508,20=18010,21=1622,22=1136,23=544,24=419271,25=154,26=73,27=32,28=30,29=14,32=419046,33=6,34=7,35=15,36=10,37=12,38=625,39=7127,40=207716,41=40840,42=7246,43=2645,44=28390,45=37835,46=35164,47=67465,48=54765,49=41247,50=44391,51=36420,52=29582,53=21491,54=18575,55=14101,56=61954,57=5476,58=3246,59=2227,60=1502,61=868,62=541,63=282,64=69006,65=87,66=58,67=32,68=30,69=6,70=2,71=5,72=12723,74=19,75=2,76=13,77=6,80=12500,81=10,82=4,83=8,84=10,85=14,86=5,87=37,88=97714,89=58,91=30,93=68,94=14,95=35,97=56,99=46,101=24,103=17,104=846,105=1,106=15,107=19,109=4,110=6,111=13,113=8,114=8,115=4,116=5,117=8,118=11,119=4,120=217,121=18,122=6,125=5,126=12,128=4411,131=12,133=8,136=57,137=14,138=10,142=6,143=4,145=6,147=14,150=4,152=23,153=6,157=4,158=6,159=14,163=8,164=18,166=4,168=6,169=1,170=16,171=27,173=7,174=10,175=31,177=14,178=6,179=13,181=39,182=4,183=12,184=7,185=42,187=16,189=69,191=22,193=17,195=8,196=16,197=23,199=20,201=23,203=12,205=4,206=16,207=6,208=4,209=10,211=1,213=8,215=4,216=10,217=4,218=14,219=10,221=14,223=4,225=8,226=6,227=4,228=10,230=10,232=6,234=6,237=4,238=6,239=8,240=6,241=4,242=6,245=6,248=4,249=16,250=6,252=4,253=4,>=256=113463", "db15"=>"keys=26605,expires=0"}
36
+ #
37
+ # redis.redis_with_scripting?.should == true
38
+ # end
39
+ # end
40
+ #
41
+ # describe 'create_...' do
42
+ # [
43
+ # [:inverted, Picky::Backends::Redis::Float],
44
+ # [:weights, Picky::Backends::Redis::String],
45
+ # [:similarity, Picky::Backends::Redis::Float],
46
+ # [:configuration, Picky::Backends::Redis::List]
47
+ # ].each do |type, kind|
48
+ # it "creates and returns a(n) #{type} index" do
49
+ # @backend.send(:"create_#{type}",
50
+ # stub(type, :identifier => "some_identifier:#{type}")
51
+ # ).should be_kind_of(kind)
52
+ # end
53
+ # end
54
+ # end
55
+ # end
56
+
57
+ # context 'with lambda options' do
58
+ # before(:each) do
59
+ # @backend = described_class.new inverted: ->(bundle, client){ Picky::Backends::Redis::Float.new(client, bundle.identifier(:inverted)) },
60
+ # weights: ->(bundle, client){ Picky::Backends::Redis::String.new(client, bundle.identifier(:weights)) },
61
+ # similarity: ->(bundle, client){ Picky::Backends::Redis::Float.new(client, bundle.identifier(:similarity)) },
62
+ # configuration: ->(bundle, client){ Picky::Backends::Redis::List.new(client, bundle.identifier(:configuration)) }
63
+ #
64
+ # @backend.stub! :timed_exclaim
65
+ # end
66
+ #
67
+ # describe 'create_...' do
68
+ # [
69
+ # [:inverted, Picky::Backends::Redis::Float],
70
+ # [:weights, Picky::Backends::Redis::String],
71
+ # [:similarity, Picky::Backends::Redis::Float],
72
+ # [:configuration, Picky::Backends::Redis::List]
73
+ # ].each do |type, kind|
74
+ # it "creates and returns a(n) #{type} index" do
75
+ # to_a_able_stub = Object.new
76
+ # to_a_able_stub.stub! :identifier => "some_identifier:#{type}"
77
+ # @backend.send(:"create_#{type}", to_a_able_stub).should be_kind_of(kind)
78
+ # end
79
+ # end
80
+ # end
81
+ # end
82
82
 
83
83
  context 'without options' do
84
84
  before(:each) do
@@ -73,7 +73,7 @@ describe Picky::Backends::SQLite::Array do
73
73
  end
74
74
 
75
75
  context 'hash-based indexes' do
76
- let(:db) { described_class.new 'some/cache/path/to/file', self_indexed: true }
76
+ let(:db) { described_class.new 'some/cache/path/to/file', realtime: true }
77
77
 
78
78
  describe 'dump' do
79
79
  it 'delegates to the given hash' do
@@ -4,57 +4,57 @@ require 'sqlite3'
4
4
 
5
5
  describe Picky::Backends::SQLite do
6
6
 
7
- context 'with options' do
8
- before(:each) do
9
- @backend = described_class.new inverted: Picky::Backends::SQLite::Value.new(:unimportant),
10
- weights: Picky::Backends::SQLite::Array.new(:unimportant),
11
- similarity: Picky::Backends::SQLite::Value.new(:unimportant),
12
- configuration: Picky::Backends::SQLite::Array.new(:unimportant)
13
-
14
- @backend.stub! :timed_exclaim
15
- end
16
-
17
- describe 'create_...' do
18
- [
19
- [:inverted, Picky::Backends::SQLite::Value],
20
- [:weights, Picky::Backends::SQLite::Array],
21
- [:similarity, Picky::Backends::SQLite::Value],
22
- [:configuration, Picky::Backends::SQLite::Array]
23
- ].each do |type, kind|
24
- it "creates and returns a(n) #{type} index" do
25
- @backend.send(:"create_#{type}",
26
- stub(type, :index_path => "spec/test_directory/index/test/some_index/some_category_some_bundle_#{type}")
27
- ).should be_kind_of(kind)
28
- end
29
- end
30
- end
31
- end
32
-
33
- context 'with lambda options' do
34
- before(:each) do
35
- @backend = described_class.new inverted: ->(bundle){ Picky::Backends::SQLite::Value.new(bundle.index_path(:inverted)) },
36
- weights: ->(bundle){ Picky::Backends::SQLite::Array.new(bundle.index_path(:weights)) },
37
- similarity: ->(bundle){ Picky::Backends::SQLite::Value.new(bundle.index_path(:similarity)) },
38
- configuration: ->(bundle){ Picky::Backends::SQLite::Array.new(bundle.index_path(:configuration)) }
39
-
40
- @backend.stub! :timed_exclaim
41
- end
42
-
43
- describe 'create_...' do
44
- [
45
- [:inverted, Picky::Backends::SQLite::Value],
46
- [:weights, Picky::Backends::SQLite::Array],
47
- [:similarity, Picky::Backends::SQLite::Value],
48
- [:configuration, Picky::Backends::SQLite::Array]
49
- ].each do |type, kind|
50
- it "creates and returns a(n) #{type} index" do
51
- to_a_able_stub = Object.new
52
- to_a_able_stub.stub! :index_path => "spec/test_directory/index/test/some_index/some_category_some_bundle_#{type}"
53
- @backend.send(:"create_#{type}", to_a_able_stub).should be_kind_of(kind)
54
- end
55
- end
56
- end
57
- end
7
+ # context 'with options' do
8
+ # before(:each) do
9
+ # @backend = described_class.new inverted: Picky::Backends::SQLite::Value.new(:unimportant),
10
+ # weights: Picky::Backends::SQLite::Array.new(:unimportant),
11
+ # similarity: Picky::Backends::SQLite::Value.new(:unimportant),
12
+ # configuration: Picky::Backends::SQLite::Array.new(:unimportant)
13
+ #
14
+ # @backend.stub! :timed_exclaim
15
+ # end
16
+ #
17
+ # describe 'create_...' do
18
+ # [
19
+ # [:inverted, Picky::Backends::SQLite::Value],
20
+ # [:weights, Picky::Backends::SQLite::Array],
21
+ # [:similarity, Picky::Backends::SQLite::Value],
22
+ # [:configuration, Picky::Backends::SQLite::Array]
23
+ # ].each do |type, kind|
24
+ # it "creates and returns a(n) #{type} index" do
25
+ # @backend.send(:"create_#{type}",
26
+ # stub(type, :index_path => "spec/test_directory/index/test/some_index/some_category_some_bundle_#{type}")
27
+ # ).should be_kind_of(kind)
28
+ # end
29
+ # end
30
+ # end
31
+ # end
32
+ #
33
+ # context 'with lambda options' do
34
+ # before(:each) do
35
+ # @backend = described_class.new inverted: ->(bundle){ Picky::Backends::SQLite::Value.new(bundle.index_path(:inverted)) },
36
+ # weights: ->(bundle){ Picky::Backends::SQLite::Array.new(bundle.index_path(:weights)) },
37
+ # similarity: ->(bundle){ Picky::Backends::SQLite::Value.new(bundle.index_path(:similarity)) },
38
+ # configuration: ->(bundle){ Picky::Backends::SQLite::Array.new(bundle.index_path(:configuration)) }
39
+ #
40
+ # @backend.stub! :timed_exclaim
41
+ # end
42
+ #
43
+ # describe 'create_...' do
44
+ # [
45
+ # [:inverted, Picky::Backends::SQLite::Value],
46
+ # [:weights, Picky::Backends::SQLite::Array],
47
+ # [:similarity, Picky::Backends::SQLite::Value],
48
+ # [:configuration, Picky::Backends::SQLite::Array]
49
+ # ].each do |type, kind|
50
+ # it "creates and returns a(n) #{type} index" do
51
+ # to_a_able_stub = Object.new
52
+ # to_a_able_stub.stub! :index_path => "spec/test_directory/index/test/some_index/some_category_some_bundle_#{type}"
53
+ # @backend.send(:"create_#{type}", to_a_able_stub).should be_kind_of(kind)
54
+ # end
55
+ # end
56
+ # end
57
+ # end
58
58
 
59
59
  context 'without options' do
60
60
  before(:each) do
@@ -25,7 +25,7 @@ describe Picky::Bundle do
25
25
  bundle.similar(:dragon).should == [:dargon]
26
26
  end
27
27
  it 'returns the right similars' do
28
- bundle.similar(:trkn).should == [:dargon, :dragon]
28
+ bundle.similar(:trkn).should == [:dragon, :dargon]
29
29
  end
30
30
  it 'performs' do
31
31
  performance_of { bundle.similar(:dragon) }.should < 0.000075
@@ -37,13 +37,6 @@ describe Picky::Bundle do
37
37
 
38
38
  describe 'dump' do
39
39
  it 'should trigger dumps' do
40
- bundle.stub! :timed_exclaim
41
-
42
- bundle.should_receive(:dump_inverted).once.with
43
- bundle.should_receive(:dump_weights).once.with
44
- bundle.should_receive(:dump_similarity).once.with
45
- bundle.should_receive(:dump_configuration).once.with
46
-
47
40
  bundle.dump
48
41
  end
49
42
  end
@@ -67,7 +60,7 @@ describe Picky::Bundle do
67
60
  bundle.partial_strategy.should == :some_partial
68
61
  end
69
62
  it 'should initialize the weights strategy correctly' do
70
- bundle.weights_strategy.should == @weights
63
+ bundle.weight_strategy.should == @weights
71
64
  end
72
65
  it 'should initialize the similarity strategy correctly' do
73
66
  bundle.similarity_strategy.should == @similarity
@@ -7,14 +7,14 @@ describe Picky::Category do
7
7
  source []
8
8
  end
9
9
  @partial_strategy = stub :partial, :use_exact_for_partial? => false
10
- @weights_strategy = stub :weights, :saved? => true
10
+ @weight_strategy = stub :weights, :saved? => true
11
11
  @similarity_strategy = stub :similarity
12
12
 
13
13
  @exact = stub :exact, :dump => nil
14
14
  @partial = stub :partial, :dump => nil
15
15
 
16
16
  @category = described_class.new :some_name, @index, :partial => @partial_strategy,
17
- :weights => @weights_strategy,
17
+ :weights => @weight_strategy,
18
18
  :similarity => @similarity_strategy,
19
19
  :qualifiers => [:q, :qualifier]
20
20
 
@@ -6,11 +6,11 @@ describe Picky::Category do
6
6
  let(:category) { described_class.new :some_category, index }
7
7
 
8
8
  it 'should set defaults correctly' do
9
- category.exact.weights_strategy.should == Picky::Generators::Weights::Default
9
+ category.exact.weight_strategy.should == Picky::Generators::Weights::Default
10
10
  category.exact.partial_strategy.should be_kind_of(Picky::Generators::Partial::None)
11
11
  category.exact.similarity_strategy.should == Picky::Generators::Similarity::Default
12
12
 
13
- category.partial.weights_strategy.should be_kind_of(Picky::Generators::Weights::Logarithmic)
13
+ category.partial.weight_strategy.should be_kind_of(Picky::Generators::Weights::Logarithmic)
14
14
  category.partial.partial_strategy.should == Picky::Generators::Partial::Default
15
15
  category.partial.similarity_strategy.should be_kind_of(Picky::Generators::Similarity::None)
16
16
 
@@ -5,14 +5,14 @@ describe Object do
5
5
  context 'basic object' do
6
6
  let(:object) { described_class.new }
7
7
 
8
- describe "exclaim" do
9
- it "delegates to puts" do
10
- STDOUT.should_receive(:puts).once.with :bla
11
- STDOUT.should_receive(:flush).once.with
12
-
13
- object.exclaim :bla
14
- end
15
- end
8
+ # describe "exclaim" do
9
+ # it "delegates to puts" do
10
+ # STDOUT.should_receive(:puts).once.with :bla
11
+ # STDOUT.should_receive(:flush).once.with
12
+ #
13
+ # object.exclaim :bla
14
+ # end
15
+ # end
16
16
 
17
17
  describe "timed_exclaim" do
18
18
  it "should exclaim right" do
@@ -21,48 +21,54 @@ describe Picky::Generators::Similarity::Phonetic do
21
21
  instance.send :initialize
22
22
  end
23
23
 
24
- describe 'sort!' do
24
+ describe 'prioritize!' do
25
25
  let(:phonetic) { described_class.allocate }
26
26
  it 'sorts correctly' do
27
27
  phonetic.instance_variable_set :@amount, 2
28
28
 
29
29
  ary = [:a, :b, :c]
30
- phonetic.sort ary, :b
30
+ phonetic.prioritize! ary, :b
31
+
31
32
  ary.should == [:b, :a]
32
33
  end
33
34
  it 'sorts correctly' do
34
35
  phonetic.instance_variable_set :@amount, 2
35
36
 
36
37
  ary = [:aaa, :aa, :aaaa]
37
- phonetic.sort ary, :aaa
38
+ phonetic.prioritize! ary, :aaa
39
+
38
40
  ary.should == [:aaa, :aa]
39
41
  end
40
42
  it 'sorts correctly' do
41
43
  phonetic.instance_variable_set :@amount, 3
42
44
 
43
45
  ary = [:aaa, :aa, :aaaa]
44
- phonetic.sort ary, :aaa
46
+ phonetic.prioritize! ary, :aaa
47
+
45
48
  ary.should == [:aaa, :aa, :aaaa]
46
49
  end
47
50
  it 'sorts correctly' do
48
51
  phonetic.instance_variable_set :@amount, 3
49
52
 
50
53
  ary = [:aaaaa, :aa, :aaaa]
51
- phonetic.sort ary, :aaa
54
+ phonetic.prioritize! ary, :aaa
55
+
52
56
  ary.should == [:aaaa, :aa, :aaaaa]
53
57
  end
54
58
  it 'sorts correctly' do
55
59
  phonetic.instance_variable_set :@amount, 3
56
60
 
57
61
  ary = [:aaaaa, :aa]
58
- phonetic.sort ary, :aaa
62
+ phonetic.prioritize! ary, :aaa
63
+
59
64
  ary.should == [:aa, :aaaaa]
60
65
  end
61
66
  it 'sorts correctly' do
62
67
  phonetic.instance_variable_set :@amount, 3
63
68
 
64
69
  ary = [:aaa]
65
- phonetic.sort ary, :aaa
70
+ phonetic.prioritize! ary, :aaa
71
+
66
72
  ary.should == [:aaa]
67
73
  end
68
74
  end
@@ -20,6 +20,22 @@ describe Picky::Index do
20
20
  it 'does not fail' do
21
21
  expect { described_class.new :some_index_name do source [] end }.to_not raise_error
22
22
  end
23
+ it 'does not fail' do
24
+ expect { described_class.new :some_index_name do source { [] } end }.to_not raise_error
25
+ end
26
+ it 'evaluates the source every time' do
27
+ expector = stub :expector
28
+
29
+ data = described_class.new :some_index_name do
30
+ source do
31
+ expector.call
32
+ end
33
+ end
34
+
35
+ expector.should_receive(:call).twice.with()
36
+
37
+ data.prepare
38
+ end
23
39
  it 'registers with the indexes' do
24
40
  @api = described_class.allocate
25
41
 
@@ -35,7 +35,7 @@ describe Picky::Indexers::Base do
35
35
  it 'processes' do
36
36
  categories = stub :categories, :empty => nil, :cache => nil
37
37
 
38
- indexer.should_receive(:process).once.with categories, anything
38
+ indexer.should_receive(:process).once.with :some_source, categories, anything
39
39
 
40
40
  indexer.prepare categories
41
41
  end