picky 4.3.2 → 4.4.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.
@@ -63,10 +63,24 @@ module Picky
63
63
  #
64
64
  # Returns the calculated ids (from the offset).
65
65
  #
66
- def process! amount, offset
67
- ids = calculate_ids amount, offset
68
- @count = ids.size # cache the count before throwing away the ids
69
- @ids = ids.slice!(offset, amount) || [] # slice out the relevant part
66
+ # Parameters:
67
+ # * amount: The amount of ids to calculate.
68
+ # * offset: The offset to calculate them from.
69
+ # * illegal_ids: ids to ignore.
70
+ #
71
+ def process! amount, offset, illegal_ids = nil
72
+ if illegal_ids
73
+ # Note: Fairly inefficient calculation since it
74
+ # assumes the worst case that the ids contain
75
+ # all illegal ids.
76
+ #
77
+ calculated_ids = calculate_ids amount + illegal_ids.size, offset
78
+ calculated_ids = calculated_ids - illegal_ids
79
+ else
80
+ calculated_ids = calculate_ids amount, offset
81
+ end
82
+ @count = calculated_ids.size # cache the count before throwing away the ids
83
+ @ids = calculated_ids.slice!(offset, amount) || [] # slice out the relevant part
70
84
  end
71
85
 
72
86
  #
@@ -63,6 +63,7 @@ module Picky
63
63
  # * amount: the amount of ids to calculate
64
64
  # * offset: the offset from where in the result set to take the ids
65
65
  # * terminate_early: Whether to calculate all allocations.
66
+ # * unique: If ids have already been found, do not find them anymore (if true)
66
67
  #
67
68
  # Note: With an amount of 0, an offset > 0 doesn't make much
68
69
  # sense, as seen in the live search.
@@ -72,19 +73,21 @@ module Picky
72
73
  #
73
74
  # Note: It's possible that no ids are returned by an allocation, but a count. (In case of an offset)
74
75
  #
75
- def process! amount, offset = 0, terminate_early = nil
76
+ def process! amount, offset = 0, terminate_early = nil, unique = false
77
+ unique_ids = nil if unique
76
78
  each do |allocation|
77
- ids = allocation.process! amount, offset
78
- if ids.empty?
79
+ calculated_ids = allocation.process! amount, offset, (unique ? unique_ids : nil)
80
+ if calculated_ids.empty?
79
81
  offset = offset - allocation.count unless offset.zero?
80
82
  else
81
- amount = amount - ids.size # we need less results from the following allocation
83
+ amount = amount - calculated_ids.size # we need less results from the following allocation
82
84
  offset = 0 # we have already passed the offset
83
85
  end
84
86
  if terminate_early && amount <= 0
85
87
  break if terminate_early <= 0
86
88
  terminate_early -= 1
87
89
  end
90
+ unique_ids ? (unique_ids += calculated_ids) : (unique_ids = calculated_ids) if unique
88
91
  end
89
92
  end
90
93
 
data/lib/picky/results.rb CHANGED
@@ -24,9 +24,9 @@ module Picky
24
24
 
25
25
  # Create new results and calculate the ids.
26
26
  #
27
- def self.from query, amount, offset, allocations, extra_allocations = nil
27
+ def self.from query, amount, offset, allocations, extra_allocations = nil, unique = false
28
28
  results = new query, amount, offset, allocations
29
- results.prepare! extra_allocations
29
+ results.prepare! extra_allocations, unique
30
30
  results
31
31
  end
32
32
 
@@ -35,8 +35,8 @@ module Picky
35
35
  # Without this, the allocations are not processed,
36
36
  # and no ids are calculated.
37
37
  #
38
- def prepare! extra_allocations = nil
39
- allocations.process! amount, offset, extra_allocations
38
+ def prepare! extra_allocations = nil, unique = false
39
+ allocations.process! amount, offset, extra_allocations, unique
40
40
  end
41
41
 
42
42
  # Delegates to allocations.
data/lib/picky/search.rb CHANGED
@@ -177,19 +177,19 @@ module Picky
177
177
  #
