picky 4.6.3 → 4.6.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/performant.c +4 -4
- data/lib/picky/analyzer.rb +6 -3
- data/lib/picky/backends/backend.rb +40 -0
- data/lib/picky/backends/file/json.rb +4 -0
- data/lib/picky/backends/file.rb +1 -25
- data/lib/picky/backends/memory/json.rb +4 -0
- data/lib/picky/backends/memory.rb +1 -29
- data/lib/picky/backends/redis/directly_manipulable.rb +15 -7
- data/lib/picky/backends/redis.rb +91 -92
- data/lib/picky/backends/sqlite/basic.rb +6 -0
- data/lib/picky/bundle.rb +12 -10
- data/lib/picky/categories_indexing.rb +0 -13
- data/lib/picky/category.rb +24 -21
- data/lib/picky/category_indexing.rb +8 -22
- data/lib/picky/constants.rb +0 -1
- data/lib/picky/generators/aliases.rb +2 -0
- data/lib/picky/generators/partial.rb +27 -0
- data/lib/picky/generators/similarity.rb +27 -0
- data/lib/picky/generators/weights.rb +32 -0
- data/lib/picky/helpers/identification.rb +18 -0
- data/lib/picky/helpers/indexing.rb +16 -0
- data/lib/picky/index.rb +6 -0
- data/lib/picky/index_indexing.rb +9 -21
- data/lib/picky/indexes_indexing.rb +5 -14
- data/lib/picky/loader.rb +204 -199
- data/lib/picky/query/indexes.rb +12 -1
- data/lib/picky/search.rb +1 -0
- data/lib/picky/source.rb +23 -0
- data/lib/picky/tokenizer.rb +35 -13
- data/spec/functional/facets_spec.rb +1 -1
- data/spec/functional/remap_qualifiers_spec.rb +43 -0
- data/spec/functional/tokenizer_spec.rb +1 -1
- data/spec/lib/api/search/boost_spec.rb +1 -1
- data/spec/lib/category_spec.rb +1 -4
- data/spec/lib/generators/partial_spec.rb +58 -0
- data/spec/lib/generators/similarity_spec.rb +59 -0
- data/spec/lib/generators/weights_spec.rb +68 -0
- data/spec/lib/index_indexing_spec.rb +2 -4
- data/spec/lib/index_spec.rb +6 -0
- data/spec/lib/pool_spec.rb +39 -35
- data/spec/lib/sinatra_spec.rb +2 -2
- data/spec/lib/source_spec.rb +63 -0
- data/spec/lib/tokenizer_spec.rb +64 -2
- metadata +20 -20
- data/lib/picky/api/category/partial.rb +0 -26
- data/lib/picky/api/category/similarity.rb +0 -26
- data/lib/picky/api/category/weight.rb +0 -28
- data/lib/picky/api/source.rb +0 -35
- data/lib/picky/api/tokenizer.rb +0 -37
- data/lib/picky/deployment.rb +0 -211
- data/spec/lib/api/category/partial_spec.rb +0 -49
- data/spec/lib/api/category/similarity_spec.rb +0 -50
- data/spec/lib/api/category/weight_spec.rb +0 -55
- data/spec/lib/api/source_spec.rb +0 -68
- data/spec/lib/api/tokenizer_spec.rb +0 -42
@@ -0,0 +1,58 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Picky::Generators::Partial do
|
4
|
+
let(:partial) { described_class } # "class", actually a module.
|
5
|
+
context 'extract_partial' do
|
6
|
+
context 'with nil' do
|
7
|
+
it 'returns the default' do
|
8
|
+
partial.from(nil).should == Picky::Partial::Default
|
9
|
+
end
|
10
|
+
end
|
11
|
+
context 'with a partial object' do
|
12
|
+
let(:partializer) do
|
13
|
+
Class.new do
|
14
|
+
def each_partial text
|
15
|
+
'tex'
|
16
|
+
end
|
17
|
+
end.new
|
18
|
+
end
|
19
|
+
it 'yields the partial' do
|
20
|
+
partial.from(partializer).each_partial('whatevs') do |text|
|
21
|
+
text.should == 'tex'
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
context 'invalid partial' do
|
26
|
+
it 'raises with a nice error message' do
|
27
|
+
expect {
|
28
|
+
partial.from Object.new
|
29
|
+
}.to raise_error(<<-ERROR)
|
30
|
+
partial options should be either
|
31
|
+
* for example a Partial::Substring.new(from: m, to: n), Partial::Postfix.new(from: n), Partial::Infix.new(min: m, max: n) etc.
|
32
|
+
or
|
33
|
+
* an object that responds to #each_partial(str_or_sym) and yields each partial
|
34
|
+
ERROR
|
35
|
+
end
|
36
|
+
it 'raises with a nice error message' do
|
37
|
+
expect {
|
38
|
+
partial.from Object.new, 'some_index'
|
39
|
+
}.to raise_error(<<-ERROR)
|
40
|
+
partial options for some_index should be either
|
41
|
+
* for example a Partial::Substring.new(from: m, to: n), Partial::Postfix.new(from: n), Partial::Infix.new(min: m, max: n) etc.
|
42
|
+
or
|
43
|
+
* an object that responds to #each_partial(str_or_sym) and yields each partial
|
44
|
+
ERROR
|
45
|
+
end
|
46
|
+
it 'raises with a nice error message' do
|
47
|
+
expect {
|
48
|
+
partial.from Object.new, 'some_index', 'some_category'
|
49
|
+
}.to raise_error(<<-ERROR)
|
50
|
+
partial options for some_index:some_category should be either
|
51
|
+
* for example a Partial::Substring.new(from: m, to: n), Partial::Postfix.new(from: n), Partial::Infix.new(min: m, max: n) etc.
|
52
|
+
or
|
53
|
+
* an object that responds to #each_partial(str_or_sym) and yields each partial
|
54
|
+
ERROR
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Picky::Generators::Similarity do
|
4
|
+
let(:similarity) { described_class } # "class", actually a module.
|
5
|
+
context 'encode' do
|
6
|
+
context 'with nil' do
|
7
|
+
it 'returns the default' do
|
8
|
+
similarity.from(nil).should == Picky::Similarity::Default
|
9
|
+
end
|
10
|
+
end
|
11
|
+
context 'with a similarity object' do
|
12
|
+
let(:similarizer) do
|
13
|
+
Class.new do
|
14
|
+
def encode text
|
15
|
+
:encoded
|
16
|
+
end
|
17
|
+
def prioritize ary, encoded
|
18
|
+
|
19
|
+
end
|
20
|
+
end.new
|
21
|
+
end
|
22
|
+
it 'returns the encoded string' do
|
23
|
+
similarity.from(similarizer).encode('whatevs').should == :encoded
|
24
|
+
end
|
25
|
+
end
|
26
|
+
context 'invalid weight' do
|
27
|
+
it 'raises with a nice error message' do
|
28
|
+
expect {
|
29
|
+
similarity.from Object.new
|
30
|
+
}.to raise_error(<<-ERROR)
|
31
|
+
similarity options should be either
|
32
|
+
* for example a Similarity::Phonetic.new(n), Similarity::Metaphone.new(n), Similarity::DoubleMetaphone.new(n) etc.
|
33
|
+
or
|
34
|
+
* an object that responds to #encode(text) => encoded_text and #prioritize(array_of_encoded, encoded)
|
35
|
+
ERROR
|
36
|
+
end
|
37
|
+
it 'raises with a nice error message' do
|
38
|
+
expect {
|
39
|
+
similarity.from Object.new, 'some_index'
|
40
|
+
}.to raise_error(<<-ERROR)
|
41
|
+
similarity options for some_index should be either
|
42
|
+
* for example a Similarity::Phonetic.new(n), Similarity::Metaphone.new(n), Similarity::DoubleMetaphone.new(n) etc.
|
43
|
+
or
|
44
|
+
* an object that responds to #encode(text) => encoded_text and #prioritize(array_of_encoded, encoded)
|
45
|
+
ERROR
|
46
|
+
end
|
47
|
+
it 'raises with a nice error message' do
|
48
|
+
expect {
|
49
|
+
similarity.from Object.new, 'some_index', 'some_category'
|
50
|
+
}.to raise_error(<<-ERROR)
|
51
|
+
similarity options for some_index:some_category should be either
|
52
|
+
* for example a Similarity::Phonetic.new(n), Similarity::Metaphone.new(n), Similarity::DoubleMetaphone.new(n) etc.
|
53
|
+
or
|
54
|
+
* an object that responds to #encode(text) => encoded_text and #prioritize(array_of_encoded, encoded)
|
55
|
+
ERROR
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Picky::Generators::Weights do
|
4
|
+
let(:weights) { described_class } # "class", actually a module.
|
5
|
+
context 'self.from' do
|
6
|
+
context 'with nil' do
|
7
|
+
it 'returns the default' do
|
8
|
+
weights.from(nil).should == Picky::Weights::Default
|
9
|
+
end
|
10
|
+
end
|
11
|
+
context 'with a number' do
|
12
|
+
it 'returns a logarithmic weighter' do
|
13
|
+
weights.from(7.3).should be_kind_of(Picky::Weights::Logarithmic)
|
14
|
+
end
|
15
|
+
it 'returns a logarithmic weighter' do
|
16
|
+
weights.from(3.14).weight_for(10).should == 5.443 # ln(10) + 3.14 = 2.3025 + 3.14
|
17
|
+
end
|
18
|
+
end
|
19
|
+
context 'with a weight object' do
|
20
|
+
let(:weighter) do
|
21
|
+
Class.new do
|
22
|
+
def weight_for amount
|
23
|
+
7.0
|
24
|
+
end
|
25
|
+
end.new
|
26
|
+
end
|
27
|
+
it 'creates a tokenizer' do
|
28
|
+
weights.from(weighter).weight_for(21).should == 7.0
|
29
|
+
end
|
30
|
+
end
|
31
|
+
context 'invalid weight' do
|
32
|
+
it 'raises with a nice error message' do
|
33
|
+
expect {
|
34
|
+
weights.from Object.new
|
35
|
+
}.to raise_error(<<-ERROR)
|
36
|
+
weight options should be either
|
37
|
+
* for example a Weights::Logarithmic.new, Weights::Constant.new(int = 0), Weights::Dynamic.new(&block) etc.
|
38
|
+
or
|
39
|
+
* an object that responds to #weight_for(amount_of_ids_for_token) => float
|
40
|
+
ERROR
|
41
|
+
end
|
42
|
+
end
|
43
|
+
context 'invalid weight' do
|
44
|
+
it 'raises with a nice error message' do
|
45
|
+
expect {
|
46
|
+
weights.from Object.new, 'some_index_name'
|
47
|
+
}.to raise_error(<<-ERROR)
|
48
|
+
weight options for some_index_name should be either
|
49
|
+
* for example a Weights::Logarithmic.new, Weights::Constant.new(int = 0), Weights::Dynamic.new(&block) etc.
|
50
|
+
or
|
51
|
+
* an object that responds to #weight_for(amount_of_ids_for_token) => float
|
52
|
+
ERROR
|
53
|
+
end
|
54
|
+
end
|
55
|
+
context 'invalid weight' do
|
56
|
+
it 'raises with a nice error message' do
|
57
|
+
expect {
|
58
|
+
weights.from Object.new, 'some_index_name', 'some_category_name'
|
59
|
+
}.to raise_error(<<-ERROR)
|
60
|
+
weight options for some_index_name:some_category_name should be either
|
61
|
+
* for example a Weights::Logarithmic.new, Weights::Constant.new(int = 0), Weights::Dynamic.new(&block) etc.
|
62
|
+
or
|
63
|
+
* an object that responds to #weight_for(amount_of_ids_for_token) => float
|
64
|
+
ERROR
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
@@ -68,16 +68,14 @@ describe Picky::Index do
|
|
68
68
|
end
|
69
69
|
end
|
70
70
|
context 'with non#each source' do
|
71
|
-
let(:source) { stub :source, :harvest => nil }
|
72
|
-
|
73
71
|
it 'raises' do
|
74
|
-
the_source = source
|
72
|
+
the_source = stub :source, :harvest => nil
|
75
73
|
expect {
|
76
74
|
described_class.new :some_name do
|
77
75
|
source the_source
|
78
76
|
end
|
79
77
|
}.to raise_error(<<-ERROR)
|
80
|
-
The some_name
|
78
|
+
The source for some_name should respond to either the method #each or
|
81
79
|
it can be a lambda/block, returning such a source.
|
82
80
|
ERROR
|
83
81
|
end
|
data/spec/lib/index_spec.rb
CHANGED
@@ -55,6 +55,12 @@ describe Picky::Index do
|
|
55
55
|
source the_source
|
56
56
|
end
|
57
57
|
end
|
58
|
+
|
59
|
+
describe 'directory' do
|
60
|
+
it 'is correct' do
|
61
|
+
api.directory.should == 'spec/test_directory/index/test/some_index_name'
|
62
|
+
end
|
63
|
+
end
|
58
64
|
|
59
65
|
describe 'geo_categories' do
|
60
66
|
it 'delegates correctly' do
|
data/spec/lib/pool_spec.rb
CHANGED
@@ -4,72 +4,76 @@ require 'spec_helper'
|
|
4
4
|
|
5
5
|
describe Picky::Pool do
|
6
6
|
|
7
|
-
|
8
|
-
|
7
|
+
let(:pool) do
|
8
|
+
Class.new do
|
9
|
+
extend Picky::Pool
|
9
10
|
|
10
|
-
|
11
|
+
attr_reader :number
|
11
12
|
|
12
|
-
|
13
|
-
|
13
|
+
def initialize number
|
14
|
+
@number = number
|
15
|
+
end
|
14
16
|
end
|
15
17
|
end
|
16
|
-
|
17
|
-
|
18
|
+
let(:other) do
|
19
|
+
Class.new do
|
20
|
+
extend Picky::Pool
|
18
21
|
|
19
|
-
|
22
|
+
attr_reader :number
|
20
23
|
|
21
|
-
|
22
|
-
|
24
|
+
def initialize number
|
25
|
+
@number = number
|
26
|
+
end
|
23
27
|
end
|
24
28
|
end
|
25
29
|
|
26
30
|
context 'functional' do
|
27
31
|
before(:each) do
|
28
32
|
described_class.clear
|
29
|
-
|
30
|
-
|
33
|
+
pool.clear
|
34
|
+
other.clear
|
31
35
|
end
|
32
36
|
it 'lets me get an instance' do
|
33
|
-
|
37
|
+
pool.new(1).should be_kind_of(pool)
|
34
38
|
end
|
35
39
|
it 'does not create a new reference if it has free ones' do
|
36
|
-
|
37
|
-
|
38
|
-
|
40
|
+
p1 = pool.new 1
|
41
|
+
p2 = pool.new 2
|
42
|
+
p1.release
|
39
43
|
|
40
|
-
|
44
|
+
pool.free_size.should == 1
|
41
45
|
end
|
42
46
|
it 'gives me the released reference if I try to new' do
|
43
|
-
|
44
|
-
|
45
|
-
|
47
|
+
p1 = pool.new 1
|
48
|
+
p2 = pool.new 2
|
49
|
+
p1.release
|
46
50
|
|
47
|
-
|
51
|
+
pool.new(3).number.should == 3
|
48
52
|
end
|
49
53
|
it 'releases all PoolTests if called on PoolTest' do
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
+
p1 = pool.new 1
|
55
|
+
pool.new 2
|
56
|
+
other.new 1
|
57
|
+
other.new 2
|
54
58
|
|
55
|
-
|
59
|
+
other.free_size.should == 0
|
56
60
|
|
57
|
-
|
61
|
+
pool.release_all
|
58
62
|
|
59
|
-
|
60
|
-
|
63
|
+
pool.new(3).should == p1
|
64
|
+
other.free_size.should == 0
|
61
65
|
end
|
62
66
|
it 'releases all if called on Pool' do
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
+
pool.new 1
|
68
|
+
pool.new 2
|
69
|
+
other.new 1
|
70
|
+
other.new 2
|
67
71
|
|
68
|
-
|
72
|
+
pool.free_size.should == 0
|
69
73
|
|
70
74
|
described_class.release_all
|
71
75
|
|
72
|
-
|
76
|
+
pool.free_size.should == 2
|
73
77
|
end
|
74
78
|
end
|
75
79
|
|
data/spec/lib/sinatra_spec.rb
CHANGED
@@ -16,10 +16,10 @@ describe Picky::Sinatra do
|
|
16
16
|
extendee.extend Picky::Sinatra
|
17
17
|
end
|
18
18
|
it 'has Picky specific methods' do
|
19
|
-
extendee.send :indexing,
|
19
|
+
extendee.send :indexing, splits_text_on: /something/
|
20
20
|
end
|
21
21
|
it 'has Picky specific methods' do
|
22
|
-
extendee.send :searching,
|
22
|
+
extendee.send :searching, splits_text_on: /something/
|
23
23
|
end
|
24
24
|
it 'gets delegated correctly' do
|
25
25
|
Picky::Tokenizer.should_receive(:default_indexing_with).once.with some: 'option'
|
@@ -0,0 +1,63 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Picky::Source do
|
4
|
+
context 'unblock_source' do
|
5
|
+
context 'with block' do
|
6
|
+
it 'unblocks' do
|
7
|
+
result = described_class.from ->() { :some_source }, false
|
8
|
+
|
9
|
+
result.call == :some_source
|
10
|
+
end
|
11
|
+
end
|
12
|
+
context 'with #each' do
|
13
|
+
it 'takes the source directly' do
|
14
|
+
described_class.from([:some_source], true) == :some_source
|
15
|
+
end
|
16
|
+
it 'takes the source directly' do
|
17
|
+
described_class.from([:some_source], false) == :some_source
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
context 'extract_source' do
|
22
|
+
context 'block with source hash' do
|
23
|
+
it 'extracts a source' do
|
24
|
+
described_class.from(->(){}, false).should be_kind_of(Proc)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
context 'each source' do
|
28
|
+
let(:source) do
|
29
|
+
Class.new do
|
30
|
+
def each
|
31
|
+
|
32
|
+
end
|
33
|
+
end.new
|
34
|
+
end
|
35
|
+
it 'extracts a source' do
|
36
|
+
described_class.from(source, false).should == source
|
37
|
+
end
|
38
|
+
end
|
39
|
+
context 'invalid source with nil not ok' do
|
40
|
+
it 'raises with a nice error message' do
|
41
|
+
expect {
|
42
|
+
described_class.from Object.new, false
|
43
|
+
}.to raise_error(<<-ERROR)
|
44
|
+
The source should respond to either the method #each or
|
45
|
+
it can be a lambda/block, returning such a source.
|
46
|
+
ERROR
|
47
|
+
end
|
48
|
+
it 'raises with a nice error message' do
|
49
|
+
expect {
|
50
|
+
described_class.from Object.new, false, 'some_index'
|
51
|
+
}.to raise_error(<<-ERROR)
|
52
|
+
The source for some_index should respond to either the method #each or
|
53
|
+
it can be a lambda/block, returning such a source.
|
54
|
+
ERROR
|
55
|
+
end
|
56
|
+
end
|
57
|
+
context 'with nil ok' do
|
58
|
+
it 'simply returns nil back' do
|
59
|
+
described_class.from(nil, true).should == nil
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
data/spec/lib/tokenizer_spec.rb
CHANGED
@@ -4,6 +4,14 @@ require 'spec_helper'
|
|
4
4
|
|
5
5
|
describe Picky::Tokenizer do
|
6
6
|
|
7
|
+
describe 'with wrong/incorrectly spelled option' do
|
8
|
+
it 'informs the user nicely' do
|
9
|
+
expect {
|
10
|
+
described_class.new rejetcs_token_if: :blank?.to_proc
|
11
|
+
}.to raise_error(%Q{The option "rejetcs_token_if" is not a valid option for a Picky tokenizer.\nPlease see https://github.com/floere/picky/wiki/Indexing-configuration for valid options.})
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
7
15
|
context 'with special instance' do
|
8
16
|
let (:tokenizer) { described_class.new rejects_token_if: lambda { |token| token.to_s.length < 2 || token == :hello }, case_sensitive: true }
|
9
17
|
it 'rejects tokens with length < 2' do
|
@@ -19,7 +27,7 @@ Removes characters: -
|
|
19
27
|
Stopwords: -
|
20
28
|
Splits text on: /\\s/
|
21
29
|
Normalizes words: -
|
22
|
-
Rejects tokens? Yes, see line
|
30
|
+
Rejects tokens? Yes, see line 16 in app/application.rb
|
23
31
|
Substitutes chars? -
|
24
32
|
Case sensitive? Yes.
|
25
33
|
EXPECTED
|
@@ -49,7 +57,7 @@ EXPECTED
|
|
49
57
|
tokenizer.reject(['a', nil, '', 'b']).should == ['a', 'b']
|
50
58
|
end
|
51
59
|
it 'rejects tokens based on the given rejection criteria if set' do
|
52
|
-
tokenizer.rejects_token_if
|
60
|
+
tokenizer.rejects_token_if :nil?.to_proc
|
53
61
|
|
54
62
|
tokenizer.reject(['a', nil, '', 'b']).should == ['a', '', 'b']
|
55
63
|
end
|
@@ -222,5 +230,59 @@ ERROR
|
|
222
230
|
end
|
223
231
|
end
|
224
232
|
end
|
233
|
+
|
234
|
+
context 'from' do
|
235
|
+
context 'options hash' do
|
236
|
+
it 'creates a tokenizer' do
|
237
|
+
described_class.from(splits_text_on: /\t/).
|
238
|
+
tokenize("hello\tworld").should == [['hello', 'world'], ['hello', 'world']]
|
239
|
+
end
|
240
|
+
end
|
241
|
+
context 'tokenizer' do
|
242
|
+
let(:tokenizer) do
|
243
|
+
Class.new do
|
244
|
+
def tokenize text
|
245
|
+
['unmoved', 'by', 'your', 'texts']
|
246
|
+
end
|
247
|
+
end.new
|
248
|
+
end
|
249
|
+
it 'creates a tokenizer' do
|
250
|
+
described_class.from(tokenizer).
|
251
|
+
tokenize("hello\tworld").should == ['unmoved', 'by', 'your', 'texts']
|
252
|
+
end
|
253
|
+
end
|
254
|
+
context 'invalid tokenizer' do
|
255
|
+
it 'raises with a nice error message' do
|
256
|
+
expect {
|
257
|
+
described_class.from Object.new
|
258
|
+
}.to raise_error(<<-ERROR)
|
259
|
+
indexing options should be either
|
260
|
+
* a Hash
|
261
|
+
or
|
262
|
+
* an object that responds to #tokenize(text) => [[token1, token2, ...], [original1, original2, ...]]
|
263
|
+
ERROR
|
264
|
+
end
|
265
|
+
it 'raises with a nice error message' do
|
266
|
+
expect {
|
267
|
+
described_class.from Object.new, 'some_index'
|
268
|
+
}.to raise_error(<<-ERROR)
|
269
|
+
indexing options for some_index should be either
|
270
|
+
* a Hash
|
271
|
+
or
|
272
|
+
* an object that responds to #tokenize(text) => [[token1, token2, ...], [original1, original2, ...]]
|
273
|
+
ERROR
|
274
|
+
end
|
275
|
+
it 'raises with a nice error message' do
|
276
|
+
expect {
|
277
|
+
described_class.from Object.new, 'some_index', 'some_category'
|
278
|
+
}.to raise_error(<<-ERROR)
|
279
|
+
indexing options for some_index:some_category should be either
|
280
|
+
* a Hash
|
281
|
+
or
|
282
|
+
* an object that responds to #tokenize(text) => [[token1, token2, ...], [original1, original2, ...]]
|
283
|
+
ERROR
|
284
|
+
end
|
285
|
+
end
|
286
|
+
end
|
225
287
|
|
226
288
|
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.6.
|
4
|
+
version: 4.6.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-09-20 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
@@ -34,7 +34,7 @@ dependencies:
|
|
34
34
|
requirements:
|
35
35
|
- - ~>
|
36
36
|
- !ruby/object:Gem::Version
|
37
|
-
version: 4.6.
|
37
|
+
version: 4.6.4
|
38
38
|
type: :development
|
39
39
|
prerelease: false
|
40
40
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -42,7 +42,7 @@ dependencies:
|
|
42
42
|
requirements:
|
43
43
|
- - ~>
|
44
44
|
- !ruby/object:Gem::Version
|
45
|
-
version: 4.6.
|
45
|
+
version: 4.6.4
|
46
46
|
- !ruby/object:Gem::Dependency
|
47
47
|
name: text
|
48
48
|
requirement: !ruby/object:Gem::Requirement
|
@@ -136,13 +136,8 @@ files:
|
|
136
136
|
- lib/maybe_compile.rb
|
137
137
|
- lib/picky/analytics.rb
|
138
138
|
- lib/picky/analyzer.rb
|
139
|
-
- lib/picky/api/category/partial.rb
|
140
|
-
- lib/picky/api/category/similarity.rb
|
141
|
-
- lib/picky/api/category/weight.rb
|
142
139
|
- lib/picky/api/search/boost.rb
|
143
|
-
- lib/picky/api/source.rb
|
144
140
|
- lib/picky/api/tokenizer/character_substituter.rb
|
145
|
-
- lib/picky/api/tokenizer.rb
|
146
141
|
- lib/picky/backends/backend.rb
|
147
142
|
- lib/picky/backends/file/basic.rb
|
148
143
|
- lib/picky/backends/file/json.rb
|
@@ -186,7 +181,6 @@ files:
|
|
186
181
|
- lib/picky/character_substituters/west_european.rb
|
187
182
|
- lib/picky/console.rb
|
188
183
|
- lib/picky/constants.rb
|
189
|
-
- lib/picky/deployment.rb
|
190
184
|
- lib/picky/extensions/array.rb
|
191
185
|
- lib/picky/extensions/class.rb
|
192
186
|
- lib/picky/extensions/hash.rb
|
@@ -201,6 +195,7 @@ files:
|
|
201
195
|
- lib/picky/generators/partial/postfix.rb
|
202
196
|
- lib/picky/generators/partial/strategy.rb
|
203
197
|
- lib/picky/generators/partial/substring.rb
|
198
|
+
- lib/picky/generators/partial.rb
|
204
199
|
- lib/picky/generators/similarity/default.rb
|
205
200
|
- lib/picky/generators/similarity/double_metaphone.rb
|
206
201
|
- lib/picky/generators/similarity/metaphone.rb
|
@@ -208,6 +203,7 @@ files:
|
|
208
203
|
- lib/picky/generators/similarity/phonetic.rb
|
209
204
|
- lib/picky/generators/similarity/soundex.rb
|
210
205
|
- lib/picky/generators/similarity/strategy.rb
|
206
|
+
- lib/picky/generators/similarity.rb
|
211
207
|
- lib/picky/generators/strategy.rb
|
212
208
|
- lib/picky/generators/weights/constant.rb
|
213
209
|
- lib/picky/generators/weights/default.rb
|
@@ -215,6 +211,8 @@ files:
|
|
215
211
|
- lib/picky/generators/weights/logarithmic.rb
|
216
212
|
- lib/picky/generators/weights/strategy.rb
|
217
213
|
- lib/picky/generators/weights/stub.rb
|
214
|
+
- lib/picky/generators/weights.rb
|
215
|
+
- lib/picky/helpers/identification.rb
|
218
216
|
- lib/picky/helpers/indexing.rb
|
219
217
|
- lib/picky/helpers/measuring.rb
|
220
218
|
- lib/picky/index.rb
|
@@ -259,6 +257,7 @@ files:
|
|
259
257
|
- lib/picky/search_facets.rb
|
260
258
|
- lib/picky/sinatra/index_actions.rb
|
261
259
|
- lib/picky/sinatra.rb
|
260
|
+
- lib/picky/source.rb
|
262
261
|
- lib/picky/statistics.rb
|
263
262
|
- lib/picky/tasks.rb
|
264
263
|
- lib/picky/tokenizer.rb
|
@@ -299,6 +298,7 @@ files:
|
|
299
298
|
- spec/functional/only_spec.rb
|
300
299
|
- spec/functional/realtime_spec.rb
|
301
300
|
- spec/functional/regression_spec.rb
|
301
|
+
- spec/functional/remap_qualifiers_spec.rb
|
302
302
|
- spec/functional/speed_spec.rb
|
303
303
|
- spec/functional/terminate_early_spec.rb
|
304
304
|
- spec/functional/tokenizer_spec.rb
|
@@ -306,13 +306,8 @@ files:
|
|
306
306
|
- spec/integration/sinatra_index_actions_spec.rb
|
307
307
|
- spec/lib/analytics_spec.rb
|
308
308
|
- spec/lib/analyzer_spec.rb
|
309
|
-
- spec/lib/api/category/partial_spec.rb
|
310
|
-
- spec/lib/api/category/similarity_spec.rb
|
311
|
-
- spec/lib/api/category/weight_spec.rb
|
312
309
|
- spec/lib/api/search/boost_spec.rb
|
313
|
-
- spec/lib/api/source_spec.rb
|
314
310
|
- spec/lib/api/tokenizer/character_substituter_spec.rb
|
315
|
-
- spec/lib/api/tokenizer_spec.rb
|
316
311
|
- spec/lib/backends/backend_spec.rb
|
317
312
|
- spec/lib/backends/file/basic_spec.rb
|
318
313
|
- spec/lib/backends/file_spec.rb
|
@@ -357,14 +352,17 @@ files:
|
|
357
352
|
- spec/lib/generators/partial/none_spec.rb
|
358
353
|
- spec/lib/generators/partial/postfix_spec.rb
|
359
354
|
- spec/lib/generators/partial/substring_spec.rb
|
355
|
+
- spec/lib/generators/partial_spec.rb
|
360
356
|
- spec/lib/generators/similarity/double_metaphone_spec.rb
|
361
357
|
- spec/lib/generators/similarity/metaphone_spec.rb
|
362
358
|
- spec/lib/generators/similarity/none_spec.rb
|
363
359
|
- spec/lib/generators/similarity/phonetic_spec.rb
|
364
360
|
- spec/lib/generators/similarity/soundex_spec.rb
|
361
|
+
- spec/lib/generators/similarity_spec.rb
|
365
362
|
- spec/lib/generators/weights/constant_spec.rb
|
366
363
|
- spec/lib/generators/weights/dynamic_spec.rb
|
367
364
|
- spec/lib/generators/weights/logarithmic_spec.rb
|
365
|
+
- spec/lib/generators/weights_spec.rb
|
368
366
|
- spec/lib/helpers/measuring_spec.rb
|
369
367
|
- spec/lib/index_indexed_spec.rb
|
370
368
|
- spec/lib/index_indexing_spec.rb
|
@@ -405,6 +403,7 @@ files:
|
|
405
403
|
- spec/lib/search_spec.rb
|
406
404
|
- spec/lib/sinatra_spec.rb
|
407
405
|
- spec/lib/solr/schema_generator_spec.rb
|
406
|
+
- spec/lib/source_spec.rb
|
408
407
|
- spec/lib/statistics_spec.rb
|
409
408
|
- spec/lib/tasks/try_spec.rb
|
410
409
|
- spec/lib/tokenizer_spec.rb
|
@@ -456,6 +455,7 @@ test_files:
|
|
456
455
|
- spec/functional/only_spec.rb
|
457
456
|
- spec/functional/realtime_spec.rb
|
458
457
|
- spec/functional/regression_spec.rb
|
458
|
+
- spec/functional/remap_qualifiers_spec.rb
|
459
459
|
- spec/functional/speed_spec.rb
|
460
460
|
- spec/functional/terminate_early_spec.rb
|
461
461
|
- spec/functional/tokenizer_spec.rb
|
@@ -463,13 +463,8 @@ test_files:
|
|
463
463
|
- spec/integration/sinatra_index_actions_spec.rb
|
464
464
|
- spec/lib/analytics_spec.rb
|
465
465
|
- spec/lib/analyzer_spec.rb
|
466
|
-
- spec/lib/api/category/partial_spec.rb
|
467
|
-
- spec/lib/api/category/similarity_spec.rb
|
468
|
-
- spec/lib/api/category/weight_spec.rb
|
469
466
|
- spec/lib/api/search/boost_spec.rb
|
470
|
-
- spec/lib/api/source_spec.rb
|
471
467
|
- spec/lib/api/tokenizer/character_substituter_spec.rb
|
472
|
-
- spec/lib/api/tokenizer_spec.rb
|
473
468
|
- spec/lib/backends/backend_spec.rb
|
474
469
|
- spec/lib/backends/file/basic_spec.rb
|
475
470
|
- spec/lib/backends/file_spec.rb
|
@@ -514,14 +509,17 @@ test_files:
|
|
514
509
|
- spec/lib/generators/partial/none_spec.rb
|
515
510
|
- spec/lib/generators/partial/postfix_spec.rb
|
516
511
|
- spec/lib/generators/partial/substring_spec.rb
|
512
|
+
- spec/lib/generators/partial_spec.rb
|
517
513
|
- spec/lib/generators/similarity/double_metaphone_spec.rb
|
518
514
|
- spec/lib/generators/similarity/metaphone_spec.rb
|
519
515
|
- spec/lib/generators/similarity/none_spec.rb
|
520
516
|
- spec/lib/generators/similarity/phonetic_spec.rb
|
521
517
|
- spec/lib/generators/similarity/soundex_spec.rb
|
518
|
+
- spec/lib/generators/similarity_spec.rb
|
522
519
|
- spec/lib/generators/weights/constant_spec.rb
|
523
520
|
- spec/lib/generators/weights/dynamic_spec.rb
|
524
521
|
- spec/lib/generators/weights/logarithmic_spec.rb
|
522
|
+
- spec/lib/generators/weights_spec.rb
|
525
523
|
- spec/lib/helpers/measuring_spec.rb
|
526
524
|
- spec/lib/index_indexed_spec.rb
|
527
525
|
- spec/lib/index_indexing_spec.rb
|
@@ -562,6 +560,8 @@ test_files:
|
|
562
560
|
- spec/lib/search_spec.rb
|
563
561
|
- spec/lib/sinatra_spec.rb
|
564
562
|
- spec/lib/solr/schema_generator_spec.rb
|
563
|
+
- spec/lib/source_spec.rb
|
565
564
|
- spec/lib/statistics_spec.rb
|
566
565
|
- spec/lib/tasks/try_spec.rb
|
567
566
|
- spec/lib/tokenizer_spec.rb
|
567
|
+
has_rdoc:
|