picky 4.6.1 → 4.6.2

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/picky/pool.rb CHANGED
@@ -7,12 +7,30 @@ module Picky
7
7
 
8
8
  class << self
9
9
 
10
+ # Installs itself on a few internal classes.
11
+ #
12
+ # Note: If you need to run two consecutive queries,
13
+ # this can't be used.
14
+ #
15
+ # TODO Also install calling release_all after each query.
16
+ #
17
+ def install
18
+ Query::Token.extend self
19
+ Query::Tokens.extend self
20
+ Query::Combination.extend self
21
+ Query::Combinations.extend self
22
+ Query::Allocation.extend self
23
+ Query::Allocations.extend self
24
+ end
25
+
26
+ # Initialise/Reset the pool.
27
+ #
10
28
  def clear
11
29
  require 'set'
12
30
  @pools = Set.new
13
31
  end
14
32
 
15
- # Add a Pool to the managed pools.
33
+ # Add a pooled class to the managed pools.
16
34
  #
17
35
  def add klass
18
36
  @pools << klass
@@ -34,7 +52,8 @@ module Picky
34
52
  add klass
35
53
 
36
54
  class << klass
37
- #
55
+
56
+ # Initialise/Reset the class pool.
38
57
  #
39
58
  def clear
40
59
  @__free__ = []
@@ -44,7 +63,7 @@ module Picky
44
63
  # Obtain creates a new reference if there is no free one
45
64
  # and uses an existing one if there is.
46
65
  #
47
- def obtain *args, &block
66
+ def new *args, &block
48
67
  unless reference = @__free__.shift
49
68
  reference = allocate
50
69
  end
data/lib/picky/results.rb CHANGED
@@ -43,14 +43,12 @@ module Picky
43
43
 
44
44
  # Delegates to allocations.
45
45
  #
46
- # TODO Remove parameter in 5.0 and just call the method with amount.
47
- #
48
46
  # Note that this is an expensive call and
49
47
  # should not be done repeatedly. Just keep
50
48
  # a reference to the result.
51
49
  #
52
- def ids only = nil
53
- allocations.ids only || amount
50
+ def ids only = amount
51
+ allocations.ids only
54
52
  end
55
53
 
56
54
  # The total results. Delegates to the allocations.
data/lib/picky/search.rb CHANGED
@@ -216,7 +216,7 @@ module Picky
216
216
  #
217
217
  # Parameters:
218
218
  # * text: The string to tokenize.
219
- # * partialize_last: Whether to partialize the last token
219
+ # * partialize_last: Whether to partialize the last token.
220
220
  #
221
221
  # Note: By default, the last token is always partial.
222
222
  #
@@ -9,7 +9,7 @@ describe 'facets' do
9
9
  describe 'simple example' do
10
10
  let(:index) {
11
11
  index = Picky::Index.new :facets do
12
- category :name
12
+ category :name, partial: Picky::Partial::Substring.new(from: 1)
13
13
  category :surname
14
14
  end
15
15
 
@@ -73,6 +73,13 @@ describe 'facets' do
73
73
  'fritz' => 1,
74
74
  'florian' => 1
75
75
  }
76
+
77
+ # It allows explicit partial matches.
78
+ #
79
+ finder.facets(:name, filter: 'surname:hank*').should == {
80
+ 'fritz' => 1,
81
+ 'florian' => 1
82
+ }
76
83
  end
77
84
  end
78
85
  end
@@ -30,40 +30,40 @@ describe Picky::Pool do
30
30
  OtherPoolTest.clear
31
31
  end
32
32
  it 'lets me get an instance' do
33
- PoolTest.obtain(1).should be_kind_of(PoolTest)
33
+ PoolTest.new(1).should be_kind_of(PoolTest)
34
34
  end
35
35
  it 'does not create a new reference if it has free ones' do
36
- pt1 = PoolTest.obtain 1
37
- pt2 = PoolTest.obtain 2
36
+ pt1 = PoolTest.new 1
37
+ pt2 = PoolTest.new 2
38
38
  pt1.release
39
39
 
40
40
  PoolTest.free_size.should == 1
41
41
  end
42
- it 'gives me the released reference if I try to obtain' do
43
- pt1 = PoolTest.obtain 1
44
- pt2 = PoolTest.obtain 2
42
+ it 'gives me the released reference if I try to new' do
43
+ pt1 = PoolTest.new 1
44
+ pt2 = PoolTest.new 2
45
45
  pt1.release
46
46
 
47
- PoolTest.obtain(3).number.should == 3
47
+ PoolTest.new(3).number.should == 3
48
48
  end
49
49
  it 'releases all PoolTests if called on PoolTest' do
50
- pt1 = PoolTest.obtain 1
51
- PoolTest.obtain 2
52
- OtherPoolTest.obtain 1
53
- OtherPoolTest.obtain 2
50
+ pt1 = PoolTest.new 1
51
+ PoolTest.new 2
52
+ OtherPoolTest.new 1
53
+ OtherPoolTest.new 2
54
54
 
55
55
  OtherPoolTest.free_size.should == 0
56
56
 
57
57
  PoolTest.release_all
58
58
 
59
- PoolTest.obtain(3).should == pt1
59
+ PoolTest.new(3).should == pt1
60
60
  OtherPoolTest.free_size.should == 0
61
61
  end
62
62
  it 'releases all if called on Pool' do
63
- PoolTest.obtain 1
64
- PoolTest.obtain 2
65
- OtherPoolTest.obtain 1
66
- OtherPoolTest.obtain 2
63
+ PoolTest.new 1
64
+ PoolTest.new 2
65
+ OtherPoolTest.new 1
66
+ OtherPoolTest.new 2
67
67
 
68
68
  PoolTest.free_size.should == 0
69
69
 
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.1
4
+ version: 4.6.2
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-07-29 00:00:00.000000000 Z
12
+ date: 2012-08-11 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.1
37
+ version: 4.6.2
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.1
45
+ version: 4.6.2
46
46
  - !ruby/object:Gem::Dependency
47
47
  name: text
48
48
  requirement: !ruby/object:Gem::Requirement
@@ -82,7 +82,7 @@ dependencies:
82
82
  requirements:
83
83
  - - ~>
84
84
  - !ruby/object:Gem::Version
85
- version: '3.0'
85
+ version: '3'
86
86
  type: :runtime
87
87
  prerelease: false
88
88
  version_requirements: !ruby/object:Gem::Requirement
@@ -90,7 +90,7 @@ dependencies:
90
90
  requirements:
91
91
  - - ~>
92
92
  - !ruby/object:Gem::Version
93
- version: '3.0'
93
+ version: '3'
94
94
  - !ruby/object:Gem::Dependency
95
95
  name: procrastinate
96
96
  requirement: !ruby/object:Gem::Requirement