picky 4.17.1 → 4.18.0

Sign up to get free protection for your applications and to get access to all the features.
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