178
178
  # Note: The Rack adapter calls this method after unravelling the HTTP request.
179
179
  #
180
- def search text, ids = 20, offset = 0
181
- search_with tokenized(text), ids.to_i, offset.to_i, text
180
+ def search text, ids = 20, offset = 0, options = {}
181
+ search_with tokenized(text), ids.to_i, offset.to_i, text, options[:unique]
182
182
  end
183
183
 
184
184
  # Runs the actual search using Query::Tokens.
185
185
  #
186
186
  # Note: Internal method, use #search to search.
187
187
  #
188
- def search_with tokens, ids = 20, offset = 0, original_text = nil
188
+ def search_with tokens, ids = 20, offset = 0, original_text = nil, unique = false
189
189
  results = nil
190
190
 
191
191
  duration = timed do
192
- results = execute tokens, ids, offset, original_text
192
+ results = execute tokens, ids, offset, original_text, unique
193
193
  end
194
194
  results.duration = duration.round 6
195
195
 
@@ -200,8 +200,13 @@ module Picky
200
200
  #
201
201
  # Note: Internal method, use #search to search.
202
202
  #
203
- def execute tokens, ids, offset, original_text = nil
204
- Results.from original_text, ids, offset, sorted_allocations(tokens, @max_allocations), @extra_allocations
203
+ def execute tokens, ids, offset, original_text = nil, unique = false
204
+ Results.from original_text,
205
+ ids,
206
+ offset,
207
+ sorted_allocations(tokens, @max_allocations),
208
+ @extra_allocations,
209
+ unique
205
210
  end
206
211
 
207
212
  # Delegates the tokenizing to the query tokenizer.
data/lib/picky.rb CHANGED
@@ -1,4 +1,12 @@
1
1
  module Picky
2
+
3
+ # Set default encoding.
4
+ # (Note: Rails does this already as well)
5
+ #
6
+ # TODO Set default encoding.
7
+ #
8
+ # Encoding.default_external = Encoding::UTF_8
9
+ # Encoding.default_internal = Encoding::UTF_8
2
10
 
3
11
  # External libraries.
4
12
  #
