picky 4.3.2 → 4.4.0

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