picky 4.17.1 → 4.18.0
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.
- checksums.yaml +6 -14
- data/lib/picky/backends/backend.rb +9 -15
- data/lib/picky/backends/prepared/text.rb +1 -1
- data/lib/picky/backends/sqlite/basic.rb +3 -10
- data/lib/picky/bundle.rb +2 -2
- data/lib/picky/category.rb +10 -5
- data/lib/picky/category_indexed.rb +2 -1
- data/lib/picky/category_realtime.rb +10 -3
- data/lib/picky/helpers/measuring.rb +4 -6
- data/lib/picky/index_indexing.rb +0 -2
- data/lib/picky/indexes.rb +2 -2
- data/lib/picky/query/allocation.rb +3 -2
- data/lib/picky/query/allocations.rb +2 -2
- data/lib/picky/query/boosts.rb +2 -0
- data/lib/picky/query/combination.rb +1 -1
- data/lib/picky/query/combinations.rb +1 -3
- data/lib/picky/query/indexes.rb +1 -1
- data/lib/picky/query/token.rb +44 -23
- data/lib/picky/search.rb +2 -0
- data/lib/picky/search_facets.rb +3 -1
- data/lib/picky/tokenizer.rb +3 -3
- data/spec/functional/allocations_uniq_by_definition_spec.rb +19 -14
- data/spec/functional/arrays_as_ids_spec.rb +8 -17
- data/spec/functional/automatic_segmentation_spec.rb +40 -37
- data/spec/functional/custom_delimiters_spec.rb +30 -20
- data/spec/functional/no_tokenize_spec.rb +2 -2
- data/spec/functional/or_spec.rb +74 -75
- data/spec/functional/pool_spec.rb +54 -53
- data/spec/functional/realtime_spec.rb +1 -1
- data/spec/lib/backends/backend_spec.rb +9 -9
- data/spec/lib/backends/sqlite/array_spec.rb +2 -8
- data/spec/lib/backends/sqlite/value_spec.rb +2 -2
- data/spec/lib/category_indexed_spec.rb +0 -12
- data/spec/lib/query/allocation_spec.rb +3 -3
- data/spec/lib/query/combinations_spec.rb +0 -17
- data/spec/lib/query/token_spec.rb +9 -4
- data/spec/lib/tokenizer_spec.rb +3 -3
- metadata +20 -21
@@ -24,15 +24,6 @@ describe Picky::Query::Combinations do
|
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
27
|
-
describe "weighted_score" do
|
28
|
-
it "uses the weights' score method" do
|
29
|
-
boosts = stub :boosts
|
30
|
-
boosts.should_receive(:boost_for).once.with @combinations_ary
|
31
|
-
|
32
|
-
@combinations.boost_for boosts
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
27
|
describe "total_score" do
|
37
28
|
before(:each) do
|
38
29
|
@combination1 = stub :combination1, :weight => 3.14
|
@@ -47,14 +38,6 @@ describe Picky::Query::Combinations do
|
|
47
38
|
end
|
48
39
|
end
|
49
40
|
|
50
|
-
# describe 'hash' do
|
51
|
-
# it "forwards to the combinations array" do
|
52
|
-
# @combinations_ary.should_receive(:hash).once.with
|
53
|
-
#
|
54
|
-
# @combinations.hash
|
55
|
-
# end
|
56
|
-
# end
|
57
|
-
|
58
41
|
describe 'remove' do
|
59
42
|
before(:each) do
|
60
43
|
@combination1 = stub :combination1, :category => stub(:other, :name => :other)
|
@@ -14,8 +14,6 @@ describe Picky::Query::Token do
|
|
14
14
|
|
15
15
|
describe 'categorize' do
|
16
16
|
let(:mapper) do
|
17
|
-
# TODO Can we remove the index?
|
18
|
-
#
|
19
17
|
index = Picky::Index.new :mapper
|
20
18
|
categories = Picky::Categories.new
|
21
19
|
@category1 = categories << Picky::Category.new(:category1, index)
|
@@ -98,7 +96,7 @@ describe Picky::Query::Token do
|
|
98
96
|
end
|
99
97
|
it 'returns a list of tokens with the right categorization' do
|
100
98
|
token.similar_tokens_for(@category).map do |token|
|
101
|
-
token.predefined_categories
|
99
|
+
token.predefined_categories
|
102
100
|
end.should == [[@category], [@category], [@category]]
|
103
101
|
end
|
104
102
|
end
|
@@ -203,8 +201,8 @@ describe Picky::Query::Token do
|
|
203
201
|
end
|
204
202
|
it 'should have an order' do
|
205
203
|
token.should_receive(:qualify).once.ordered
|
206
|
-
token.should_receive(:partialize).once.ordered
|
207
204
|
token.should_receive(:similarize).once.ordered
|
205
|
+
token.should_receive(:partialize).once.ordered
|
208
206
|
token.should_receive(:remove_illegals).once.ordered
|
209
207
|
|
210
208
|
token.process
|
@@ -428,6 +426,13 @@ describe Picky::Query::Token do
|
|
428
426
|
token.qualifiers.should == []
|
429
427
|
end
|
430
428
|
end
|
429
|
+
context 'with missing qualifier' do
|
430
|
+
let(:token) { described_class.processed ':missingqualifier' }
|
431
|
+
it 'is correct' do
|
432
|
+
token.qualifiers.should == []
|
433
|
+
token.text.should == 'missingqualifier'
|
434
|
+
end
|
435
|
+
end
|
431
436
|
end
|
432
437
|
|
433
438
|
describe 'partial=' do
|
data/spec/lib/tokenizer_spec.rb
CHANGED
@@ -16,7 +16,7 @@ A short overview:
|
|
16
16
|
stopwords /regexp/
|
17
17
|
splits_text_on /regexp/ or "String", default /\s/
|
18
18
|
normalizes_words [[/replace (this)/, 'with this \\1'], ...]
|
19
|
-
rejects_token_if Proc/lambda, default :
|
19
|
+
rejects_token_if Proc/lambda, default :empty?.to_proc
|
20
20
|
substitutes_characters_with Picky::CharacterSubstituter or responds to #substitute(String)
|
21
21
|
stems_with Instance responds to #stem(String)
|
22
22
|
case_sensitive true/false
|
@@ -68,8 +68,8 @@ EXPECTED
|
|
68
68
|
end
|
69
69
|
|
70
70
|
describe 'rejects_token_if' do
|
71
|
-
it 'rejects empty tokens by default' do
|
72
|
-
tokenizer.reject(['a',
|
71
|
+
it 'rejects empty? tokens by default' do
|
72
|
+
tokenizer.reject(['a', '', 'b', '']).should == ['a', 'b']
|
73
73
|
end
|
74
74
|
it 'rejects tokens based on the given rejection criteria if set' do
|
75
75
|
tokenizer.rejects_token_if :nil?.to_proc
|
metadata
CHANGED
@@ -1,41 +1,41 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: picky
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.18.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Florian Hanke
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-08-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - '>='
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - '>='
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake-compiler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - '>='
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - '>='
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
@@ -44,68 +44,68 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - ~>
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 4.
|
47
|
+
version: 4.18.0
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 4.
|
54
|
+
version: 4.18.0
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: text
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - '>='
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - '>='
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: multi_json
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - '>='
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '0'
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - '>='
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: activesupport
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- -
|
87
|
+
- - '>='
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: '3.0'
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- -
|
94
|
+
- - '>='
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '3.0'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: rack_fast_escape
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- -
|
101
|
+
- - '>='
|
102
102
|
- !ruby/object:Gem::Version
|
103
103
|
version: '0'
|
104
104
|
type: :runtime
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
|
-
- -
|
108
|
+
- - '>='
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
111
|
description: Fast Ruby semantic text search engine with comfortable single field interface.
|
@@ -410,8 +410,7 @@ files:
|
|
410
410
|
- spec/lib/tasks/try_spec.rb
|
411
411
|
- spec/lib/tokenizer_spec.rb
|
412
412
|
- spec/performant_spec.rb
|
413
|
-
-
|
414
|
-
YmluL3BpY2t5
|
413
|
+
- bin/picky
|
415
414
|
- ext/picky/extconf.rb
|
416
415
|
homepage: http://florianhanke.com/picky
|
417
416
|
licenses:
|
@@ -424,12 +423,12 @@ require_paths:
|
|
424
423
|
- lib
|
425
424
|
required_ruby_version: !ruby/object:Gem::Requirement
|
426
425
|
requirements:
|
427
|
-
- -
|
426
|
+
- - '>='
|
428
427
|
- !ruby/object:Gem::Version
|
429
428
|
version: '0'
|
430
429
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
431
430
|
requirements:
|
432
|
-
- -
|
431
|
+
- - '>='
|
433
432
|
- !ruby/object:Gem::Version
|
434
433
|
version: '0'
|
435
434
|
requirements: []
|
@@ -437,7 +436,7 @@ rubyforge_project: http://rubyforge.org/projects/picky
|
|
437
436
|
rubygems_version: 2.0.3
|
438
437
|
signing_key:
|
439
438
|
specification_version: 4
|
440
|
-
summary:
|
439
|
+
summary: 'Picky: Semantic Search Engine. Clever Interface. Good Tools.'
|
441
440
|
test_files:
|
442
441
|
- spec/aux/picky/cli_spec.rb
|
443
442
|
- spec/functional/allocations_uniq_by_definition_spec.rb
|