@@ -0,0 +1,18 @@
1
+ # encoding: utf-8
2
+ #
3
+ require 'spec_helper'
4
+
5
+ describe Picky::Backends::Memory::JSON do
6
+
7
+ let(:backend) { described_class.new '/tmp/picky_test_cache' }
8
+
9
+ describe "dump_json" do
10
+ it "works with ascii characters" do
11
+ backend.dump_json key: 'abc'
12
+ end
13
+ it "works with cyrillic characters" do
14
+ backend.dump_json key: 'й'
15
+ end
16
+ end
17
+
18
+ end
@@ -0,0 +1,54 @@
1
+ # encoding: utf-8
2
+ #
3
+ require 'spec_helper'
4
+
5
+ describe 'unique option on a search' do
6
+
7
+ it 'works' do
8
+ index = Picky::Index.new :non_unique do
9
+ category :text1
10
+ category :text2
11
+ category :text3
12
+ category :text4
13
+ end
14
+
15
+ thing = Struct.new :id, :text1, :text2, :text3, :text4
16
+ index.add thing.new(1, 'hello world', 'hello world', 'hello world', 'hello world')
17
+ index.add thing.new(2, 'hello world', 'hello world', 'hello world', 'hello world')
18
+ index.add thing.new(3, 'hello world', 'hello world', 'hello world', 'hello world')
19
+ index.add thing.new(4, 'hello world', 'hello world', 'hello world', 'hello world')
20
+ index.add thing.new(5, 'hello world', 'hello world', 'hello world', 'hello world')
21
+ index.add thing.new(6, 'hello world', 'hello world', 'hello world', 'hello world')
22
+
23
+ things = Picky::Search.new index
24
+ things.search('hello', 100, 0).ids.should == [
25
+ 6, 5, 4, 3, 2, 1,
26
+ 6, 5, 4, 3, 2, 1,
27
+ 6, 5, 4, 3, 2, 1,
28
+ 6, 5, 4, 3, 2, 1
29
+ ]
30
+ things.search('hello', 100, 0, unique: true).ids.should == [
31
+ 6, 5, 4, 3, 2, 1
32
+ ]
33
+ end
34
+
35
+ it 'works' do
36
+ index = Picky::Index.new :non_unique do
37
+ category :text1
38
+ category :text2
39
+ end
40
+
41
+ thing = Struct.new :id, :text1, :text2
42
+ index.add thing.new(1, 'one', 'two one')
43
+ index.add thing.new(2, 'two', 'three')
44
+ index.add thing.new(3, 'three', 'one')
45
+
46
+ things = Picky::Search.new index
47
+ things.search('one', 20, 0).ids.should == [3,1,1]
48
+ things.search('one', 20, 0).allocations.to_s.should == '[[:non_unique, 0.693, 2, [[:text2, "one", "one"]], [3, 1]], [:non_unique, 0.0, 1, [[:text1, "one", "one"]], [1]]]'
49
+
50
+ things.search('one', 20, 0, unique: true).ids.should == [3,1]
51
+ things.search('one', 20, 0, unique: true).allocations.to_s.should == '[[:non_unique, 0.693, 2, [[:text2, "one", "one"]], [3, 1]]]'
52
+ end
53
+
54
+ end
@@ -0,0 +1,14 @@
1
+ require 'spec_helper'
2
+
3
+ describe Picky do
4
+
5
+ it 'sets the right internal encoding' do
6
+ Encoding.default_external.should == Encoding::UTF_8
7
+ end
8
+ # TODO Set default external encoding.
9
+ #
10
+ # it 'sets the right external encoding' do
11
+ # Encoding.default_internal.should == Encoding::UTF_8
12
+ # end
13
+
14
+ end
@@ -111,6 +111,32 @@ describe Picky::Query::Allocation do
111
111
  @allocation.process!(20, 10).should == []
112
112
  end
113
113
  end
114
+ context 'with ids & illegal ids' do
115
+ before(:each) do
116
+ @allocation.stub! :calculate_ids => [1,2,3,4,5,6,7,8,9,10]
117
+ end
118
+ it 'should process right' do
119
+ @allocation.process!(0, 0, [1,3,7]).should == []
120
+ end
121
+ it 'should process right' do
122
+ @allocation.process!(0, 10, [1,3,7]).should == []
123
+ end
124
+ it 'should process right' do
125
+ @allocation.process!(5, 0, [1,3,7]).should == [2,4,5,6,8]
126
+ end
127
+ it 'should process right' do
128
+ @allocation.process!(5, 5, [1,3,7]).should == [9,10]
129
+ end
130
+ it 'should process right' do
131
+ @allocation.process!(20, 0, [1,3,7]).should == [2,4,5,6,8,9,10]
132
+ end
133
+ it 'should process right' do
134
+ @allocation.process!(20, 5, [1,3,7]).should == [9,10]
135
+ end
136
+ it 'should process right' do
137
+ @allocation.process!(20, 10, [1,3,7]).should == []
138
+ end
139
+ end
114
140
  end
115
141
 
116
142
  describe 'to_result' do
@@ -93,12 +93,19 @@ describe Picky::Query::Allocations do
93
93
  @offset = 1
94
94
  end
95
95
  it 'should call the process! method right' do
96
- @allocation1.should_receive(:process!).once.with(5,1).and_return [2, 3, 4]
97
- @allocation2.should_receive(:process!).once.with(2,0).and_return [5, 6]
96
+ @allocation1.should_receive(:process!).once.with(5,1,nil).and_return [2, 3, 4]
97
+ @allocation2.should_receive(:process!).once.with(2,0,nil).and_return [5, 6]
98
98
  @allocation3.should_receive(:process!).never
99
99
 
100
100
  @allocations.process! @amount, @offset, 0
101
101
  end
