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.
@@ -74,7 +74,7 @@ module Cacher
74
74
  index.each_key do |token|
75
75
  i += 1
76
76
  if i == 5000
77
- puts "#{Time.now}: Generating partial tokens for token #{token}. This appears every 5000 tokens."
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[:qualifiers]
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') { |out_file| Marshal.dump self, out_file }
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.
@@ -0,0 +1,12 @@
1
+ module Kernel
2
+
3
+
4
+ def timed_exclaim text
5
+ exclaim "#{Time.now.strftime("%H:%M:%S")}: #{text}"
6
+ end
7
+
8
+ def exclaim text
9
+ puts text
10
+ end
11
+
12
+ end
@@ -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
@@ -50,7 +50,7 @@ module Index
50
50
  # Identifier for this bundle.
51
51
  #
52
52
  def identifier
53
- "#{name}:#{type.name}:#{category.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}.dump"
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}=", Marshal.load(File.open(path, "r:binary")) if File.exists? path
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
- puts "#{Time.now}: Loading the index for #{identifier} from the cache."
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
- puts "#{Time.now}: Loading the similarity for #{identifier} from the cache."
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
- puts "#{Time.now}: Loading the weights for #{identifier} from the cache."
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
- puts "#{Time.now}: Generating caches from db for #{identifier}."
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
- puts "#{Time.now}: Generating derived caches from memory for #{identifier}."
217
+ timed_exclaim "CACHE FROM MEMORY #{identifier}."
216
218
  end
217
219
 
218
220
  # Generates the weights and similarity from the main index.
@@ -34,19 +34,19 @@ module Index
34
34
  end
35
35
 
36
36
  def identifier
37
- "#{type.name}:#{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 "Loading data from db for #{identifier}."
43
+ timed_exclaim "LOAD #{identifier}."
44
44
  generate_caches_from_db
45
- timed_exclaim "Generating partial for #{identifier}."
45
+ timed_exclaim "PARTIAL #{identifier}."
46
46
  generate_partial
47
- timed_exclaim "Generating caches from memory for #{identifier}."
47
+ timed_exclaim "CACHE #{identifier}."
48
48
  generate_caches_from_memory
49
- timed_exclaim "Dumping all caches for #{identifier}."
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
  #
@@ -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 #{@type.name}:#{@field.name}." # TODO field.identifier
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
- puts "#{Time.now}: Indexing #{@type.name}:#{@field.name}:#{@field.indexed_name}." # TODO field.identifier
64
+ timed_exclaim "INDEX #{@type.name}, #{@field.name}" #:#{@field.indexed_name}." # TODO field.identifier
65
65
  end
66
66
 
67
67
  end
@@ -21,7 +21,7 @@ module Indexers
21
21
  # TODO Rewrite such that it works in batches.
22
22
  #
23
23
  def index
24
- puts "#{Time.now}: Indexing solr for #{type.name}:#{fields.join(', ')}"
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
- puts "Indexing using #{Cores.max_processors} processors."
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
@@ -90,6 +90,7 @@ module Loader
90
90
 
91
91
  # Load extensions.
92
92
  #
93
+ load_relative 'extensions/object'
93
94
  load_relative 'extensions/array'
94
95
  load_relative 'extensions/symbol'
95
96
  load_relative 'extensions/module'
@@ -58,10 +58,11 @@ module Query
58
58
  [identifier, *@token.to_result]
59
59
  end
60
60
 
61
- # exact/title:Flarbl:flarbl
61
+ # Example:
62
+ # "exact title:Peter*:peter"
62
63
  #
63
64
  def to_s
64
- "#{bundle.name}/#{to_result.join(':')}"
65
+ "#{bundle.name} #{to_result.join(':')}"
65
66
  end
66
67
 
67
68
  end
@@ -13,7 +13,7 @@ module Query
13
13
  #
14
14
  def initialize normalized_qualifier, codes
15
15
  @normalized_qualifier = normalized_qualifier
16
- @codes = codes
16
+ @codes = codes.map &:to_sym
17
17
  end
18
18
 
19
19
  # Will overwrite if the key is present in the hash.
@@ -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
- # Optional.
16
+
17
+
18
+
19
+ # Optional. Makes rack faster.
17
20
  #
18
21
  gem 'rack_fast_escape', '2009.06.24'
19
22
 
20
- # Required by your project.
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)
@@ -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
- # This is your application.
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
- # This is an example with books that you can adapt.
5
+ # TODO Adapt the generated example
6
+ # (a library books finder) to what you need.
10
7
  #
11
- # Note: Much more is possible, but let's start out super easy.
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
  #
@@ -2,6 +2,9 @@
2
2
  #
3
3
  # Note: ActiveRecord is used. Sorry.
4
4
  #
5
+ # TODO Configure the database adapter
6
+ # or ignore and use a csv source.
7
+ #
5
8
  adapter: mysql
6
9
  host: localhost
7
10
  username: root
@@ -16,18 +16,19 @@ require 'picky'
16
16
  #
17
17
  Loader.load_application
18
18
 
19
- # Load the data. This loads data from cache files e.g. "some_index/*_index.dump" into Indexes[:some_index]
19
+ # Load the indexes into the memory.
20
20
  #
21
21
  Indexes.load_from_cache
22
22
 
23
- # Use Harakiri middleware to kill unicorn child after X requests.
23
+ # Use Harakiri middleware to kill worker child after X requests.
24
24
  #
25
- # See http://vimeo.com/12614970 for more info.
25
+ # Works only with web servers that fork worker children and which
26
+ # fork new children, like for example Unicorn.
26
27
  #
27
- Rack::Harakiri.after = 50
28
+ Rack::Harakiri.after = 50
28
29
  use Rack::Harakiri
29
30
 
30
- # Finalize the application and start accepting requests.
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.005
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.003
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
@@ -17,7 +17,7 @@ describe Symbol do
17
17
  it "should be fast" do
18
18
  timed do
19
19
  @token.each_subtoken do |subtoken| end
20
- end.should < 0.0004
20
+ end.should < 0.0005
21
21
  end
22
22
  end
23
23
 
@@ -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:some_category'
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:some_category missing.")
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:some_category missing.")
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:some_category missing.")
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.dump'
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.dump'
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.dump'
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, [:t1, :tt1, :ttt1])
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
- - 3
9
- version: 0.2.3
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-15 00:00:00 +02:00
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