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.
Files changed (38) hide show
  1. checksums.yaml +6 -14
  2. data/lib/picky/backends/backend.rb +9 -15
  3. data/lib/picky/backends/prepared/text.rb +1 -1
  4. data/lib/picky/backends/sqlite/basic.rb +3 -10
  5. data/lib/picky/bundle.rb +2 -2
  6. data/lib/picky/category.rb +10 -5
  7. data/lib/picky/category_indexed.rb +2 -1
  8. data/lib/picky/category_realtime.rb +10 -3
  9. data/lib/picky/helpers/measuring.rb +4 -6
  10. data/lib/picky/index_indexing.rb +0 -2
  11. data/lib/picky/indexes.rb +2 -2
  12. data/lib/picky/query/allocation.rb +3 -2
  13. data/lib/picky/query/allocations.rb +2 -2
  14. data/lib/picky/query/boosts.rb +2 -0
  15. data/lib/picky/query/combination.rb +1 -1
  16. data/lib/picky/query/combinations.rb +1 -3
  17. data/lib/picky/query/indexes.rb +1 -1
  18. data/lib/picky/query/token.rb +44 -23
  19. data/lib/picky/search.rb +2 -0
  20. data/lib/picky/search_facets.rb +3 -1
  21. data/lib/picky/tokenizer.rb +3 -3
  22. data/spec/functional/allocations_uniq_by_definition_spec.rb +19 -14
  23. data/spec/functional/arrays_as_ids_spec.rb +8 -17
  24. data/spec/functional/automatic_segmentation_spec.rb +40 -37
  25. data/spec/functional/custom_delimiters_spec.rb +30 -20
  26. data/spec/functional/no_tokenize_spec.rb +2 -2
  27. data/spec/functional/or_spec.rb +74 -75
  28. data/spec/functional/pool_spec.rb +54 -53
  29. data/spec/functional/realtime_spec.rb +1 -1
  30. data/spec/lib/backends/backend_spec.rb +9 -9
  31. data/spec/lib/backends/sqlite/array_spec.rb +2 -8
  32. data/spec/lib/backends/sqlite/value_spec.rb +2 -2
  33. data/spec/lib/category_indexed_spec.rb +0 -12
  34. data/spec/lib/query/allocation_spec.rb +3 -3
  35. data/spec/lib/query/combinations_spec.rb +0 -17
  36. data/spec/lib/query/token_spec.rb +9 -4
  37. data/spec/lib/tokenizer_spec.rb +3 -3
  38. 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 nil # TODO Clean this up.
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
@@ -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 :blank?.to_proc
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', nil, '', 'b']).should == ['a', 'b']
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.17.1
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-07-25 00:00:00.000000000 Z
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.17.1
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.17.1
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
- - !binary |-
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: ! 'Picky: Semantic Search Engine. Clever Interface. Good Tools.'
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