102
+ it 'should call the process! method right including unique' do
103
+ @allocation1.should_receive(:process!).once.with(5,1,nil).and_return [2, 3, 4]
104
+ @allocation2.should_receive(:process!).once.with(2,0,[2,3,4]).and_return [5, 6]
105
+ @allocation3.should_receive(:process!).never
106
+
107
+ @allocations.process! @amount, @offset, 0, true
108
+ end
102
109
  end
103
110
  context 'larger amount' do
104
111
  before(:each) do
@@ -106,7 +113,7 @@ describe Picky::Query::Allocations do
106
113
  @offset = 0
107
114
  end
108
115
  it 'should call the process! method right' do
109
- @allocation1.should_receive(:process!).once.with(1,0).and_return [1]
116
+ @allocation1.should_receive(:process!).once.with(1,0,nil).and_return [1]
110
117
  @allocation2.should_receive(:process!).never
111
118
  @allocation3.should_receive(:process!).never
112
119
 
@@ -119,9 +126,9 @@ describe Picky::Query::Allocations do
119
126
  @offset = 1
120
127
  end
121
128
  it 'should call the process! method right' do
122
- @allocation1.should_receive(:process!).once.with(5,1).and_return [2, 3, 4]
123
- @allocation2.should_receive(:process!).once.with(2,0).and_return [5, 6]
124
- @allocation3.should_receive(:process!).once.with(0,0).and_return []
129
+ @allocation1.should_receive(:process!).once.with(5,1,nil).and_return [2, 3, 4]
130
+ @allocation2.should_receive(:process!).once.with(2,0,nil).and_return [5, 6]
131
+ @allocation3.should_receive(:process!).once.with(0,0,nil).and_return []
125
132
 
126
133
  @allocations.process! @amount, @offset, 1
127
134
  end
@@ -132,8 +139,8 @@ describe Picky::Query::Allocations do
132
139
  @offset = 0
133
140
  end
134
141
  it 'should call the process! method right' do
135
- @allocation1.should_receive(:process!).once.with(1,0).and_return [1]
136
- @allocation2.should_receive(:process!).once.with(0,0).and_return []
142
+ @allocation1.should_receive(:process!).once.with(1,0,nil).and_return [1]
143
+ @allocation2.should_receive(:process!).once.with(0,0,nil).and_return []
137
144
  @allocation3.should_receive(:process!).never
138
145
 
139
146
  @allocations.process! @amount, @offset, 1
@@ -145,7 +152,7 @@ describe Picky::Query::Allocations do
145
152
  @offset = 0
146
153
  end
147
154
  it 'should call the process! method right' do
148
- @allocation1.should_receive(:process!).once.with(4,0).and_return [1, 2, 3, 4]
155
+ @allocation1.should_receive(:process!).once.with(4,0,nil).and_return [1, 2, 3, 4]
149
156
  @allocation2.should_receive(:process!).never
150
157
  @allocation3.should_receive(:process!).never
151
158
 
@@ -158,8 +165,8 @@ describe Picky::Query::Allocations do
158
165
  @offset = 0
159
166
  end
160
167
  it 'should call the process! method right' do
161
- @allocation1.should_receive(:process!).once.with(4,0).and_return [1, 2, 3, 4]
162
- @allocation2.should_receive(:process!).once.with(0,0).and_return []
168
+ @allocation1.should_receive(:process!).once.with(4,0,nil).and_return [1, 2, 3, 4]
169
+ @allocation2.should_receive(:process!).once.with(0,0,nil).and_return []
163
170
  @allocation3.should_receive(:process!).never
164
171
 
165
172
  @allocations.process! @amount, @offset, 1
@@ -171,8 +178,8 @@ describe Picky::Query::Allocations do
171
178
  @offset = 0
172
179
  end
173
180
  it 'should call the process! method right' do
174
- @allocation1.should_receive(:process!).once.with(5,0).and_return [1, 2, 3, 4]
175
- @allocation2.should_receive(:process!).once.with(1,0).and_return [5]
181
+ @allocation1.should_receive(:process!).once.with(5,0,nil).and_return [1, 2, 3, 4]
182
+ @allocation2.should_receive(:process!).once.with(1,0,nil).and_return [5]
176
183
  @allocation3.should_receive(:process!).never
