algoliasearch-rails 1.23.2 → 2.1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7ac9c6a0bf5ab646bcde8da6a321cab385e1875e258e5a2f2e50120ae7fbd9f0
4
- data.tar.gz: 1aef47abb42a2e5cf0fa5201560523c73a44488c763b38b6ad3ad82e55337340
3
+ metadata.gz: e9f821e4bb84fd0a2217a6ed58bbdef6ae894e18641ec2a9bbfb82b6f37103a8
4
+ data.tar.gz: fde9d6939506c96144fdd28b7ca09fb5702415d0518664958c5fef86f4631143
5
5
  SHA512:
6
- metadata.gz: 0e4a6e309538e45b67b32b53f041b217cb249fd7dce3a61158b4d256a7d984a1d6b8bdddee38bc5665ff3721c1fdc62042037b385b2a86d0773e84c921abc0ed
7
- data.tar.gz: 2dfd9c286a3a12b2a9ca37f0d29669abb5a6454a3368f0c8a0265fed5155c6f3af8f727ec5552ea334b955c78f6dc16918c99ba7db7d54adbe66cd1c84f47db1
6
+ metadata.gz: b371672188be5d851ed39bc3c9bfb7efceed38ce1a1c74b00f444c09c741ac9fd8aec3378aeccd4b5f15cd237944a11fdfbf37e5354934a84088205543a1eda1
7
+ data.tar.gz: fef38d14f51f32a39acee326c955fe07ff7860f8c7c1a4afed26615453fdefbd0427dd91562d12415e5d512cf087abb20144d830355a0928f54c18526696471d
data/.travis.yml CHANGED
@@ -8,6 +8,7 @@ matrix:
8
8
  include:
9
9
  - rvm: 1.8.7
10
10
  env: RAILS_VERSION=3.2.0 SEQUEL_VERSION=4.0
11
+ dist: trusty
11
12
  - rvm: 1.9.3
12
13
  env: RAILS_VERSION=3.2.0
13
14
  - rvm: 1.9.3
@@ -32,8 +33,16 @@ matrix:
32
33
  env: RAILS_VERSION=5.1 SEQUEL_VERSION=5.0
33
34
  - rvm: 2.5.3
34
35
  env: RAILS_VERSION=5.1 SEQUEL_VERSION=5.0
36
+ - rvm: 2.5.3
37
+ env: RAILS_VERSION=6.0 SEQUEL_VERSION=5.0
38
+ - rvm: 2.6.0
39
+ env: RAILS_VERSION=5.2 SEQUEL_VERSION=5.0
35
40
  - rvm: 2.6.0
41
+ env: RAILS_VERSION=6.0 SEQUEL_VERSION=5.0
42
+ - rvm: 2.7.0
36
43
  env: RAILS_VERSION=5.2 SEQUEL_VERSION=5.0
44
+ - rvm: 2.7.0
45
+ env: RAILS_VERSION=6.0 SEQUEL_VERSION=5.0
37
46
 
38
47
  before_install:
39
48
  - wget http://api-key-dealer.herokuapp.com/clients/algolia-keys && chmod +x algolia-keys
