algoliasearch-rails 1.9.1 → 1.9.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.
- checksums.yaml +4 -4
- data/ChangeLog +4 -1
- data/Gemfile +6 -3
- data/Gemfile.lock +44 -9
- data/VERSION +1 -1
- data/algoliasearch-rails.gemspec +2 -2
- data/lib/algoliasearch-rails.rb +10 -6
- data/lib/algoliasearch/pagination/kaminari.rb +10 -17
- data/spec/spec_helper.rb +9 -1
- data/spec/utilities_spec.rb +2 -0
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e635be8a862c1b400648ec0873a4b6fc0a3130cd
|
|
4
|
+
data.tar.gz: 538164527a1e15d90b0633857a274ac2cdf8af0a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 09612510c5fc94be32f0e24d11878c81b9a748e8c0c137fbc8faa35c9c00921f61eaad8a3235eff78c3d9249d83b86410e0be3c8e84da7cd37520be2e853764a
|
|
7
|
+
data.tar.gz: 7b56015514e9eae09cd479a0dd16168abfdfe8fca3db309afea5904f9a222af2804995928f974e829b55527b6b3288726a28cce967847bcd1f74f185fe7a3fcd
|
data/ChangeLog
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
CHANGELOG
|
|
2
2
|
|
|
3
|
+
2014-03-17 1.9.2
|
|
4
|
+
|
|
5
|
+
* Raise an exception while attempting to index a non-saved object (blank objectID)
|
|
6
|
+
|
|
3
7
|
2014-03-06 1.9.1
|
|
4
8
|
|
|
5
9
|
* When using MongoId, the `reindex!` method was calling add_objects too many times. (credits go to sush.io)
|
|
6
10
|
|
|
7
|
-
|
|
8
11
|
2014-02-24 1.9.0
|
|
9
12
|
|
|
10
13
|
* Upgrade to algoliasearch 1.2.5 and algoliasearch-client-js 2.4.2
|
data/Gemfile
CHANGED
|
@@ -6,7 +6,7 @@ gem 'rubysl', '~> 2.0', platform: :rbx
|
|
|
6
6
|
|
|
7
7
|
group :test do
|
|
8
8
|
gem 'rspec', '>= 2.5.0'
|
|
9
|
-
gem '
|
|
9
|
+
gem 'rails', '>= 3.0.7'
|
|
10
10
|
gem 'sqlite3', platform: [:rbx, :ruby]
|
|
11
11
|
gem 'jdbc-sqlite3', platform: :jruby
|
|
12
12
|
gem 'activerecord-jdbc-adapter', platform: :jruby
|
|
@@ -18,9 +18,12 @@ group :test do
|
|
|
18
18
|
end
|
|
19
19
|
|
|
20
20
|
group :development do
|
|
21
|
-
gem 'will_paginate', '>= 2.3.15'
|
|
22
|
-
gem 'kaminari'
|
|
23
21
|
gem 'travis'
|
|
24
22
|
gem 'rake'
|
|
25
23
|
gem 'rdoc'
|
|
26
24
|
end
|
|
25
|
+
|
|
26
|
+
group :test, :development do
|
|
27
|
+
gem 'will_paginate', '>= 2.3.15'
|
|
28
|
+
gem 'kaminari'
|
|
29
|
+
end
|
data/Gemfile.lock
CHANGED
|
@@ -2,6 +2,9 @@ GEM
|
|
|
2
2
|
remote: http://rubygems.org/
|
|
3
3
|
specs:
|
|
4
4
|
ZenTest (4.9.5)
|
|
5
|
+
actionmailer (4.0.2)
|
|
6
|
+
actionpack (= 4.0.2)
|
|
7
|
+
mail (~> 2.5.4)
|
|
5
8
|
actionpack (4.0.2)
|
|
6
9
|
activesupport (= 4.0.2)
|
|
7
10
|
builder (~> 3.1.0)
|
|
@@ -33,8 +36,8 @@ GEM
|
|
|
33
36
|
httpclient (~> 2.3)
|
|
34
37
|
json (>= 1.5.1)
|
|
35
38
|
arel (4.0.1)
|
|
36
|
-
atomic (1.1.
|
|
37
|
-
atomic (1.1.
|
|
39
|
+
atomic (1.1.15)
|
|
40
|
+
atomic (1.1.15-java)
|
|
38
41
|
autotest (4.4.6)
|
|
39
42
|
ZenTest (>= 4.4.1)
|
|
40
43
|
autotest-fsevent (0.2.9)
|
|
@@ -63,6 +66,7 @@ GEM
|
|
|
63
66
|
net-http-persistent (>= 2.7)
|
|
64
67
|
net-http-pipeline
|
|
65
68
|
highline (1.6.20)
|
|
69
|
+
hike (1.2.3)
|
|
66
70
|
httpclient (2.3.4.1)
|
|
67
71
|
i18n (0.6.9)
|
|
68
72
|
jdbc-sqlite3 (3.7.2.1)
|
|
@@ -76,13 +80,17 @@ GEM
|
|
|
76
80
|
launchy (2.4.2-java)
|
|
77
81
|
addressable (~> 2.3)
|
|
78
82
|
spoon (~> 0.0.1)
|
|
83
|
+
mail (2.5.4)
|
|
84
|
+
mime-types (~> 1.16)
|
|
85
|
+
treetop (~> 1.4.8)
|
|
79
86
|
method_source (0.8.2)
|
|
80
87
|
mime-types (1.25.1)
|
|
81
88
|
minitest (4.7.5)
|
|
82
|
-
multi_json (1.
|
|
89
|
+
multi_json (1.9.0)
|
|
83
90
|
multipart-post (1.2.0)
|
|
84
91
|
net-http-persistent (2.9.1)
|
|
85
92
|
net-http-pipeline (1.0.1)
|
|
93
|
+
polyglot (0.3.4)
|
|
86
94
|
pry (0.9.12.6)
|
|
87
95
|
coderay (~> 1.0)
|
|
88
96
|
method_source (~> 0.8)
|
|
@@ -97,6 +105,19 @@ GEM
|
|
|
97
105
|
rack (1.5.2)
|
|
98
106
|
rack-test (0.6.2)
|
|
99
107
|
rack (>= 1.0)
|
|
108
|
+
rails (4.0.2)
|
|
109
|
+
actionmailer (= 4.0.2)
|
|
110
|
+
actionpack (= 4.0.2)
|
|
111
|
+
activerecord (= 4.0.2)
|
|
112
|
+
activesupport (= 4.0.2)
|
|
113
|
+
bundler (>= 1.3.0, < 2.0)
|
|
114
|
+
railties (= 4.0.2)
|
|
115
|
+
sprockets-rails (~> 2.0.0)
|
|
116
|
+
railties (4.0.2)
|
|
117
|
+
actionpack (= 4.0.2)
|
|
118
|
+
activesupport (= 4.0.2)
|
|
119
|
+
rake (>= 0.8.7)
|
|
120
|
+
thor (>= 0.18.1, < 2.0)
|
|
100
121
|
rake (10.1.1)
|
|
101
122
|
rdoc (4.1.1)
|
|
102
123
|
json (~> 1.4)
|
|
@@ -314,13 +335,24 @@ GEM
|
|
|
314
335
|
slop (3.4.7)
|
|
315
336
|
spoon (0.0.4)
|
|
316
337
|
ffi
|
|
338
|
+
sprockets (2.10.1)
|
|
339
|
+
hike (~> 1.2)
|
|
340
|
+
multi_json (~> 1.0)
|
|
341
|
+
rack (~> 1.0)
|
|
342
|
+
tilt (~> 1.1, != 1.3.0)
|
|
343
|
+
sprockets-rails (2.0.1)
|
|
344
|
+
actionpack (>= 3.0)
|
|
345
|
+
activesupport (>= 3.0)
|
|
346
|
+
sprockets (~> 2.8)
|
|
317
347
|
sqlite3 (1.3.8)
|
|
318
348
|
sys-uname (0.9.2)
|
|
319
349
|
ffi (>= 1.0.0)
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
350
|
+
thor (0.18.1)
|
|
351
|
+
thread_safe (0.2.0)
|
|
352
|
+
atomic (>= 1.1.7, < 2)
|
|
353
|
+
thread_safe (0.2.0-java)
|
|
354
|
+
atomic (>= 1.1.7, < 2)
|
|
355
|
+
tilt (1.4.1)
|
|
324
356
|
travis (1.6.7)
|
|
325
357
|
addressable (~> 2.3)
|
|
326
358
|
backports
|
|
@@ -332,9 +364,12 @@ GEM
|
|
|
332
364
|
pry (~> 0.9)
|
|
333
365
|
pusher-client (~> 0.4)
|
|
334
366
|
typhoeus (~> 0.6)
|
|
367
|
+
treetop (1.4.15)
|
|
368
|
+
polyglot
|
|
369
|
+
polyglot (>= 0.3.1)
|
|
335
370
|
typhoeus (0.6.7)
|
|
336
371
|
ethon (~> 0.6.2)
|
|
337
|
-
tzinfo (0.3.
|
|
372
|
+
tzinfo (0.3.39)
|
|
338
373
|
websocket (1.0.7)
|
|
339
374
|
will_paginate (3.0.5)
|
|
340
375
|
|
|
@@ -343,7 +378,6 @@ PLATFORMS
|
|
|
343
378
|
ruby
|
|
344
379
|
|
|
345
380
|
DEPENDENCIES
|
|
346
|
-
activerecord (>= 3.0.7)
|
|
347
381
|
activerecord-jdbc-adapter
|
|
348
382
|
activerecord-jdbcsqlite3-adapter
|
|
349
383
|
algoliasearch (~> 1.2)
|
|
@@ -353,6 +387,7 @@ DEPENDENCIES
|
|
|
353
387
|
jdbc-sqlite3
|
|
354
388
|
json (>= 1.5.1)
|
|
355
389
|
kaminari
|
|
390
|
+
rails (>= 3.0.7)
|
|
356
391
|
rake
|
|
357
392
|
rdoc
|
|
358
393
|
redgreen
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.9.
|
|
1
|
+
1.9.2
|
data/algoliasearch-rails.gemspec
CHANGED
|
@@ -6,11 +6,11 @@
|
|
|
6
6
|
|
|
7
7
|
Gem::Specification.new do |s|
|
|
8
8
|
s.name = "algoliasearch-rails"
|
|
9
|
-
s.version = "1.9.
|
|
9
|
+
s.version = "1.9.2"
|
|
10
10
|
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
12
12
|
s.authors = ["Algolia"]
|
|
13
|
-
s.date = "2014-03-
|
|
13
|
+
s.date = "2014-03-17"
|
|
14
14
|
s.description = "AlgoliaSearch integration to your favorite ORM"
|
|
15
15
|
s.email = "contact@algolia.com"
|
|
16
16
|
s.extra_rdoc_files = [
|
data/lib/algoliasearch-rails.rb
CHANGED
|
@@ -187,30 +187,34 @@ module AlgoliaSearch
|
|
|
187
187
|
|
|
188
188
|
def algolia_index!(object, synchronous = false)
|
|
189
189
|
return if @algolia_without_auto_index_scope
|
|
190
|
+
object_id = algolia_object_id_of(object)
|
|
191
|
+
raise ArgumentError.new("Cannot index a blank objectID") if object_id.blank?
|
|
190
192
|
algolia_ensure_init
|
|
191
193
|
if algolia_indexable?(object)
|
|
192
194
|
if synchronous
|
|
193
|
-
@algolia_index.add_object!(algolia_index_settings.get_attributes(object),
|
|
195
|
+
@algolia_index.add_object!(algolia_index_settings.get_attributes(object), object_id)
|
|
194
196
|
else
|
|
195
|
-
@algolia_index.add_object(algolia_index_settings.get_attributes(object),
|
|
197
|
+
@algolia_index.add_object(algolia_index_settings.get_attributes(object), object_id)
|
|
196
198
|
end
|
|
197
199
|
elsif algolia_conditional_index?
|
|
198
200
|
# remove non-indexable objects
|
|
199
201
|
if synchronous
|
|
200
|
-
@algolia_index.delete_object!(
|
|
202
|
+
@algolia_index.delete_object!(object_id)
|
|
201
203
|
else
|
|
202
|
-
@algolia_index.delete_object(
|
|
204
|
+
@algolia_index.delete_object(object_id)
|
|
203
205
|
end
|
|
204
206
|
end
|
|
205
207
|
end
|
|
206
208
|
|
|
207
209
|
def algolia_remove_from_index!(object, synchronous = false)
|
|
208
210
|
return if @algolia_without_auto_index_scope
|
|
211
|
+
object_id = algolia_object_id_of(object)
|
|
212
|
+
raise ArgumentError.new("Cannot index a blank objectID") if object_id.blank?
|
|
209
213
|
algolia_ensure_init
|
|
210
214
|
if synchronous
|
|
211
|
-
@algolia_index.delete_object!(
|
|
215
|
+
@algolia_index.delete_object!(object_id)
|
|
212
216
|
else
|
|
213
|
-
@algolia_index.delete_object(
|
|
217
|
+
@algolia_index.delete_object(object_id)
|
|
214
218
|
end
|
|
215
219
|
end
|
|
216
220
|
|
|
@@ -2,36 +2,29 @@ unless defined? Kaminari
|
|
|
2
2
|
raise(AlgoliaSearch::BadConfiguration, "AlgoliaSearch: Please add 'kaminari' to your Gemfile to use kaminari pagination backend")
|
|
3
3
|
end
|
|
4
4
|
|
|
5
|
+
require "kaminari/models/array_extension"
|
|
6
|
+
|
|
5
7
|
module AlgoliaSearch
|
|
6
8
|
module Pagination
|
|
7
|
-
class Kaminari <
|
|
8
|
-
include ::Kaminari::ConfigurationMethods::ClassMethods
|
|
9
|
-
include ::Kaminari::PageScopeMethods
|
|
10
|
-
|
|
11
|
-
attr_reader :limit_value, :offset_value, :total_count
|
|
12
|
-
|
|
13
|
-
def initialize(original_array, limit_val, offset_val, total_count)
|
|
14
|
-
@limit_value = limit_val || default_per_page
|
|
15
|
-
@offset_value, @total_count = offset_val, total_count
|
|
16
|
-
super(original_array)
|
|
17
|
-
end
|
|
9
|
+
class Kaminari < ::Kaminari::PaginatableArray
|
|
18
10
|
|
|
19
|
-
def
|
|
20
|
-
|
|
11
|
+
def initialize(array, options)
|
|
12
|
+
super(array, options)
|
|
21
13
|
end
|
|
22
14
|
|
|
23
15
|
def limit(num)
|
|
16
|
+
# noop
|
|
24
17
|
self
|
|
25
18
|
end
|
|
26
19
|
|
|
27
|
-
def
|
|
28
|
-
|
|
20
|
+
def offset(num)
|
|
21
|
+
# noop
|
|
22
|
+
self
|
|
29
23
|
end
|
|
30
24
|
|
|
31
25
|
class << self
|
|
32
26
|
def create(results, total_hits, options = {})
|
|
33
|
-
|
|
34
|
-
instance
|
|
27
|
+
new results, offset: ((options[:page] - 1) * options[:per_page]), limit: options[:per_page], total_count: total_hits
|
|
35
28
|
end
|
|
36
29
|
end
|
|
37
30
|
end
|
data/spec/spec_helper.rb
CHANGED
|
@@ -8,13 +8,21 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
|
|
8
8
|
|
|
9
9
|
require 'algoliasearch-rails'
|
|
10
10
|
require 'rspec'
|
|
11
|
+
require 'rails/all'
|
|
11
12
|
|
|
12
13
|
raise "missing ALGOLIA_APPLICATION_ID or ALGOLIA_API_KEY environment variables" if ENV['ALGOLIA_APPLICATION_ID'].nil? || ENV['ALGOLIA_API_KEY'].nil?
|
|
13
14
|
|
|
14
|
-
|
|
15
|
+
Thread.current[:algolia_hosts] = nil
|
|
15
16
|
|
|
16
17
|
RSpec.configure do |c|
|
|
17
18
|
c.mock_with :rspec
|
|
18
19
|
c.filter_run focus: true
|
|
19
20
|
c.run_all_when_everything_filtered = true
|
|
20
21
|
end
|
|
22
|
+
|
|
23
|
+
# avoid concurrent access to the same index
|
|
24
|
+
def safe_index_name(name)
|
|
25
|
+
return name if ENV['TRAVIS'].to_s != "true"
|
|
26
|
+
id = ENV['TRAVIS_JOB_NUMBER'].split('.').last
|
|
27
|
+
"#{name}_travis-#{id}"
|
|
28
|
+
end
|
data/spec/utilities_spec.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: algoliasearch-rails
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.9.
|
|
4
|
+
version: 1.9.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Algolia
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2014-03-
|
|
11
|
+
date: 2014-03-17 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: json
|