177
184
 
178
185
  @allocations.process! @amount, @offset, 0
@@ -184,9 +191,9 @@ describe Picky::Query::Allocations do
184
191
  @offset = 0
185
192
  end
186
193
  it 'should call the process! method right' do
187
- @allocation1.should_receive(:process!).once.with(5,0).and_return [1, 2, 3, 4]
188
- @allocation2.should_receive(:process!).once.with(1,0).and_return [5]
189
- @allocation3.should_receive(:process!).once.with(0,0).and_return []
194
+ @allocation1.should_receive(:process!).once.with(5,0,nil).and_return [1, 2, 3, 4]
195
+ @allocation2.should_receive(:process!).once.with(1,0,nil).and_return [5]
196
+ @allocation3.should_receive(:process!).once.with(0,0,nil).and_return []
190
197
 
191
198
  @allocations.process! @amount, @offset, 1
192
199
  end
@@ -197,9 +204,9 @@ describe Picky::Query::Allocations do
197
204
  @offset = 0
198
205
  end
199
206
  it 'should call the process! method right' do
200
- @allocation1.should_receive(:process!).once.with(8,0).and_return [1, 2, 3, 4]
201
- @allocation2.should_receive(:process!).once.with(4,0).and_return [5, 6, 7]
202
- @allocation3.should_receive(:process!).once.with(1,0).and_return [8]
207
+ @allocation1.should_receive(:process!).once.with(8,0,nil).and_return [1, 2, 3, 4]
208
+ @allocation2.should_receive(:process!).once.with(4,0,nil).and_return [5, 6, 7]
209
+ @allocation3.should_receive(:process!).once.with(1,0,nil).and_return [8]
203
210
 
204
211
  @allocations.process! @amount, @offset, 1
205
212
  end
@@ -211,9 +218,9 @@ describe Picky::Query::Allocations do
211
218
  @offset = 2
212
219
  end
213
220
  it 'should call the process! method right' do
214
- @allocation1.should_receive(:process!).once.with(6,2).and_return [3,4]
215
- @allocation2.should_receive(:process!).once.with(4,0).and_return [5,6,7]
216
- @allocation3.should_receive(:process!).once.with(1,0).and_return [8]
221
+ @allocation1.should_receive(:process!).once.with(6,2,nil).and_return [3,4]
222
+ @allocation2.should_receive(:process!).once.with(4,0,nil).and_return [5,6,7]
223
+ @allocation3.should_receive(:process!).once.with(1,0,nil).and_return [8]
217
224
 
218
225
  @allocations.process! @amount, @offset
219
226
  end
@@ -224,9 +231,9 @@ describe Picky::Query::Allocations do
224
231
  @offset = 8
225
232
  end
226
233
  it 'should call the process! method right' do
227
- @allocation1.should_receive(:process!).once.with(10,8).and_return []
228
- @allocation2.should_receive(:process!).once.with(10,4).and_return []
229
- @allocation3.should_receive(:process!).once.with(10,1).and_return [9]
234
+ @allocation1.should_receive(:process!).once.with(10,8,nil).and_return []
235
+ @allocation2.should_receive(:process!).once.with(10,4,nil).and_return []
236
+ @allocation3.should_receive(:process!).once.with(10,1,nil).and_return [9]
230
237
 
231
238
  @allocations.process! @amount, @offset
232
239
  end
@@ -236,9 +243,9 @@ describe Picky::Query::Allocations do
236
243
  @amount = 0
237
244
  end
238
245
  it 'should return an empty array always' do
239
- @allocation1.should_receive(:process!).once.with(0,0).and_return []
240
- @allocation2.should_receive(:process!).once.with(0,0).and_return []
241
- @allocation3.should_receive(:process!).once.with(0,0).and_return []
246
+ @allocation1.should_receive(:process!).once.with(0,0,nil).and_return []
247
+ @allocation2.should_receive(:process!).once.with(0,0,nil).and_return []
248
+ @allocation3.should_receive(:process!).once.with(0,0,nil).and_return []
242
249
 