@@ -1,5 +1,39 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## [Unreleased](https://github.com/algolia/algoliasearch-rails/compare/2.0.0...master)
4
+
5
+ ## [2.1.0](https://github.com/algolia/algoliasearch-rails/compare/2.1.0...2.0.0)
6
+ ### Added
7
+ - Add support for [virtual replicas](https://www.algolia.com/doc/guides/managing-results/refine-results/sorting/in-depth/replicas/#what-are-virtual-replicas) ([#386](https://github.com/algolia/algoliasearch-rails/pull/386))
8
+
9
+ ## [2.0.0](https://github.com/algolia/algoliasearch-rails/compare/2.0.0...1.25.0)
10
+
11
+ ### Breaking changes
12
+ - Adds support for `algolia` gem.
13
+ - Drops support for Ruby < 2.4
14
+ - Drops support for Rails < 5.1
15
+
16
+ ## [1.25.0](https://github.com/algolia/algoliasearch-rails/compare/1.24.1...1.25.0) (2020-11-24)
17
+
18
+ ### Added
19
+ - Pass array argument to geoloc ([#372](https://github.com/algolia/algoliasearch-rails/pull/372))
20
+ - Containerize the repo ([#391](https://github.com/algolia/algoliasearch-rails/pull/391))
21
+
22
+ ### Fixed
23
+ - Use Zeitwerk for loading models in Rails 6 ([#364](https://github.com/algolia/algoliasearch-rails/pull/364))
24
+
25
+ ## [1.24.1](https://github.com/algolia/algoliasearch-rails/releases/tag/1.24.1) (2020-07-15)
26
+
27
+ **Fixed**
28
+
29
+ * Fixes ruby warning 'Proc.new is deprecated'
30
+
31
+ ## [1.24.0](https://github.com/algolia/algoliasearch-rails/releases/tag/1.24.0) (2020-02-21)
32
+
33
+ **Added**
34
+
35
+ * Adds indexLanguages in index settings
36
+
3
37
  ## [1.23.2](https://github.com/algolia/algoliasearch-rails/releases/tag/1.23.2) (2019-06-26)
4
38
 
5
39
  **Fixed**
data/Gemfile CHANGED
@@ -1,41 +1,22 @@
1
1
  source "http://rubygems.org"
2
2
 
3
- gem 'json', '~> 1.8', '>= 1.8.6'
4
- gem 'algoliasearch', '>= 1.26.0', '< 2.0.0'
3
+ gem 'json', '>= 1.5.1'
4
+ gem 'algolia', '< 3.0.0'
5
5
 
6
6
  if defined?(RUBY_ENGINE) && RUBY_ENGINE == 'rbx'
7
7
  gem 'rubysl', '~> 2.0', :platform => :rbx
8
8
  end
9
9
 
10
10
  group :test do
11
- rails_version = ENV["RAILS_VERSION"] ? "~> #{ENV["RAILS_VERSION"]}" : '>= 3.2.0'
12
- gem 'rails', rails_version
11
+ rails_version = ENV["RAILS_VERSION"] || '6.1'
12
+ gem 'rails', "~> #{rails_version}"
13
13
  gem 'active_model_serializers'
14
- if defined?(RUBY_VERSION) && RUBY_VERSION == "1.8.7"
15
- gem 'i18n', '< 0.7'
16
- gem 'highline', '< 1.7'
17
- gem 'addressable', '<= 2.2.7'
18
- gem 'rack-cache', '< 1.3'
19
- gem 'mime-types', '< 2.6'
20
- gem 'net-http-persistent', '< 3.0'
21
- gem 'faraday', '< 0.10'
22
- elsif defined?(RUBY_VERSION) && RUBY_VERSION == "1.9.3"
23
- gem 'rack', '< 2'
24
- gem 'rack-cache', '<= 1.7.1'
25
- if Gem::Version.new(ENV['RAILS_VERSION'] || '3.2.0') >= Gem::Version.new('4.0')
26
- gem 'mime-types', '~> 2.6'
27
- else
28
- gem 'mime-types', '< 3'
29
- end
30
- end
31
- if defined?(RUBY_VERSION) &&
32
- defined?(RUBY_ENGINE) &&
33
- RUBY_ENGINE == 'ruby' &&
34
- Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.1')
35
- gem 'net-http-persistent', '< 3.0'
14
+ if Gem::Version.new(rails_version) >= Gem::Version.new('6.0')
15
+ gem 'sqlite3', '~> 1.4.0', :platform => [:rbx, :ruby]
16
+ else
17
+ gem 'sqlite3', '< 1.4.0', :platform => [:rbx, :ruby]
36
18
  end
37
19
  gem 'rspec', '>= 2.5.0', '< 3.0'
38
- gem 'sqlite3', '< 1.4.0', :platform => [:rbx, :ruby]
39
20
  gem 'jdbc-sqlite3', :platform => :jruby
40
21
  gem 'activerecord-jdbc-adapter', :platform => :jruby
41
22
  gem 'activerecord-jdbcsqlite3-adapter', :platform => :jruby
@@ -53,13 +34,6 @@ end
53
34
 
54
35
  group :test, :development do
55
36
  gem 'will_paginate', '>= 2.3.15'
56
- if defined?(RUBY_VERSION) &&
57
- defined?(RUBY_ENGINE) &&
58
- RUBY_ENGINE == 'ruby' &&
59
- Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2')
60
- gem 'kaminari', '< 1'
61
- else
62
- gem 'kaminari'
63
- end
37
+ gem 'kaminari', '< 1'
64
38
  end
65
39
 
data/Gemfile.lock CHANGED
@@ -1,72 +1,90 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
- actioncable (5.2.3)
5
- actionpack (= 5.2.3)
4
+ actioncable (6.1.3.1)
5
+ actionpack (= 6.1.3.1)
6
+ activesupport (= 6.1.3.1)
6
7
  nio4r (~> 2.0)
7
8
  websocket-driver (>= 0.6.1)
8
- actionmailer (5.2.3)
9
- actionpack (= 5.2.3)
10
- actionview (= 5.2.3)
11
- activejob (= 5.2.3)
9
+ actionmailbox (6.1.3.1)
10
+ actionpack (= 6.1.3.1)
11
+ activejob (= 6.1.3.1)
12
+ activerecord (= 6.1.3.1)
13
+ activestorage (= 6.1.3.1)
14
+ activesupport (= 6.1.3.1)
15
+ mail (>= 2.7.1)
16
+ actionmailer (6.1.3.1)
17
+ actionpack (= 6.1.3.1)
18
+ actionview (= 6.1.3.1)
19
+ activejob (= 6.1.3.1)
20
+ activesupport (= 6.1.3.1)
12
21
  mail (~> 2.5, >= 2.5.4)
13
22
  rails-dom-testing (~> 2.0)
14
- actionpack (5.2.3)
15
- actionview (= 5.2.3)
16
- activesupport (= 5.2.3)
17
- rack (~> 2.0)
23
+ actionpack (6.1.3.1)
24
+ actionview (= 6.1.3.1)
25
+ activesupport (= 6.1.3.1)
26
+ rack (~> 2.0, >= 2.0.9)
18
27
  rack-test (>= 0.6.3)
19
28
  rails-dom-testing (~> 2.0)
20
- rails-html-sanitizer (~> 1.0, >= 1.0.2)
21
- actionview (5.2.3)
22
- activesupport (= 5.2.3)
29
+ rails-html-sanitizer (~> 1.0, >= 1.2.0)
30
+ actiontext (6.1.3.1)
31
+ actionpack (= 6.1.3.1)
32
+ activerecord (= 6.1.3.1)
33
+ activestorage (= 6.1.3.1)
34
+ activesupport (= 6.1.3.1)
35
+ nokogiri (>= 1.8.5)
36
+ actionview (6.1.3.1)
37
+ activesupport (= 6.1.3.1)
23
38
  builder (~> 3.1)
24
39
  erubi (~> 1.4)
25
40
  rails-dom-testing (~> 2.0)
26
- rails-html-sanitizer (~> 1.0, >= 1.0.3)
27
- active_model_serializers (0.10.9)
28
- actionpack (>= 4.1, < 6)
29
- activemodel (>= 4.1, < 6)
41
+ rails-html-sanitizer (~> 1.1, >= 1.2.0)
42
+ active_model_serializers (0.10.12)
43
+ actionpack (>= 4.1, < 6.2)
44
+ activemodel (>= 4.1, < 6.2)
30
45
  case_transform (>= 0.2)
31
46
  jsonapi-renderer (>= 0.1.1.beta1, < 0.3)
32
- activejob (5.2.3)
33
- activesupport (= 5.2.3)
47
+ activejob (6.1.3.1)
48
+ activesupport (= 6.1.3.1)
34
49
  globalid (>= 0.3.6)
35
- activemodel (5.2.3)
36
- activesupport (= 5.2.3)
37
- activerecord (5.2.3)
38
- activemodel (= 5.2.3)
39
- activesupport (= 5.2.3)
40
- arel (>= 9.0)
41
- activestorage (5.2.3)
42
- actionpack (= 5.2.3)
43
- activerecord (= 5.2.3)
44
- marcel (~> 0.3.1)
45
- activesupport (5.2.3)
50
+ activemodel (6.1.3.1)
51
+ activesupport (= 6.1.3.1)
52
+ activerecord (6.1.3.1)
53
+ activemodel (= 6.1.3.1)
54
+ activesupport (= 6.1.3.1)
55
+ activestorage (6.1.3.1)
56
+ actionpack (= 6.1.3.1)
57
+ activejob (= 6.1.3.1)
58
+ activerecord (= 6.1.3.1)
59
+ activesupport (= 6.1.3.1)
60
+ marcel (~> 1.0.0)
61
+ mini_mime (~> 1.0.2)
62
+ activesupport (6.1.3.1)
46
63
  concurrent-ruby (~> 1.0, >= 1.0.2)
47
- i18n (>= 0.7, < 2)
48
- minitest (~> 5.1)
49
- tzinfo (~> 1.1)
64
+ i18n (>= 1.6, < 2)
65
+ minitest (>= 5.1)
66
+ tzinfo (~> 2.0)
67
+ zeitwerk (~> 2.3)
50
68
  addressable (2.4.0)
51
- algoliasearch (1.26.0)
52
- httpclient (~> 2.8, >= 2.8.3)
53
- json (>= 1.5.1)
54
- arel (9.0.0)
55
- backports (3.15.0)
56
- builder (3.2.3)
69
+ algolia (2.0.4)
70
+ faraday (>= 0.15, < 2.0)
71
+ multi_json (~> 1.0)
72
+ net-http-persistent
73
+ backports (3.21.0)
74
+ builder (3.2.4)
57
75
  case_transform (0.2)
58
76
  activesupport
59
- concurrent-ruby (1.1.5)
60
- crass (1.0.4)
61
- diff-lcs (1.3)
62
- erubi (1.8.0)
63
- ethon (0.12.0)
64
- ffi (>= 1.3.0)
65
- faraday (0.15.4)
77
+ concurrent-ruby (1.1.8)
78
+ crass (1.0.6)
79
+ diff-lcs (1.4.4)
80
+ erubi (1.10.0)
81
+ ethon (0.13.0)
82
+ ffi (>= 1.15.0)
83
+ faraday (0.17.4)
66
84
  multipart-post (>= 1.2, < 3)
67
- faraday_middleware (0.13.1)
85
+ faraday_middleware (0.14.0)
68
86
  faraday (>= 0.7.4, < 1.0)
69
- ffi (1.11.1)
87
+ ffi (1.15.0)
70
88
  gh (0.15.1)
71
89
  addressable (~> 2.4.0)
72
90
  backports
@@ -77,76 +95,68 @@ GEM
77
95
  globalid (0.4.2)
78
96
  activesupport (>= 4.2.0)
79
97
  highline (1.7.10)
80
- httpclient (2.8.3)
81
- i18n (1.6.0)
98
+ i18n (1.8.10)
82
99
  concurrent-ruby (~> 1.0)
83
- json (1.8.6)
100
+ json (2.5.1)
84
101
  jsonapi-renderer (0.2.2)
85
- kaminari (1.1.1)
86
- activesupport (>= 4.1.0)
87
- kaminari-actionview (= 1.1.1)
88
- kaminari-activerecord (= 1.1.1)
89
- kaminari-core (= 1.1.1)
90
- kaminari-actionview (1.1.1)
91
- actionview
92
- kaminari-core (= 1.1.1)
93
- kaminari-activerecord (1.1.1)
94
- activerecord
95
- kaminari-core (= 1.1.1)
96
- kaminari-core (1.1.1)
102
+ kaminari (0.17.0)
103
+ actionpack (>= 3.0.0)
104
+ activesupport (>= 3.0.0)
97
105
  launchy (2.4.3)
98
106
  addressable (~> 2.3)
99
- loofah (2.2.3)
107
+ loofah (2.9.1)
100
108
  crass (~> 1.0.2)
101
109
  nokogiri (>= 1.5.9)
102
110
  mail (2.7.1)
103
111
  mini_mime (>= 0.1.1)
104
- marcel (0.3.3)
105
- mimemagic (~> 0.3.2)
106
- method_source (0.9.2)
107
- mimemagic (0.3.3)
108
- mini_mime (1.0.1)
109
- mini_portile2 (2.4.0)
110
- minitest (5.11.3)
111
- multi_json (1.13.1)
112
+ marcel (1.0.1)
113
+ method_source (1.0.0)
114
+ mini_mime (1.0.3)
115
+ mini_portile2 (2.5.0)
116
+ minitest (5.14.4)
117
+ multi_json (1.15.0)
112
118
  multipart-post (2.1.1)
113
119
  net-http-persistent (2.9.4)
114
120
  net-http-pipeline (1.0.1)
115
- nio4r (2.3.1)
116
- nokogiri (1.10.3)
117
- mini_portile2 (~> 2.4.0)
121
+ nio4r (2.5.7)
122
+ nokogiri (1.11.3)
123
+ mini_portile2 (~> 2.5.0)
124
+ racc (~> 1.4)
118
125
  pusher-client (0.6.2)
119
126
  json
120
127
  websocket (~> 1.0)
121
- rack (2.0.7)
128
+ racc (1.5.2)
129
+ rack (2.2.3)
122
130
  rack-test (1.1.0)
123
131
  rack (>= 1.0, < 3)
124
- rails (5.2.3)
125
- actioncable (= 5.2.3)
126
- actionmailer (= 5.2.3)
127
- actionpack (= 5.2.3)
128
- actionview (= 5.2.3)
129
- activejob (= 5.2.3)
130
- activemodel (= 5.2.3)
131
- activerecord (= 5.2.3)
132
- activestorage (= 5.2.3)
133
- activesupport (= 5.2.3)
134
- bundler (>= 1.3.0)
135
- railties (= 5.2.3)
132
+ rails (6.1.3.1)
133
+ actioncable (= 6.1.3.1)
134
+ actionmailbox (= 6.1.3.1)
135
+ actionmailer (= 6.1.3.1)
136
+ actionpack (= 6.1.3.1)
137
+ actiontext (= 6.1.3.1)
138
+ actionview (= 6.1.3.1)
139
+ activejob (= 6.1.3.1)
140
+ activemodel (= 6.1.3.1)
141
+ activerecord (= 6.1.3.1)
142
+ activestorage (= 6.1.3.1)
143
+ activesupport (= 6.1.3.1)
144
+ bundler (>= 1.15.0)
145
+ railties (= 6.1.3.1)
136
146
  sprockets-rails (>= 2.0.0)
137
147
  rails-dom-testing (2.0.3)
138
148
  activesupport (>= 4.2.0)
139
149
  nokogiri (>= 1.6)
140
- rails-html-sanitizer (1.0.4)
141
- loofah (~> 2.2, >= 2.2.2)
142
- railties (5.2.3)
143
- actionpack (= 5.2.3)
144
- activesupport (= 5.2.3)
150
+ rails-html-sanitizer (1.3.0)
151
+ loofah (~> 2.3)
152
+ railties (6.1.3.1)
153
+ actionpack (= 6.1.3.1)
154
+ activesupport (= 6.1.3.1)
145
155
  method_source
146
156
  rake (>= 0.8.7)
147
- thor (>= 0.19.0, < 2.0)
157
+ thor (~> 1.0)
148
158
  rake (10.1.1)
149
- rdoc (6.1.1)
159
+ rdoc (6.3.0)
150
160
  redgreen (1.2.2)
151
161
  rspec (2.99.0)
152
162
  rspec-core (~> 2.99.0)
@@ -156,18 +166,17 @@ GEM
156
166
  rspec-expectations (2.99.2)
157
167
  diff-lcs (>= 1.1.3, < 2.0)
158
168
  rspec-mocks (2.99.4)
159
- sequel (5.21.0)
160
- sprockets (3.7.2)
169
+ sequel (5.43.0)
170
+ sprockets (4.0.2)
161
171
  concurrent-ruby (~> 1.0)
162
172
  rack (> 1, < 3)
163
- sprockets-rails (3.2.1)
173
+ sprockets-rails (3.2.2)
164
174
  actionpack (>= 4.0)
165
175
  activesupport (>= 4.0)
166
176
  sprockets (>= 3.0.0)
167
- sqlite3 (1.3.13)
168
- thor (0.20.3)
169
- thread_safe (0.3.6)
170
- travis (1.8.10)
177
+ sqlite3 (1.4.2)
178
+ thor (1.1.0)
179
+ travis (1.8.13)
171
180
  backports
172
181
  faraday (~> 0.9)
173
182
  faraday_middleware (~> 0.9, >= 0.9.1)
@@ -178,13 +187,14 @@ GEM
178
187
  typhoeus (~> 0.6, >= 0.6.8)
179
188
  typhoeus (0.8.0)
180
189
  ethon (>= 0.8.0)
181
- tzinfo (1.2.5)
182
- thread_safe (~> 0.1)
183
- websocket (1.2.8)
184
- websocket-driver (0.7.1)
190
+ tzinfo (2.0.4)
191
+ concurrent-ruby (~> 1.0)
192
+ websocket (1.2.9)
193
+ websocket-driver (0.7.3)
185
194
  websocket-extensions (>= 0.1.0)
186
- websocket-extensions (0.1.4)
187
- will_paginate (3.1.7)
195
+ websocket-extensions (0.1.5)
196
+ will_paginate (3.3.0)
197
+ zeitwerk (2.4.2)
188
198
 
189
199
  PLATFORMS
190
200
  ruby
@@ -193,19 +203,19 @@ DEPENDENCIES
193
203
  active_model_serializers
194
204
  activerecord-jdbc-adapter
195
205
  activerecord-jdbcsqlite3-adapter
196
- algoliasearch (>= 1.26.0, < 2.0.0)
206
+ algolia (< 3.0.0)
197
207
  jdbc-sqlite3
198
- json (~> 1.8, >= 1.8.6)
199
- kaminari
200
- rails (>= 3.2.0)
208
+ json (>= 1.5.1)
209
+ kaminari (< 1)
210
+ rails (~> 6.1)
201
211
  rake (~> 10.1.0)
202
212
  rdoc
203
213
  redgreen
204
214
  rspec (>= 2.5.0, < 3.0)
205
215
  sequel (>= 4.0)
206
- sqlite3 (< 1.4.0)
216
+ sqlite3 (~> 1.4.0)
207
217
  travis
208
218
  will_paginate (>= 2.3.15)
209
219
 
210
220
  BUNDLED WITH
211
- 2.0.1
221
+ 2.1.4
data/README.md CHANGED
@@ -1,9 +1,28 @@
1
-
2
- # Algolia Search API Client for Rails
3
-
4
- [Algolia Search](https://www.algolia.com) is a hosted search engine capable of delivering real-time results from the first keystroke.
5
-
6
- [![Build Status](https://travis-ci.org/algolia/algoliasearch-rails.svg?branch=master)](https://travis-ci.org/algolia/algoliasearch-rails) [![Gem Version](https://badge.fury.io/rb/algoliasearch-rails.svg)](http://badge.fury.io/rb/algoliasearch-rails) [![Code Climate](https://codeclimate.com/github/algolia/algoliasearch-rails.svg)](https://codeclimate.com/github/algolia/algoliasearch-rails) ![ActiveRecord](https://img.shields.io/badge/ActiveRecord-yes-blue.svg?style=flat-square) ![Mongoid](https://img.shields.io/badge/Mongoid-yes-blue.svg?style=flat-square) ![Sequel](https://img.shields.io/badge/Sequel-yes-blue.svg?style=flat-square)
1
+ <p align="center">
2
+ <a href="https://www.algolia.com">
3
+ <img alt="Algolia for Rails" src="https://raw.githubusercontent.com/algolia/algoliasearch-client-common/master/banners/rails.png" >
4
+ </a>
5
+
6
+ <h4 align="center">The perfect starting point to integrate <a href="https://algolia.com" target="_blank">Algolia</a> within your Rails project</h4>
7
+
8
+ <p align="center">
9
+ <a href="https://circleci.com/gh/algolia/algoliasearch-rails"><img src="https://circleci.com/gh/algolia/algoliasearch-rails.svg?style=shield" alt="CircleCI" /></a>
10
+ <a href="http://badge.fury.io/rb/algoliasearch-rails"><img src="https://badge.fury.io/rb/algoliasearch-rails.svg" alt="Gem Version"></img></a>
11
+ <a href="https://codeclimate.com/github/algolia/algoliasearch-rails"><img src="https://codeclimate.com/github/algolia/algoliasearch-rails.svg" alt="Code Climate"></img></a>
12
+ <img src="https://img.shields.io/badge/ActiveRecord-yes-blue.svg?style=flat-square" alt="ActiveRecord"></img>
13
+ <img src="https://img.shields.io/badge/Mongoid-yes-blue.svg?style=flat-square" alt="Mongoid"></img>
14
+ <img src="https://img.shields.io/badge/Sequel-yes-blue.svg?style=flat-square" alt="Sequel"></img>
15
+ </p>
16
+ </p>
17
+
18
+ <p align="center">
19
+ <a href="https://www.algolia.com/doc/framework-integration/rails/getting-started/setup/?language=ruby" target="_blank">Documentation</a> •
20
+ <a href="https://discourse.algolia.com" target="_blank">Community Forum</a> •
21
+ <a href="http://stackoverflow.com/questions/tagged/algolia" target="_blank">Stack Overflow</a> •
22
+ <a href="https://github.com/algolia/algoliasearch-rails/issues" target="_blank">Report a bug</a> •
23
+ <a href="https://www.algolia.com/doc/framework-integration/rails/troubleshooting/faq/" target="_blank">FAQ</a> •
24
+ <a href="https://www.algolia.com/support" target="_blank">Support</a>
25
+ </p>
7
26
 
8
27
 
9
28
  This gem let you easily integrate the Algolia Search API to your favorite ORM. It's based on the [algoliasearch-client-ruby](https://github.com/algolia/algoliasearch-client-ruby) gem.
@@ -64,6 +83,8 @@ You can find the full reference on [Algolia's website](https://www.algolia.com/d
64
83
  1. **[Testing](#testing)**
65
84
  * [Notes](#notes)
66
85
 
86
+ 1. **[Troubleshooting](#troubleshooting)**
87
+ * [Frequently asked questions](#frequently-asked-questions)
67
88
 
68
89
 
69
90
 
@@ -142,7 +163,7 @@ class Contact < ActiveRecord::Base
142
163
  include AlgoliaSearch
143
164
 
144
165
  algoliasearch do
145
- attribute :first_name, :last_name, :email
166
+ attributes :first_name, :last_name, :email
146
167
  end
147
168
  end
148
169
  ```
@@ -1163,4 +1184,11 @@ end
1163
1184
  ```
1164
1185
 
1165
1186
 
1187
+ ## ❓ Troubleshooting
1188
+
1189
+ Encountering an issue? Before reaching out to support, we recommend heading to our [FAQ](https://www.algolia.com/doc/api-client/troubleshooting/faq/ruby/) where you will find answers for the most common issues and gotchas with the client.
1190
+
1191
+ ## Use the Dockerfile
1192
+
1193
+ If you want to contribute to this project without installing all its dependencies, you can use our Docker image. Please check our [dedicated guide](DOCKER_README.MD) to learn more.
1166
1194
 
@@ -14,7 +14,7 @@ Gem::Specification.new do |s|
14
14
  s.description = "AlgoliaSearch integration to your favorite ORM"
15
15
  s.email = "contact@algolia.com"
16
16
  s.extra_rdoc_files = [
17
- "ChangeLog",
17
+ "CHANGELOG.MD",
18
18
  "LICENSE",
19
19
  "README.md"
20
20
  ]
@@ -22,7 +22,7 @@ Gem::Specification.new do |s|
22
22
  ".document",
23
23
  ".rspec",
24
24
  ".travis.yml",
25
- "ChangeLog",
25
+ "CHANGELOG.MD",
26
26
  "Gemfile",
27
27
  "Gemfile.lock",
28
28
  "LICENSE",
@@ -79,7 +79,7 @@ Gem::Specification.new do |s|
79
79
 
80
80
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
81
81
  s.add_runtime_dependency(%q<json>, [">= 1.5.1"])
82
- s.add_runtime_dependency(%q<algoliasearch>, [">= 1.26.0", "< 2.0.0"])
82
+ s.add_runtime_dependency(%q<algolia>, ["< 3.0.0"])
83
83
  s.add_development_dependency(%q<will_paginate>, [">= 2.3.15"])
84
84
  s.add_development_dependency(%q<kaminari>, [">= 0"])
85
85
  s.add_development_dependency "travis"
@@ -87,11 +87,11 @@ Gem::Specification.new do |s|
87
87
  s.add_development_dependency "rdoc"
88
88
  else
89
89
  s.add_dependency(%q<json>, [">= 1.5.1"])
90
- s.add_dependency(%q<algoliasearch>, [">= 1.26.0", "< 2.0.0"])
90
+ s.add_dependency(%q<algolia>, ["< 3.0.0"])
91
91
  end
92
92
  else
93
93
  s.add_dependency(%q<json>, [">= 1.5.1"])
94
- s.add_dependency(%q<algoliasearch>, [">= 1.26.0", "< 2.0.0"])
94
+ s.add_dependency(%q<algolia>, ["< 3.0.0"])
95
95
  end
96
96
  end
97
97
 
@@ -1,4 +1,4 @@
1
- require 'algoliasearch'
1
+ require 'algolia'
2
2
 
3
3
  require 'algoliasearch/version'
4
4
  require 'algoliasearch/utilities'
@@ -53,7 +53,6 @@ module AlgoliaSearch
53
53
  OPTIONS = [
54
54
  # Attributes
55
55
  :searchableAttributes, :attributesForFaceting, :unretrievableAttributes, :attributesToRetrieve,
56
- :attributesToIndex, #Legacy name of searchableAttributes
57
56
  # Ranking
58
57
  :ranking, :customRanking, # Replicas are handled via `add_replica`
59
58
  # Faceting
@@ -68,7 +67,7 @@ module AlgoliaSearch
68
67
  :disableTypoToleranceOnAttributes, :disableTypoToleranceOnWords, :separatorsToIndex,
69
68
  # Language
70
69
  :ignorePlurals, :removeStopWords, :camelCaseAttributes, :decompoundedAttributes,
71
- :keepDiacriticsOnCharacters, :queryLanguages,
70
+ :keepDiacriticsOnCharacters, :queryLanguages, :indexLanguages,
72
71
  # Query Rules
73
72
  :enableRules,
74
73
  # Query Strategy
@@ -76,7 +75,6 @@ module AlgoliaSearch
76
75
  :disablePrefixOnAttributes, :disableExactOnAttributes, :exactOnSingleWordQuery, :alternativesAsExact,
77
76
  # Performance
78
77
  :numericAttributesForFiltering, :allowCompressionOfIntegerArray,
79
- :numericAttributesToIndex, # Legacy name of numericAttributesForFiltering
80
78
  # Advanced
81
79
  :attributeForDistinct, :distinct, :replaceSynonymsInHighlight, :minProximity, :responseFields,
82
80
  :maxFacetHits,
@@ -90,9 +88,9 @@ module AlgoliaSearch
90
88
  end
91
89
  end
92
90
 
93
- def initialize(options, block)
91
+ def initialize(options, &block)
94
92
  @options = options
95
- instance_exec(&block) if block
93
+ instance_exec(&block) if block_given?
96
94
  end
97
95
 
98
96
  def use_serializer(serializer)
@@ -102,7 +100,7 @@ module AlgoliaSearch
102
100
 
103
101
  def attribute(*names, &block)
104
102
  raise ArgumentError.new('Cannot pass multiple attribute names if block given') if block_given? and names.length > 1
105
- raise ArgumentError.new('Cannot specify additional attributes on a replica index') if @options[:slave] || @options[:replica]
103
+ raise ArgumentError.new('Cannot specify additional attributes on a replica index') if @options[:replica]
106
104
  @attributes ||= {}
107
105
  names.flatten.each do |name|
108
106
  @attributes[name.to_s] = block_given? ? Proc.new { |o| o.instance_eval(&block) } : Proc.new { |o| o.send(name) }
@@ -112,7 +110,7 @@ module AlgoliaSearch
112
110
 
113
111
  def add_attribute(*names, &block)
114
112
  raise ArgumentError.new('Cannot pass multiple attribute names if block given') if block_given? and names.length > 1
115
- raise ArgumentError.new('Cannot specify additional attributes on a replica index') if @options[:slave] || @options[:replica]
113
+ raise ArgumentError.new('Cannot specify additional attributes on a replica index') if @options[:replica]
116
114
  @additional_attributes ||= {}
117
115
  names.each do |name|
118
116
  @additional_attributes[name.to_s] = block_given? ? Proc.new { |o| o.instance_eval(&block) } : Proc.new { |o| o.send(name) }
@@ -223,15 +221,15 @@ module AlgoliaSearch
223
221
  end
224
222
  end
225
223
 
226
- def geoloc(lat_attr, lng_attr)
227
- raise ArgumentError.new('Cannot specify additional attributes on a replica index') if @options[:slave] || @options[:replica]
224
+ def geoloc(lat_attr = nil, lng_attr = nil, &block)
225
+ raise ArgumentError.new('Cannot specify additional attributes on a replica index') if @options[:replica]
228
226
  add_attribute :_geoloc do |o|
229
- { :lat => o.send(lat_attr).to_f, :lng => o.send(lng_attr).to_f }
227
+ block_given? ? o.instance_eval(&block) : { :lat => o.send(lat_attr).to_f, :lng => o.send(lng_attr).to_f }
230
228
  end
231
229
  end
232
230
 
233
231
  def tags(*args, &block)
234
- raise ArgumentError.new('Cannot specify additional attributes on a replica index') if @options[:slave] || @options[:replica]
232
+ raise ArgumentError.new('Cannot specify additional attributes on a replica index') if @options[:replica]
235
233
  add_attribute :_tags do |o|
236
234
  v = block_given? ? o.instance_eval(&block) : args
237
235
  v.is_a?(Array) ? v : [v]
@@ -248,16 +246,12 @@ module AlgoliaSearch
248
246
  v = get_setting(k)
249
247
  settings[k] = v if !v.nil?
250
248
  end
251
- if !@options[:slave] && !@options[:replica]
252
- settings[:slaves] = additional_indexes.select { |opts, s| opts[:slave] }.map do |opts, s|
253
- name = opts[:index_name]
254
- name = "#{name}_#{Rails.env.to_s}" if opts[:per_environment]
255
- name
256
- end
257
- settings.delete(:slaves) if settings[:slaves].empty?
249
+
250
+ if !@options[:replica]
258
251
  settings[:replicas] = additional_indexes.select { |opts, s| opts[:replica] }.map do |opts, s|
259
252
  name = opts[:index_name]
260
253
  name = "#{name}_#{Rails.env.to_s}" if opts[:per_environment]
254
+ name = "virtual(#{name})" if opts[:virtual]
261
255
  name
262
256
  end
263
257
  settings.delete(:replicas) if settings[:replicas].empty?
@@ -266,27 +260,20 @@ module AlgoliaSearch
266
260
  end
267
261
 
268
262
  def add_index(index_name, options = {}, &block)
269
- raise ArgumentError.new('Cannot specify additional index on a replica index') if @options[:slave] || @options[:replica]
263
+ raise ArgumentError.new('Cannot specify additional index on a replica index') if @options[:replica]
270
264
  raise ArgumentError.new('No block given') if !block_given?
271
265
  raise ArgumentError.new('Options auto_index and auto_remove cannot be set on nested indexes') if options[:auto_index] || options[:auto_remove]
272
266
  @additional_indexes ||= {}
273
- raise MixedSlavesAndReplicas.new('Cannot mix slaves and replicas in the same configuration (add_slave is deprecated)') if (options[:slave] && @additional_indexes.any? { |opts, _| opts[:replica] }) || (options[:replica] && @additional_indexes.any? { |opts, _| opts[:slave] })
274
267
  options[:index_name] = index_name
275
- @additional_indexes[options] = IndexSettings.new(options, Proc.new)
268
+ @additional_indexes[options] = IndexSettings.new(options, &block)
276
269
  end
277
270
 
278
271
  def add_replica(index_name, options = {}, &block)
279
- raise ArgumentError.new('Cannot specify additional replicas on a replica index') if @options[:slave] || @options[:replica]
272
+ raise ArgumentError.new('Cannot specify additional replicas on a replica index') if @options[:replica]
280
273
  raise ArgumentError.new('No block given') if !block_given?
281
274
  add_index(index_name, options.merge({ :replica => true, :primary_settings => self }), &block)
282
275
  end
283
276
 
284
- def add_slave(index_name, options = {}, &block)
285
- raise ArgumentError.new('Cannot specify additional slaves on a slave index') if @options[:slave] || @options[:replica]
286
- raise ArgumentError.new('No block given') if !block_given?
287
- add_index(index_name, options.merge({ :slave => true, :primary_settings => self }), &block)
288
- end
289
-
290
277
  def additional_indexes
291
278
  @additional_indexes || {}
292
279
  end
@@ -304,11 +291,11 @@ module AlgoliaSearch
304
291
  # are correctly logged or thrown depending on the `raise_on_failure` option
305
292
  class SafeIndex
306
293
  def initialize(name, raise_on_failure)
307
- @index = ::Algolia::Index.new(name)
294
+ @index = AlgoliaSearch.client.init_index(name)
308
295
  @raise_on_failure = raise_on_failure.nil? || raise_on_failure
309
296
  end
310
297
 
311
- ::Algolia::Index.instance_methods(false).each do |m|
298
+ ::Algolia::Search::Index.instance_methods(false).each do |m|
312
299
  define_method(m) do |*args, &block|
313
300
  SafeIndex.log_or_throw(m, @raise_on_failure) do
314
301
  @index.send(m, *args, &block)
@@ -329,7 +316,7 @@ module AlgoliaSearch
329
316
  SafeIndex.log_or_throw(:get_settings, @raise_on_failure) do
330
317
  begin
331
318
  @index.get_settings(*args)
332
- rescue Algolia::AlgoliaError => e
319
+ rescue Algolia::AlgoliaHttpError => e
333
320
  return {} if e.code == 404 # not fatal
334
321
  raise e
335
322
  end
@@ -339,7 +326,7 @@ module AlgoliaSearch
339
326
  # expose move as well
340
327
  def self.move_index(old_name, new_name)
341
328
  SafeIndex.log_or_throw(:move_index, true) do
342
- ::Algolia.move_index(old_name, new_name)
329
+ AlgoliaSearch.client.move_index(old_name, new_name)
343
330
  end
344
331
  end
345
332
 
@@ -389,7 +376,7 @@ module AlgoliaSearch
389
376
  end
390
377
 
391
378
  def algoliasearch(options = {}, &block)
392
- self.algoliasearch_settings = IndexSettings.new(options, block_given? ? Proc.new : nil)
379
+ self.algoliasearch_settings = IndexSettings.new(options, &block)
393
380
  self.algoliasearch_options = { :type => algolia_full_const_get(model_name.to_s), :per_page => algoliasearch_settings.get_setting(:hitsPerPage) || 10, :page => 1 }.merge(options)
394
381
 
395
382
  attr_accessor :highlight_result, :snippet_result
@@ -511,7 +498,7 @@ module AlgoliaSearch
511
498
  algolia_configurations.each do |options, settings|
512
499
  next if algolia_indexing_disabled?(options)
513
500
  index = algolia_ensure_init(options, settings)
514
- next if options[:slave] || options[:replica]
501
+ next if options[:replica]
515
502
  last_task = nil
516
503
 
517
504
  algolia_find_in_batches(batch_size) do |group|
@@ -531,7 +518,7 @@ module AlgoliaSearch
531
518
  end
532
519
  last_task = index.save_objects(objects)
533
520
  end
534
- index.wait_task(last_task["taskID"]) if last_task and (synchronous || options[:synchronous])
521
+ index.wait_task(last_task.raw_response["taskID"]) if last_task and (synchronous || options[:synchronous])
535
522
  end
536
523
  nil
537
524
  end
@@ -541,7 +528,7 @@ module AlgoliaSearch
541
528
  return if algolia_without_auto_index_scope
542
529
  algolia_configurations.each do |options, settings|
543
530
  next if algolia_indexing_disabled?(options)
544
- next if options[:slave] || options[:replica]
531
+ next if options[:replica]
545
532
 
546
533
  # fetch the master settings
547
534
  master_index = algolia_ensure_init(options, settings)
@@ -549,8 +536,6 @@ module AlgoliaSearch
549
536
  master_settings.merge!(JSON.parse(settings.to_settings.to_json)) # convert symbols to strings
550
537
 
551
538
  # remove the replicas of the temporary index
552
- master_settings.delete :slaves
553
- master_settings.delete 'slaves'
554
539
  master_settings.delete :replicas
555
540
  master_settings.delete 'replicas'
556
541
 
@@ -562,7 +547,7 @@ module AlgoliaSearch
562
547
  tmp_settings = settings.dup
563
548
 
564
549
  if options[:check_settings] == false
565
- ::Algolia::copy_index!(src_index_name, tmp_index_name, %w(settings synonyms rules))
550
+ @client.copy_index!(src_index_name, tmp_index_name, %w(settings synonyms rules))
566
551
  tmp_index = SafeIndex.new(tmp_index_name, !!options[:raise_on_failure])
567
552
  else
568
553
  tmp_index = algolia_ensure_init(tmp_options, tmp_settings, master_settings)
@@ -578,7 +563,7 @@ module AlgoliaSearch
578
563
  end
579
564
 
580
565
  move_task = SafeIndex.move_index(tmp_index.name, src_index_name)
581
- master_index.wait_task(move_task["taskID"]) if synchronous || options[:synchronous]
566
+ master_index.wait_task(move_task.raw_response["taskID"]) if synchronous || options[:synchronous]
582
567
  end
583
568
  nil
584
569
  end
@@ -587,8 +572,6 @@ module AlgoliaSearch
587
572
  algolia_configurations.each do |options, settings|
588
573
  if options[:primary_settings] && options[:inherit]
589
574
  primary = options[:primary_settings].to_settings
590
- primary.delete :slaves
591
- primary.delete 'slaves'
592
575
  primary.delete :replicas
593
576
  primary.delete 'replicas'
594
577
  final_settings = primary.merge(settings.to_settings)
@@ -598,7 +581,7 @@ module AlgoliaSearch
598
581
 
599
582
  index = SafeIndex.new(algolia_index_name(options), true)
600
583
  task = index.set_settings(final_settings)
601
- index.wait_task(task["taskID"]) if synchronous
584
+ index.wait_task(task.raw_response["taskID"]) if synchronous
602
585
  end
603
586
  end
604
587
 
@@ -606,9 +589,9 @@ module AlgoliaSearch
606
589
  algolia_configurations.each do |options, settings|
607
590
  next if algolia_indexing_disabled?(options)
608
591
  index = algolia_ensure_init(options, settings)
609
- next if options[:slave] || options[:replica]
592
+ next if options[:replica]
610
593
  task = index.save_objects(objects.map { |o| settings.get_attributes(o).merge 'objectID' => algolia_object_id_of(o, options) })
611
- index.wait_task(task["taskID"]) if synchronous || options[:synchronous]
594
+ index.wait_task(task.raw_response["taskID"]) if synchronous || options[:synchronous]
612
595
  end
613
596
  end
614
597
 
@@ -618,13 +601,13 @@ module AlgoliaSearch
618
601
  next if algolia_indexing_disabled?(options)
619
602
  object_id = algolia_object_id_of(object, options)
620
603
  index = algolia_ensure_init(options, settings)
621
- next if options[:slave] || options[:replica]
604
+ next if options[:replica]
622
605
  if algolia_indexable?(object, options)
623
606
  raise ArgumentError.new("Cannot index a record with a blank objectID") if object_id.blank?
624
607
  if synchronous || options[:synchronous]
625
- index.add_object!(settings.get_attributes(object), object_id)
608
+ index.save_object!(settings.get_attributes(object).merge 'objectID' => algolia_object_id_of(object, options))
626
609
  else
627
- index.add_object(settings.get_attributes(object), object_id)
610
+ index.save_object(settings.get_attributes(object).merge 'objectID' => algolia_object_id_of(object, options))
628
611
  end
629
612
  elsif algolia_conditional_index?(options) && !object_id.blank?
630
613
  # remove non-indexable objects
@@ -645,7 +628,7 @@ module AlgoliaSearch
645
628
  algolia_configurations.each do |options, settings|
646
629
  next if algolia_indexing_disabled?(options)
647
630
  index = algolia_ensure_init(options, settings)
648
- next if options[:slave] || options[:replica]
631
+ next if options[:replica]
649
632
  if synchronous || options[:synchronous]
650
633
  index.delete_object!(object_id)
651
634
  else
@@ -659,8 +642,8 @@ module AlgoliaSearch
659
642
  algolia_configurations.each do |options, settings|
660
643
  next if algolia_indexing_disabled?(options)
661
644
  index = algolia_ensure_init(options, settings)
662
- next if options[:slave] || options[:replica]
663
- synchronous || options[:synchronous] ? index.clear! : index.clear
645
+ next if options[:replica]
646
+ synchronous || options[:synchronous] ? index.clear_objects! : index.clear_objects
664
647
  @algolia_indexes[settings] = nil
665
648
  end
666
649
  nil
@@ -669,8 +652,6 @@ module AlgoliaSearch
669
652
  def algolia_raw_search(q, params = {})
670
653
  index_name = params.delete(:index) ||
671
654
  params.delete('index') ||
672
- params.delete(:slave) ||
673
- params.delete('slave') ||
674
655
  params.delete(:replica) ||
675
656
  params.delete('replica')
676
657
  index = algolia_index(index_name)
@@ -735,13 +716,11 @@ module AlgoliaSearch
735
716
  def algolia_search_for_facet_values(facet, text, params = {})
736
717
  index_name = params.delete(:index) ||
737
718
  params.delete('index') ||
738
- params.delete(:slave) ||
739
- params.delete('slave') ||
740
719
  params.delete(:replica) ||
741
720
  params.delete('replicas')
742
721
  index = algolia_index(index_name)
743
722
  query = Hash[params.map { |k, v| [k.to_s, v.to_s] }]
744
- index.search_facet(facet, text, query)['facetHits']
723
+ index.search_for_facet_values(facet, text, query)['facetHits']
745
724
  end
746
725
 
747
726
  # deprecated (renaming)
@@ -770,7 +749,7 @@ module AlgoliaSearch
770
749
  # Loop over each index to see if a attribute used in records has changed
771
750
  algolia_configurations.each do |options, settings|
772
751
  next if algolia_indexing_disabled?(options)
773
- next if options[:slave] || options[:replica]
752
+ next if options[:replica]
774
753
  return true if algolia_object_id_changed?(object, options)
775
754
  settings.get_attribute_names(object).each do |k|
776
755
  return true if algolia_attribute_changed?(object, k)
@@ -815,13 +794,10 @@ module AlgoliaSearch
815
794
  options[:check_settings] = true if options[:check_settings].nil?
816
795
 
817
796
  if !algolia_indexing_disabled?(options) && options[:check_settings] && algoliasearch_settings_changed?(current_settings, index_settings)
818
- used_slaves = !current_settings.nil? && !current_settings['slaves'].nil?
819
797
  replicas = index_settings.delete(:replicas) ||
820
- index_settings.delete('replicas') ||
821
- index_settings.delete(:slaves) ||
822
- index_settings.delete('slaves')
823
- index_settings[used_slaves ? :slaves : :replicas] = replicas unless replicas.nil? || options[:inherit]
824
- @algolia_indexes[settings].set_settings(index_settings)
798
+ index_settings.delete('replicas')
799
+ index_settings[:replicas] = replicas unless replicas.nil? || options[:inherit]
800
+ @algolia_indexes[settings].set_settings!(index_settings)
825
801
  end
826
802
 
827
803
  @algolia_indexes[settings]
@@ -1,14 +1,29 @@
1
1
  module AlgoliaSearch
2
2
  module Configuration
3
+ def initiliaze
4
+ @client = nil
5
+ end
6
+
3
7
  def configuration
4
8
  @@configuration || raise(NotConfigured, "Please configure AlgoliaSearch. Set AlgoliaSearch.configuration = {application_id: 'YOUR_APPLICATION_ID', api_key: 'YOUR_API_KEY'}")
5
9
  end
6
10
 
7
11
  def configuration=(configuration)
8
12
  @@configuration = configuration.merge(
9
- :user_agent => "Algolia for Rails (#{AlgoliaSearch::VERSION}); Rails (#{Rails::VERSION})"
13
+ :user_agent => "Algolia for Rails (#{AlgoliaSearch::VERSION}); Rails (#{Rails::VERSION::STRING})"
10
14
  )
11
- Algolia.init @@configuration
15
+ end
16
+
17
+ def client
18
+ if @client.nil?
19
+ setup_client
20
+ end
21
+
22
+ @client
23
+ end
24
+
25
+ def setup_client
26
+ @client = Algolia::Search::Client.create_with_config(Algolia::Search::Config.new(@@configuration))
12
27
  end
13
28
  end
14
29
  end
@@ -2,7 +2,11 @@ module AlgoliaSearch
2
2
  module Utilities
3
3
  class << self
4
4
  def get_model_classes
5
- Rails.application.eager_load! if Rails.application # Ensure all models are loaded (not necessary in production when cache_classes is true).
5
+ if Rails.application && defined?(Rails.autoloaders) && Rails.autoloaders.zeitwerk_enabled?
6
+ Zeitwerk::Loader.eager_load_all
7
+ elsif Rails.application
8
+ Rails.application.eager_load!
9
+ end
6
10
  AlgoliaSearch.instance_variable_get :@included_in
7
11
  end
8
12
 
@@ -1,3 +1,3 @@
1
1
  module AlgoliaSearch
2
- VERSION = '1.23.2'
2
+ VERSION = '2.1.0'
3
3
  end
data/spec/spec_helper.rb CHANGED
@@ -29,8 +29,9 @@ RSpec.configure do |c|
29
29
 
30
30
  # Remove all indexes setup in this run in local or CI
31
31
  c.after(:suite) do
32
- safe_index_list.each do |index|
33
- Algolia.client.delete_index!(index['name'])
32
+ safe_index_list.each do |i|
33
+ index = AlgoliaSearch.client.init_index(i['name'])
34
+ index.delete!
34
35
  end
35
36
  end
36
37
  end
@@ -45,7 +46,7 @@ end
45
46
 
46
47
  # get a list of safe indexes in local or CI
47
48
  def safe_index_list
48
- list = Algolia.client.list_indexes()['items']
49
+ list = AlgoliaSearch.client.list_indexes['items']
49
50
  list = list.select { |index| index["name"].include?(SAFE_INDEX_PREFIX) }
50
51
  list.sort_by { |index| index["primary"] || "" }
51
52
  end
@@ -1,6 +1,6 @@
1
1
  require File.expand_path(File.join(File.dirname(__FILE__), 'spec_helper'))
2
2
 
3
- AlgoliaSearch.configuration = { :application_id => ENV['ALGOLIA_APPLICATION_ID'], :api_key => ENV['ALGOLIA_API_KEY'] }
3
+ AlgoliaSearch.configuration = { :application_id => ENV['ALGOLIA_APPLICATION_ID'], :api_key => ENV['ALGOLIA_API_KEY'], :symbolize_keys => false }
4
4
 
5
5
  describe AlgoliaSearch::Utilities do
6
6
 
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.23.2
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Algolia
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-06-26 00:00:00.000000000 Z
11
+ date: 2021-06-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json
@@ -25,25 +25,19 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: 1.5.1
27
27
  - !ruby/object:Gem::Dependency
28
- name: algoliasearch
28
+ name: algolia
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: 1.26.0
34
31
  - - "<"
35
32
  - !ruby/object:Gem::Version
36
- version: 2.0.0
33
+ version: 3.0.0
37
34
  type: :runtime
38
35
  prerelease: false
39
36
  version_requirements: !ruby/object:Gem::Requirement
40
37
  requirements:
41
- - - ">="
42
- - !ruby/object:Gem::Version
43
- version: 1.26.0
44
38
  - - "<"
45
39
  - !ruby/object:Gem::Version
46
- version: 2.0.0
40
+ version: 3.0.0
47
41
  - !ruby/object:Gem::Dependency
48
42
  name: will_paginate
49
43
  requirement: !ruby/object:Gem::Requirement
@@ -119,14 +113,14 @@ email: contact@algolia.com
119
113
  executables: []
120
114
  extensions: []
121
115
  extra_rdoc_files:
122
- - ChangeLog
116
+ - CHANGELOG.MD
123
117
  - LICENSE
124
118
  - README.md
125
119
  files:
126
120
  - ".document"
127
121
  - ".rspec"
128
122
  - ".travis.yml"
129
- - ChangeLog
123
+ - CHANGELOG.MD
130
124
  - Gemfile
131
125
  - Gemfile.lock
132
126
  - LICENSE
@@ -173,7 +167,7 @@ homepage: http://github.com/algolia/algoliasearch-rails
173
167
  licenses:
174
168
  - MIT
175
169
  metadata: {}
176
- post_install_message:
170
+ post_install_message:
177
171
  rdoc_options: []
178
172
  require_paths:
179
173
  - lib
@@ -188,8 +182,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
188
182
  - !ruby/object:Gem::Version
189
183
  version: '0'
190
184
  requirements: []
191
- rubygems_version: 3.0.3
192
- signing_key:
185
+ rubygems_version: 3.0.6
186
+ signing_key:
193
187
  specification_version: 4
194
188
  summary: AlgoliaSearch integration to your favorite ORM
195
189
  test_files: []