picky 0.2.3 → 0.2.4
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.
- data/lib/picky/cacher/partial/subtoken.rb +1 -1
- data/lib/picky/configuration/field.rb +5 -2
- data/lib/picky/extensions/hash.rb +3 -1
- data/lib/picky/extensions/object.rb +12 -0
- data/lib/picky/generator.rb +11 -1
- data/lib/picky/index/bundle.rb +10 -8
- data/lib/picky/index/category.rb +5 -15
- data/lib/picky/indexers/base.rb +2 -2
- data/lib/picky/indexers/solr.rb +1 -1
- data/lib/picky/indexes.rb +1 -1
- data/lib/picky/loader.rb +1 -0
- data/lib/picky/query/combination.rb +3 -2
- data/lib/picky/query/qualifiers.rb +1 -1
- data/prototype_project/Gemfile +9 -3
- data/prototype_project/Gemfile.lock +33 -0
- data/prototype_project/Rakefile +11 -1
- data/prototype_project/app/application.rb +4 -7
- data/prototype_project/app/db.yml +3 -0
- data/prototype_project/config.ru +6 -5
- data/prototype_project/unicorn.ru +4 -0
- data/spec/lib/cacher/partial/subtoken_spec.rb +2 -2
- data/spec/lib/configuration/field_spec.rb +49 -0
- data/spec/lib/extensions/object_spec.rb +26 -0
- data/spec/lib/extensions/symbol_spec.rb +1 -1
- data/spec/lib/index/bundle_spec.rb +7 -7
- data/spec/lib/query/qualifiers_spec.rb +1 -1
- metadata +9 -3
@@ -74,7 +74,7 @@ module Cacher
|
|
74
74
|
index.each_key do |token|
|
75
75
|
i += 1
|
76
76
|
if i == 5000
|
77
|
-
|
77
|
+
timed_exclaim "Generating partial tokens for token #{token}. This appears every 5000 tokens."
|
78
78
|
i = 0
|
79
79
|
end
|
80
80
|
generate_for token, index, result
|
@@ -7,7 +7,7 @@ module Configuration
|
|
7
7
|
attr_reader :name, :indexed_name, :virtual
|
8
8
|
attr_accessor :type # convenience
|
9
9
|
def initialize name, options = {}
|
10
|
-
@name = name
|
10
|
+
@name = name.to_sym
|
11
11
|
|
12
12
|
# TODO Dup the options?
|
13
13
|
# TODO add source as option
|
@@ -18,7 +18,7 @@ module Configuration
|
|
18
18
|
@indexed_name = options.delete(:indexed_field) || name # TODO Rename to indexed_as?
|
19
19
|
@virtual = options.delete(:virtual) || false
|
20
20
|
|
21
|
-
qualifiers = options
|
21
|
+
qualifiers = generate_qualifiers_from options
|
22
22
|
Query::Qualifiers.add(name, qualifiers) if qualifiers
|
23
23
|
|
24
24
|
# @remove = options[:remove] || false
|
@@ -26,6 +26,9 @@ module Configuration
|
|
26
26
|
|
27
27
|
@options = options
|
28
28
|
end
|
29
|
+
def generate_qualifiers_from options
|
30
|
+
options[:qualifiers] || options[:qualifier] && [options[:qualifier]] || [name]
|
31
|
+
end
|
29
32
|
def source
|
30
33
|
@source || type.source
|
31
34
|
end
|
@@ -7,7 +7,9 @@ class Hash
|
|
7
7
|
# TODO Still used? If yes, spec!
|
8
8
|
#
|
9
9
|
def dump_to path
|
10
|
-
File.open(path, 'w:binary')
|
10
|
+
File.open(path, 'w:binary') do |out_file|
|
11
|
+
Yajl::Encoder.encode self, out_file
|
12
|
+
end
|
11
13
|
end
|
12
14
|
|
13
15
|
# Use yajl's encoding.
|
data/lib/picky/generator.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
#
|
1
3
|
require 'fileutils'
|
2
4
|
|
3
5
|
module Picky
|
@@ -67,7 +69,13 @@ module Picky
|
|
67
69
|
exclaim "Setting up Picky project \"#{name}\"."
|
68
70
|
create_target_directory
|
69
71
|
copy_all_files
|
70
|
-
exclaim "\"#{name}\" is a great project name! Have fun :)"
|
72
|
+
exclaim "\"#{name}\" is a great project name! Have fun :)\n"
|
73
|
+
exclaim "Next steps:"
|
74
|
+
exclaim ""
|
75
|
+
exclaim "cd #{name}"
|
76
|
+
exclaim "cat Gemfile # <- Do you need the mysql gem, for example?"
|
77
|
+
exclaim "bundle install"
|
78
|
+
exclaim "rake # <- shows you where Picky needs input from you."
|
71
79
|
end
|
72
80
|
|
73
81
|
#
|
@@ -154,6 +162,8 @@ module Picky
|
|
154
162
|
exclaim "#{entry} \x1b[31mexists\x1b[m, skipping."
|
155
163
|
end
|
156
164
|
|
165
|
+
# TODO Remove?
|
166
|
+
#
|
157
167
|
def exclaim something
|
158
168
|
puts something
|
159
169
|
end
|
data/lib/picky/index/bundle.rb
CHANGED
@@ -50,7 +50,7 @@ module Index
|
|
50
50
|
# Identifier for this bundle.
|
51
51
|
#
|
52
52
|
def identifier
|
53
|
-
"#{name}
|
53
|
+
"#{name}: #{type.name} #{category.name}"
|
54
54
|
end
|
55
55
|
|
56
56
|
# Point to category.
|
@@ -152,7 +152,7 @@ module Index
|
|
152
152
|
# Generates a cache path.
|
153
153
|
#
|
154
154
|
def cache_path text
|
155
|
-
File.join cache_directory, "#{name}_#{text}.
|
155
|
+
File.join cache_directory, "#{name}_#{text}.json"
|
156
156
|
end
|
157
157
|
def index_cache_path
|
158
158
|
cache_path "#{category.name}_index"
|
@@ -172,18 +172,18 @@ module Index
|
|
172
172
|
load_weights
|
173
173
|
end
|
174
174
|
def load_the index_method_name, path
|
175
|
-
self.send "#{index_method_name}=",
|
175
|
+
self.send "#{index_method_name}=", Yajl::Parser.parse(File.open(path, 'r'), :symbolize_keys => true)
|
176
176
|
end
|
177
177
|
def load_index
|
178
|
-
|
178
|
+
timed_exclaim "Loading the index for #{identifier} from the cache."
|
179
179
|
load_the :index, index_cache_path
|
180
180
|
end
|
181
181
|
def load_similarity
|
182
|
-
|
182
|
+
timed_exclaim "Loading the similarity for #{identifier} from the cache."
|
183
183
|
load_the :similarity, similarity_cache_path
|
184
184
|
end
|
185
185
|
def load_weights
|
186
|
-
|
186
|
+
timed_exclaim "Loading the weights for #{identifier} from the cache."
|
187
187
|
load_the :weights, weights_cache_path
|
188
188
|
end
|
189
189
|
|
@@ -195,13 +195,15 @@ module Index
|
|
195
195
|
# * generates derived indexes
|
196
196
|
# * dumps all the indexes into files
|
197
197
|
#
|
198
|
+
# TODO Rename to Source!!!
|
199
|
+
#
|
198
200
|
def generate_caches_from_db
|
199
201
|
cache_from_db_generation_message
|
200
202
|
load_from_index_file
|
201
203
|
generate_caches_from_memory
|
202
204
|
end
|
203
205
|
def cache_from_db_generation_message
|
204
|
-
|
206
|
+
timed_exclaim "CACHE FROM SOURCE #{identifier}."
|
205
207
|
end
|
206
208
|
# Generates derived indexes from the index and dumps.
|
207
209
|
#
|
@@ -212,7 +214,7 @@ module Index
|
|
212
214
|
generate_derived
|
213
215
|
end
|
214
216
|
def cache_from_memory_generation_message
|
215
|
-
|
217
|
+
timed_exclaim "CACHE FROM MEMORY #{identifier}."
|
216
218
|
end
|
217
219
|
|
218
220
|
# Generates the weights and similarity from the main index.
|
data/lib/picky/index/category.rb
CHANGED
@@ -34,19 +34,19 @@ module Index
|
|
34
34
|
end
|
35
35
|
|
36
36
|
def identifier
|
37
|
-
"#{type.name}
|
37
|
+
"#{type.name} #{name}"
|
38
38
|
end
|
39
39
|
|
40
40
|
# Generates all caches for this category.
|
41
41
|
#
|
42
42
|
def generate_caches
|
43
|
-
timed_exclaim "
|
43
|
+
timed_exclaim "LOAD #{identifier}."
|
44
44
|
generate_caches_from_db
|
45
|
-
timed_exclaim "
|
45
|
+
timed_exclaim "PARTIAL #{identifier}."
|
46
46
|
generate_partial
|
47
|
-
timed_exclaim "
|
47
|
+
timed_exclaim "CACHE #{identifier}."
|
48
48
|
generate_caches_from_memory
|
49
|
-
timed_exclaim "
|
49
|
+
timed_exclaim "DUMP #{identifier}."
|
50
50
|
dump_caches
|
51
51
|
end
|
52
52
|
def generate_caches_from_db
|
@@ -62,16 +62,6 @@ module Index
|
|
62
62
|
exact.dump
|
63
63
|
partial.dump
|
64
64
|
end
|
65
|
-
# TODO move to Kernel?
|
66
|
-
#
|
67
|
-
def timed_exclaim text
|
68
|
-
exclaim "#{Time.now}: #{text}"
|
69
|
-
end
|
70
|
-
# TODO move to Kernel?
|
71
|
-
#
|
72
|
-
def exclaim text
|
73
|
-
puts text
|
74
|
-
end
|
75
65
|
|
76
66
|
# Used for testing.
|
77
67
|
#
|
data/lib/picky/indexers/base.rb
CHANGED
@@ -35,7 +35,7 @@ module Indexers
|
|
35
35
|
@field.source || raise_no_source
|
36
36
|
end
|
37
37
|
def raise_no_source
|
38
|
-
raise NoSourceSpecifiedException.new "No source given for
|
38
|
+
raise NoSourceSpecifiedException.new "No source given for index:#{@type.name}, field:#{@field.name}." # TODO field.identifier
|
39
39
|
end
|
40
40
|
|
41
41
|
# Selects the original id (indexed id) and a column to process. The column data is called "token".
|
@@ -61,7 +61,7 @@ module Indexers
|
|
61
61
|
end
|
62
62
|
|
63
63
|
def indexing_message
|
64
|
-
|
64
|
+
timed_exclaim "INDEX #{@type.name}, #{@field.name}" #:#{@field.indexed_name}." # TODO field.identifier
|
65
65
|
end
|
66
66
|
|
67
67
|
end
|
data/lib/picky/indexers/solr.rb
CHANGED
@@ -21,7 +21,7 @@ module Indexers
|
|
21
21
|
# TODO Rewrite such that it works in batches.
|
22
22
|
#
|
23
23
|
def index
|
24
|
-
|
24
|
+
timed_exclaim "Indexing solr for #{type.name}:#{fields.join(', ')}"
|
25
25
|
statement = "SELECT indexed_id, #{fields.join(',')} FROM #{type.snapshot_table_name}"
|
26
26
|
|
27
27
|
# TODO Rewrite.
|
data/lib/picky/indexes.rb
CHANGED
@@ -16,7 +16,7 @@ module Indexes
|
|
16
16
|
|
17
17
|
# Run in parallel.
|
18
18
|
#
|
19
|
-
|
19
|
+
timed_exclaim "Indexing using #{Cores.max_processors} processors."
|
20
20
|
Cores.forked self.fields, :randomly => true do |field|
|
21
21
|
# Reestablish DB connection.
|
22
22
|
#
|
data/lib/picky/loader.rb
CHANGED
@@ -58,10 +58,11 @@ module Query
|
|
58
58
|
[identifier, *@token.to_result]
|
59
59
|
end
|
60
60
|
|
61
|
-
#
|
61
|
+
# Example:
|
62
|
+
# "exact title:Peter*:peter"
|
62
63
|
#
|
63
64
|
def to_s
|
64
|
-
"#{bundle.name}
|
65
|
+
"#{bundle.name} #{to_result.join(':')}"
|
65
66
|
end
|
66
67
|
|
67
68
|
end
|
data/prototype_project/Gemfile
CHANGED
@@ -9,15 +9,21 @@ gem 'rack-mount', '~> 0.6.9'
|
|
9
9
|
gem 'text', '~> 0.2.0'
|
10
10
|
gem 'yajl-ruby', '~> 0.7.8', :require => 'yajl'
|
11
11
|
|
12
|
-
# Should be optional, but isn't yet.
|
12
|
+
# Should be optional, but isn't yet. Sorry.
|
13
13
|
#
|
14
14
|
gem 'activerecord', '~> 2.3.8', :require => 'active_record'
|
15
15
|
|
16
|
-
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
# Optional. Makes rack faster.
|
17
20
|
#
|
18
21
|
gem 'rack_fast_escape', '2009.06.24'
|
19
22
|
|
20
|
-
#
|
23
|
+
# Optional. Use your preferred web server.
|
21
24
|
#
|
22
25
|
gem 'unicorn'
|
26
|
+
|
27
|
+
# Optional. Use your preferred database adapter.
|
28
|
+
#
|
23
29
|
gem 'mysql'
|
@@ -0,0 +1,33 @@
|
|
1
|
+
GEM
|
2
|
+
remote: http://rubygems.org/
|
3
|
+
specs:
|
4
|
+
activerecord (2.3.10)
|
5
|
+
activesupport (= 2.3.10)
|
6
|
+
activesupport (2.3.10)
|
7
|
+
mysql (2.8.1)
|
8
|
+
picky (0.2.3)
|
9
|
+
rack (1.2.1)
|
10
|
+
rack-mount (0.6.13)
|
11
|
+
rack (>= 1.0.0)
|
12
|
+
rack_fast_escape (2009.06.24)
|
13
|
+
url_escape
|
14
|
+
text (0.2.0)
|
15
|
+
unicorn (1.1.4)
|
16
|
+
rack
|
17
|
+
url_escape (2009.06.24)
|
18
|
+
yajl-ruby (0.7.8)
|
19
|
+
|
20
|
+
PLATFORMS
|
21
|
+
ruby
|
22
|
+
|
23
|
+
DEPENDENCIES
|
24
|
+
activerecord (~> 2.3.8)
|
25
|
+
bundler (>= 0.9.26)
|
26
|
+
mysql
|
27
|
+
picky (~> 0.2.0)
|
28
|
+
rack (~> 1.2.1)
|
29
|
+
rack-mount (~> 0.6.9)
|
30
|
+
rack_fast_escape (= 2009.06.24)
|
31
|
+
text (~> 0.2.0)
|
32
|
+
unicorn
|
33
|
+
yajl-ruby (~> 0.7.8)
|
data/prototype_project/Rakefile
CHANGED
@@ -1 +1,11 @@
|
|
1
|
-
require 'picky-tasks'
|
1
|
+
require 'picky-tasks'
|
2
|
+
|
3
|
+
desc "Finds where Picky still needs input from you."
|
4
|
+
task :todo do
|
5
|
+
if system "grep -e 'TO#{}DO.*' -n --color=always -R *"
|
6
|
+
puts "Picky needs a bit of input from you there. Thanks."
|
7
|
+
else
|
8
|
+
puts "Picky seems to be fine (no TO#{}DOs found)."
|
9
|
+
end
|
10
|
+
end
|
11
|
+
task :default => :todo
|
@@ -1,14 +1,11 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
#
|
3
|
-
|
4
|
-
#
|
5
|
-
# Have fun with Picky!
|
6
|
-
#
|
7
|
-
class PickySearch < Application # The App Constant needs to be identical in config.ru.
|
3
|
+
class PickySearch < Application
|
8
4
|
|
9
|
-
#
|
5
|
+
# TODO Adapt the generated example
|
6
|
+
# (a library books finder) to what you need.
|
10
7
|
#
|
11
|
-
#
|
8
|
+
# Check the Wiki http://github.com/floere/picky/wiki for more options.
|
12
9
|
#
|
13
10
|
# Ask me if you have questions or specific requests.
|
14
11
|
#
|
data/prototype_project/config.ru
CHANGED
@@ -16,18 +16,19 @@ require 'picky'
|
|
16
16
|
#
|
17
17
|
Loader.load_application
|
18
18
|
|
19
|
-
# Load the
|
19
|
+
# Load the indexes into the memory.
|
20
20
|
#
|
21
21
|
Indexes.load_from_cache
|
22
22
|
|
23
|
-
# Use Harakiri middleware to kill
|
23
|
+
# Use Harakiri middleware to kill worker child after X requests.
|
24
24
|
#
|
25
|
-
#
|
25
|
+
# Works only with web servers that fork worker children and which
|
26
|
+
# fork new children, like for example Unicorn.
|
26
27
|
#
|
27
|
-
|
28
|
+
Rack::Harakiri.after = 50
|
28
29
|
use Rack::Harakiri
|
29
30
|
|
30
|
-
#
|
31
|
+
# Start accepting requests.
|
31
32
|
#
|
32
33
|
# Note: Needs to be the same constant name as in app/application.rb.
|
33
34
|
#
|
@@ -6,6 +6,10 @@ stdout_path 'log/unicorn.stdout.log'
|
|
6
6
|
timeout 10
|
7
7
|
worker_processes 2
|
8
8
|
|
9
|
+
# After forking, the GC is disabled, because we
|
10
|
+
# kill off the workers after x requests and fork
|
11
|
+
# new ones – so the GC doesn't run.
|
12
|
+
#
|
9
13
|
after_fork do |_, _|
|
10
14
|
GC.disable
|
11
15
|
end
|
@@ -106,7 +106,7 @@ describe Cacher::Partial::Subtoken do
|
|
106
106
|
end
|
107
107
|
end
|
108
108
|
it "should be fast" do
|
109
|
-
performance_of { @cacher.generate_from(@index) }.should < 0.
|
109
|
+
performance_of { @cacher.generate_from(@index) }.should < 0.008
|
110
110
|
end
|
111
111
|
end
|
112
112
|
describe "a bigger example with almost identical symbols" do
|
@@ -118,7 +118,7 @@ describe Cacher::Partial::Subtoken do
|
|
118
118
|
end
|
119
119
|
end
|
120
120
|
it "should be fast" do
|
121
|
-
performance_of { @cacher.generate_from(@index) }.should < 0.
|
121
|
+
performance_of { @cacher.generate_from(@index) }.should < 0.0045
|
122
122
|
end
|
123
123
|
end
|
124
124
|
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
describe "Configuration::Field" do
|
3
|
+
|
4
|
+
context "unit specs" do
|
5
|
+
context "name symbol" do
|
6
|
+
before(:each) do
|
7
|
+
@field = Configuration::Field.new :some_name
|
8
|
+
end
|
9
|
+
describe "generate_qualifiers_from" do
|
10
|
+
context "with qualifiers" do
|
11
|
+
it "uses the qualifiers" do
|
12
|
+
@field.generate_qualifiers_from(:qualifiers => :some_qualifiers).should == :some_qualifiers
|
13
|
+
end
|
14
|
+
end
|
15
|
+
context "without qualifiers" do
|
16
|
+
context "with qualifier" do
|
17
|
+
it "uses the [qualifier]" do
|
18
|
+
@field.generate_qualifiers_from(:qualifier => :some_qualifier).should == [:some_qualifier]
|
19
|
+
end
|
20
|
+
end
|
21
|
+
context "without qualifier" do
|
22
|
+
context "with name" do
|
23
|
+
it "uses the [name]" do
|
24
|
+
@field.generate_qualifiers_from(:nork => :blark).should == [:some_name]
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
context "name string" do
|
32
|
+
before(:each) do
|
33
|
+
@field = Configuration::Field.new 'some_name'
|
34
|
+
end
|
35
|
+
describe "generate_qualifiers_from" do
|
36
|
+
context "without qualifiers" do
|
37
|
+
context "without qualifier" do
|
38
|
+
context "with name" do
|
39
|
+
it "uses the [name]" do
|
40
|
+
@field.generate_qualifiers_from(:nork => :blark).should == [:some_name]
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Object do
|
4
|
+
|
5
|
+
before(:each) do
|
6
|
+
@object = Object.new
|
7
|
+
end
|
8
|
+
|
9
|
+
describe "exclaim" do
|
10
|
+
it "delegates to puts" do
|
11
|
+
@object.should_receive(:puts).once.with :bla
|
12
|
+
|
13
|
+
@object.exclaim :bla
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
describe "timed_exclaim" do
|
18
|
+
it "should exclaim right" do
|
19
|
+
Time.stub! :now => Time.parse('07-03-1977 12:34:56')
|
20
|
+
@object.should_receive(:exclaim).once.with "12:34:56: bla"
|
21
|
+
|
22
|
+
@object.timed_exclaim 'bla'
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
@@ -14,7 +14,7 @@ describe Index::Bundle do
|
|
14
14
|
|
15
15
|
describe 'identifier' do
|
16
16
|
it 'should return a specific identifier' do
|
17
|
-
@index.identifier.should == 'some_name:some_type
|
17
|
+
@index.identifier.should == 'some_name: some_type some_category'
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
@@ -141,7 +141,7 @@ describe Index::Bundle do
|
|
141
141
|
it 'should raise' do
|
142
142
|
lambda do
|
143
143
|
@index.raise_unless_cache_exists
|
144
|
-
end.should raise_error("weights cache for some_name:some_type
|
144
|
+
end.should raise_error("weights cache for some_name: some_type some_category missing.")
|
145
145
|
end
|
146
146
|
end
|
147
147
|
context 'similarity cache missing' do
|
@@ -153,7 +153,7 @@ describe Index::Bundle do
|
|
153
153
|
it 'should raise' do
|
154
154
|
lambda do
|
155
155
|
@index.raise_unless_cache_exists
|
156
|
-
end.should raise_error("similarity cache for some_name:some_type
|
156
|
+
end.should raise_error("similarity cache for some_name: some_type some_category missing.")
|
157
157
|
end
|
158
158
|
end
|
159
159
|
context 'index cache missing' do
|
@@ -165,7 +165,7 @@ describe Index::Bundle do
|
|
165
165
|
it 'should raise' do
|
166
166
|
lambda do
|
167
167
|
@index.raise_unless_cache_exists
|
168
|
-
end.should raise_error("index cache for some_name:some_type
|
168
|
+
end.should raise_error("index cache for some_name: some_type some_category missing.")
|
169
169
|
end
|
170
170
|
end
|
171
171
|
context 'all ok' do
|
@@ -210,17 +210,17 @@ describe Index::Bundle do
|
|
210
210
|
|
211
211
|
describe 'weights_cache_path' do
|
212
212
|
it 'should return the correct file name' do
|
213
|
-
@index.weights_cache_path.should == 'some/search/root/index/test/some_type/some_name_some_category_weights.
|
213
|
+
@index.weights_cache_path.should == 'some/search/root/index/test/some_type/some_name_some_category_weights.json'
|
214
214
|
end
|
215
215
|
end
|
216
216
|
describe 'similarity_cache_path' do
|
217
217
|
it 'should return the correct file name' do
|
218
|
-
@index.similarity_cache_path.should == 'some/search/root/index/test/some_type/some_name_some_category_similarity.
|
218
|
+
@index.similarity_cache_path.should == 'some/search/root/index/test/some_type/some_name_some_category_similarity.json'
|
219
219
|
end
|
220
220
|
end
|
221
221
|
describe 'index_cache_path' do
|
222
222
|
it 'should return the correct file name' do
|
223
|
-
@index.index_cache_path.should == 'some/search/root/index/test/some_type/some_name_some_category_index.
|
223
|
+
@index.index_cache_path.should == 'some/search/root/index/test/some_type/some_name_some_category_index.json'
|
224
224
|
end
|
225
225
|
end
|
226
226
|
|
@@ -3,7 +3,7 @@ require 'spec_helper'
|
|
3
3
|
describe Query::Qualifiers do
|
4
4
|
|
5
5
|
before(:each) do
|
6
|
-
Query::Qualifiers.instance << Query::Qualifier.new(:test1, [
|
6
|
+
Query::Qualifiers.instance << Query::Qualifier.new(:test1, ['t1', 'tt1', 'ttt1'])
|
7
7
|
Query::Qualifiers.instance << Query::Qualifier.new(:test2, [:t2, :tt2, :ttt2])
|
8
8
|
Query::Qualifiers.instance << Query::Qualifier.new(:test3, [:t3, :tt3, :ttt3])
|
9
9
|
Query::Qualifiers.instance.prepare
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 2
|
8
|
-
-
|
9
|
-
version: 0.2.
|
8
|
+
- 4
|
9
|
+
version: 0.2.4
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Florian Hanke
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-10-
|
17
|
+
date: 2010-10-24 00:00:00 +02:00
|
18
18
|
default_executable: picky
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -68,6 +68,7 @@ files:
|
|
68
68
|
- lib/picky/extensions/array.rb
|
69
69
|
- lib/picky/extensions/hash.rb
|
70
70
|
- lib/picky/extensions/module.rb
|
71
|
+
- lib/picky/extensions/object.rb
|
71
72
|
- lib/picky/extensions/symbol.rb
|
72
73
|
- lib/picky/generator.rb
|
73
74
|
- lib/picky/helpers/cache.rb
|
@@ -134,6 +135,7 @@ files:
|
|
134
135
|
- prototype_project/app/README
|
135
136
|
- prototype_project/config.ru
|
136
137
|
- prototype_project/Gemfile
|
138
|
+
- prototype_project/Gemfile.lock
|
137
139
|
- prototype_project/log/README
|
138
140
|
- prototype_project/Rakefile
|
139
141
|
- prototype_project/script/console
|
@@ -150,11 +152,13 @@ files:
|
|
150
152
|
- spec/lib/cacher/similarity_generator_spec.rb
|
151
153
|
- spec/lib/cacher/weights/logarithmic_spec.rb
|
152
154
|
- spec/lib/cacher/weights_generator_spec.rb
|
155
|
+
- spec/lib/configuration/field_spec.rb
|
153
156
|
- spec/lib/configuration/type_spec.rb
|
154
157
|
- spec/lib/cores_spec.rb
|
155
158
|
- spec/lib/extensions/array_spec.rb
|
156
159
|
- spec/lib/extensions/hash_spec.rb
|
157
160
|
- spec/lib/extensions/module_spec.rb
|
161
|
+
- spec/lib/extensions/object_spec.rb
|
158
162
|
- spec/lib/extensions/symbol_spec.rb
|
159
163
|
- spec/lib/generator_spec.rb
|
160
164
|
- spec/lib/helpers/cache_spec.rb
|
@@ -235,11 +239,13 @@ test_files:
|
|
235
239
|
- spec/lib/cacher/similarity_generator_spec.rb
|
236
240
|
- spec/lib/cacher/weights/logarithmic_spec.rb
|
237
241
|
- spec/lib/cacher/weights_generator_spec.rb
|
242
|
+
- spec/lib/configuration/field_spec.rb
|
238
243
|
- spec/lib/configuration/type_spec.rb
|
239
244
|
- spec/lib/cores_spec.rb
|
240
245
|
- spec/lib/extensions/array_spec.rb
|
241
246
|
- spec/lib/extensions/hash_spec.rb
|
242
247
|
- spec/lib/extensions/module_spec.rb
|
248
|
+
- spec/lib/extensions/object_spec.rb
|
243
249
|
- spec/lib/extensions/symbol_spec.rb
|
244
250
|
- spec/lib/generator_spec.rb
|
245
251
|
- spec/lib/helpers/cache_spec.rb
|