243
250
  @allocations.process! @amount
244
251
  end
@@ -252,9 +259,9 @@ describe Picky::Query::Allocations do
252
259
  @offset = 0
253
260
  end
254
261
  it 'should return certain ids' do
255
- @allocation1.should_receive(:process!).once.with(3,0).and_return [1,2,3]
256
- @allocation2.should_receive(:process!).once.with(0,0).and_return []
257
- @allocation3.should_receive(:process!).once.with(0,0).and_return []
262
+ @allocation1.should_receive(:process!).once.with(3,0,nil).and_return [1,2,3]
263
+ @allocation2.should_receive(:process!).once.with(0,0,nil).and_return []
264
+ @allocation3.should_receive(:process!).once.with(0,0,nil).and_return []
258
265
 
259
266
  @allocations.process! @amount, @offset
260
267
  end
@@ -264,9 +271,9 @@ describe Picky::Query::Allocations do
264
271
  @offset = 3
265
272
  end
266
273
  it 'should return certain ids' do
267
- @allocation1.should_receive(:process!).once.with(3,3).and_return [4]
268
- @allocation2.should_receive(:process!).once.with(2,0).and_return [5,6]
269
- @allocation3.should_receive(:process!).once.with(0,0).and_return []
274
+ @allocation1.should_receive(:process!).once.with(3,3,nil).and_return [4]
275
+ @allocation2.should_receive(:process!).once.with(2,0,nil).and_return [5,6]
276
+ @allocation3.should_receive(:process!).once.with(0,0,nil).and_return []
270
277
 
271
278
  @allocations.process! @amount, @offset
272
279
  end
@@ -91,17 +91,24 @@ describe Picky::Search do
91
91
  it "delegates to search_with correctly" do
92
92
  @search.stub! :tokenized => :tokens
93
93
 
94
- @search.should_receive(:search_with).once.with :tokens, 20, 10, :text
94
+ @search.should_receive(:search_with).once.with :tokens, 20, 10, :text, nil
95
95
 
96
96
  @search.search :text, 20, 10
97
97
  end
98
98
  it "delegates to search_with correctly" do
99
99
  @search.stub! :tokenized => :tokens
100
100
 
101
- @search.should_receive(:search_with).once.with :tokens, 20, 0, :text
101
+ @search.should_receive(:search_with).once.with :tokens, 20, 0, :text, nil
102
102
 
103
103
  @search.search :text, 20, 0
104
104
  end
105
+ it "delegates to search_with correctly" do
106
+ @search.stub! :tokenized => :tokens
107
+
108
+ @search.should_receive(:search_with).once.with :tokens, 20, 0, :text, true
109
+
110
+ @search.search :text, 20, 0, unique: true
111
+ end
105
112
  it "uses the tokenizer" do
106
113
  @search.stub! :search_with
107
114
 
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.3.2
4
+ version: 4.4.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-04-22 00:00:00.000000000 Z
12
+ date: 2012-05-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: &70364530556040 !ruby/object:Gem::Requirement
16
+ requirement: &70172962714740 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,21 +21,21 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70364530556040
24
+ version_requirements: *70172962714740
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: picky-client
27
- requirement: &70364530555400 !ruby/object:Gem::Requirement
27
+ requirement: &70172962714020 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
31
31
  - !ruby/object:Gem::Version
32
- version: 4.3.2
32
+ version: 4.4.0
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70364530555400
35
+ version_requirements: *70172962714020
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: text
38
- requirement: &70364530554580 !ruby/object:Gem::Requirement
38
+ requirement: &70172962713380 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70364530554580
46
+ version_requirements: *70172962713380
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: yajl-ruby
49
- requirement: &70364530553900 !ruby/object:Gem::Requirement
49
+ requirement: &70172962712340 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *70364530553900
57
+ version_requirements: *70172962712340
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: activesupport
60
- requirement: &70364530553380 !ruby/object:Gem::Requirement
60
+ requirement: &70172962711160 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '3.0'
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *70364530553380
68
+ version_requirements: *70172962711160
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: procrastinate
71
- requirement: &70364530552820 !ruby/object:Gem::Requirement
71
+ requirement: &70172962709300 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ~>
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '0.4'
77
77
  type: :runtime
78
78
  prerelease: false
79
- version_requirements: *70364530552820
79
+ version_requirements: *70172962709300
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: rack_fast_escape
82
- requirement: &70364530552440 !ruby/object:Gem::Requirement
82
+ requirement: &70172962723720 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,7 +87,7 @@ dependencies:
87
87
  version: '0'
88
88
  type: :runtime
89
89
  prerelease: false
90
- version_requirements: *70364530552440
90
+ version_requirements: *70172962723720
91
91
  description: Fast Ruby semantic text search engine with comfortable single field interface.
92
92
  email: florian.hanke+picky@gmail.com
93
93
  executables:
@@ -244,6 +244,7 @@ files:
244
244
  - spec/ext/performant_spec.rb
245
245
  - spec/functional/backends/file_spec.rb
246
246
  - spec/functional/backends/memory_bundle_realtime_spec.rb
247
+ - spec/functional/backends/memory_json_utf8_spec.rb
247
248
  - spec/functional/backends/memory_spec.rb
248
249
  - spec/functional/backends/redis_bundle_realtime_spec.rb
249
250
  - spec/functional/backends/redis_spec.rb
@@ -261,6 +262,7 @@ files:
261
262
  - spec/functional/speed_spec.rb
262
263
  - spec/functional/terminate_early_spec.rb
263
264
  - spec/functional/tokenizer_spec.rb
265
+ - spec/functional/unique_ids_search_spec.rb
264
266
  - spec/integration/sinatra_index_actions_spec.rb
265
267
  - spec/lib/analytics_spec.rb
266
268
  - spec/lib/analyzer_spec.rb
@@ -343,6 +345,7 @@ files:
343
345
  - spec/lib/loggers/concise_spec.rb
344
346
  - spec/lib/loggers/silent_spec.rb
345
347
  - spec/lib/loggers/verbose_spec.rb
348
+ - spec/lib/picky_spec.rb
346
349
  - spec/lib/query/allocation_spec.rb
347
350
  - spec/lib/query/allocations_spec.rb
348
351
  - spec/lib/query/boosts_spec.rb
@@ -395,6 +398,7 @@ test_files:
395
398
  - spec/ext/performant_spec.rb
396
399
  - spec/functional/backends/file_spec.rb
397
400
  - spec/functional/backends/memory_bundle_realtime_spec.rb
401
+ - spec/functional/backends/memory_json_utf8_spec.rb
398
402
  - spec/functional/backends/memory_spec.rb
399
403
  - spec/functional/backends/redis_bundle_realtime_spec.rb
400
404
  - spec/functional/backends/redis_spec.rb
@@ -412,6 +416,7 @@ test_files:
412
416
  - spec/functional/speed_spec.rb
413
417
  - spec/functional/terminate_early_spec.rb
414
418
  - spec/functional/tokenizer_spec.rb
419
+ - spec/functional/unique_ids_search_spec.rb
415
420
  - spec/integration/sinatra_index_actions_spec.rb
416
421
  - spec/lib/analytics_spec.rb
417
422
  - spec/lib/analyzer_spec.rb
@@ -494,6 +499,7 @@ test_files:
494
499
  - spec/lib/loggers/concise_spec.rb
495
500
  - spec/lib/loggers/silent_spec.rb
496
501
  - spec/lib/loggers/verbose_spec.rb
502
+ - spec/lib/picky_spec.rb
497
503
  - spec/lib/query/allocation_spec.rb
498
504
  - spec/lib/query/allocations_spec.rb
499
505
  - spec/lib/query/boosts_spec.rb