algoliasearch-rails 1.25.0 → 2.0.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 +4 -4
- data/CHANGELOG.MD +8 -1
- data/Gemfile +9 -35
- data/Gemfile.lock +125 -116
- data/README.md +1 -1
- data/algoliasearch-rails.gemspec +3 -3
- data/lib/algoliasearch-rails.rb +31 -57
- data/lib/algoliasearch/configuration.rb +17 -2
- data/lib/algoliasearch/utilities.rb +1 -1
- data/lib/algoliasearch/version.rb +1 -1
- data/spec/spec_helper.rb +4 -3
- data/spec/utilities_spec.rb +1 -1
- metadata +7 -12
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d738368dd1684b9fa58b5507e65d0d7522930a6894e0e9684139fbd5def1a583
|
|
4
|
+
data.tar.gz: 8fdd59e52471fd184cf51092706fb345d699cd9d135385bd0a7ade084ec8dc2d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a9f4a61d1eafcda6ffbca4c585026ca54d9aed7fb3b03b36143c19b5ee504196b10e2a8be88b7083004fb0b070dfd12bb0dbfecaa987c1761c8afca31326eeea
|
|
7
|
+
data.tar.gz: 6a8fb2b05c4798965164fc2f651624b2a69935dfa3a22d7704bb312424b7e0f796e7c3d5e9bbdc6d9058f17fe06cc0ec40bd41ee06233f11ce98435906f2a235
|
data/CHANGELOG.MD
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
# CHANGELOG
|
|
2
2
|
|
|
3
|
-
## [Unreleased](https://github.com/algolia/algoliasearch-rails/compare/
|
|
3
|
+
## [Unreleased](https://github.com/algolia/algoliasearch-rails/compare/2.0.0...master)
|
|
4
|
+
|
|
5
|
+
## [2.0.0](https://github.com/algolia/algoliasearch-rails/compare/2.0.0...1.25.0)
|
|
6
|
+
|
|
7
|
+
### Breaking changes
|
|
8
|
+
- Adds support for `algolia` gem.
|
|
9
|
+
- Drops support for Ruby < 2.4
|
|
10
|
+
- Drops support for Rails < 5.1
|
|
4
11
|
|
|
5
12
|
## [1.25.0](https://github.com/algolia/algoliasearch-rails/compare/1.24.1...1.25.0) (2020-11-24)
|
|
6
13
|
|
data/Gemfile
CHANGED
|
@@ -1,41 +1,22 @@
|
|
|
1
1
|
source "http://rubygems.org"
|
|
2
2
|
|
|
3
|
-
gem 'json', '
|
|
4
|
-
gem '
|
|
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"]
|
|
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
|
|
15
|
-
gem '
|
|
16
|
-
|
|
17
|
-
gem '
|
|
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
|
-
|
|
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,153 +1,160 @@
|
|
|
1
1
|
GEM
|
|
2
2
|
remote: http://rubygems.org/
|
|
3
3
|
specs:
|
|
4
|
-
actioncable (
|
|
5
|
-
actionpack (=
|
|
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
|
-
|
|
9
|
-
actionpack (=
|
|
10
|
-
|
|
11
|
-
|
|
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 (
|
|
15
|
-
actionview (=
|
|
16
|
-
activesupport (=
|
|
17
|
-
rack (~> 2.0, >= 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
|
|
21
|
-
|
|
22
|
-
|
|
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.
|
|
27
|
-
active_model_serializers (0.10.
|
|
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 (
|
|
33
|
-
activesupport (=
|
|
47
|
+
activejob (6.1.3.1)
|
|
48
|
+
activesupport (= 6.1.3.1)
|
|
34
49
|
globalid (>= 0.3.6)
|
|
35
|
-
activemodel (
|
|
36
|
-
activesupport (=
|
|
37
|
-
activerecord (
|
|
38
|
-
activemodel (=
|
|
39
|
-
activesupport (=
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
activerecord (=
|
|
44
|
-
|
|
45
|
-
|
|
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 (>=
|
|
48
|
-
minitest (
|
|
49
|
-
tzinfo (~>
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
64
|
+
i18n (>= 1.6, < 2)
|
|
65
|
+
minitest (>= 5.1)
|
|
66
|
+
tzinfo (~> 2.0)
|
|
67
|
+
zeitwerk (~> 2.3)
|
|
68
|
+
addressable (2.4.0)
|
|
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)
|
|
56
74
|
builder (3.2.4)
|
|
57
75
|
case_transform (0.2)
|
|
58
76
|
activesupport
|
|
59
|
-
concurrent-ruby (1.1.
|
|
77
|
+
concurrent-ruby (1.1.8)
|
|
60
78
|
crass (1.0.6)
|
|
61
79
|
diff-lcs (1.4.4)
|
|
62
|
-
erubi (1.
|
|
63
|
-
|
|
80
|
+
erubi (1.10.0)
|
|
81
|
+
ethon (0.13.0)
|
|
82
|
+
ffi (>= 1.15.0)
|
|
83
|
+
faraday (0.17.4)
|
|
64
84
|
multipart-post (>= 1.2, < 3)
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
gh (0.
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
faraday (~>
|
|
72
|
-
faraday_middleware (~> 1.0)
|
|
85
|
+
faraday_middleware (0.14.0)
|
|
86
|
+
faraday (>= 0.7.4, < 1.0)
|
|
87
|
+
ffi (1.15.0)
|
|
88
|
+
gh (0.15.1)
|
|
89
|
+
addressable (~> 2.4.0)
|
|
90
|
+
backports
|
|
91
|
+
faraday (~> 0.8)
|
|
73
92
|
multi_json (~> 1.0)
|
|
74
93
|
net-http-persistent (~> 2.9)
|
|
75
94
|
net-http-pipeline
|
|
76
95
|
globalid (0.4.2)
|
|
77
96
|
activesupport (>= 4.2.0)
|
|
78
|
-
highline (
|
|
79
|
-
|
|
80
|
-
i18n (1.8.5)
|
|
97
|
+
highline (1.7.10)
|
|
98
|
+
i18n (1.8.10)
|
|
81
99
|
concurrent-ruby (~> 1.0)
|
|
82
|
-
json (
|
|
83
|
-
json_pure (2.3.1)
|
|
100
|
+
json (2.5.1)
|
|
84
101
|
jsonapi-renderer (0.2.2)
|
|
85
|
-
kaminari (
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
kaminari-activerecord (= 1.2.1)
|
|
89
|
-
kaminari-core (= 1.2.1)
|
|
90
|
-
kaminari-actionview (1.2.1)
|
|
91
|
-
actionview
|
|
92
|
-
kaminari-core (= 1.2.1)
|
|
93
|
-
kaminari-activerecord (1.2.1)
|
|
94
|
-
activerecord
|
|
95
|
-
kaminari-core (= 1.2.1)
|
|
96
|
-
kaminari-core (1.2.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.
|
|
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.
|
|
105
|
-
mimemagic (~> 0.3.2)
|
|
112
|
+
marcel (1.0.1)
|
|
106
113
|
method_source (1.0.0)
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
mini_portile2 (2.4.0)
|
|
110
|
-
minitest (5.14.2)
|
|
114
|
+
mini_mime (1.0.3)
|
|
115
|
+
minitest (5.14.4)
|
|
111
116
|
multi_json (1.15.0)
|
|
112
117
|
multipart-post (2.1.1)
|
|
113
118
|
net-http-persistent (2.9.4)
|
|
114
119
|
net-http-pipeline (1.0.1)
|
|
115
|
-
nio4r (2.5.
|
|
116
|
-
nokogiri (1.
|
|
117
|
-
|
|
118
|
-
public_suffix (4.0.6)
|
|
120
|
+
nio4r (2.5.7)
|
|
121
|
+
nokogiri (1.11.3-x86_64-darwin)
|
|
122
|
+
racc (~> 1.4)
|
|
119
123
|
pusher-client (0.6.2)
|
|
120
124
|
json
|
|
121
125
|
websocket (~> 1.0)
|
|
126
|
+
racc (1.5.2)
|
|
122
127
|
rack (2.2.3)
|
|
123
128
|
rack-test (1.1.0)
|
|
124
129
|
rack (>= 1.0, < 3)
|
|
125
|
-
rails (
|
|
126
|
-
actioncable (=
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
130
|
+
rails (6.1.3.1)
|
|
131
|
+
actioncable (= 6.1.3.1)
|
|
132
|
+
actionmailbox (= 6.1.3.1)
|
|
133
|
+
actionmailer (= 6.1.3.1)
|
|
134
|
+
actionpack (= 6.1.3.1)
|
|
135
|
+
actiontext (= 6.1.3.1)
|
|
136
|
+
actionview (= 6.1.3.1)
|
|
137
|
+
activejob (= 6.1.3.1)
|
|
138
|
+
activemodel (= 6.1.3.1)
|
|
139
|
+
activerecord (= 6.1.3.1)
|
|
140
|
+
activestorage (= 6.1.3.1)
|
|
141
|
+
activesupport (= 6.1.3.1)
|
|
142
|
+
bundler (>= 1.15.0)
|
|
143
|
+
railties (= 6.1.3.1)
|
|
137
144
|
sprockets-rails (>= 2.0.0)
|
|
138
145
|
rails-dom-testing (2.0.3)
|
|
139
146
|
activesupport (>= 4.2.0)
|
|
140
147
|
nokogiri (>= 1.6)
|
|
141
148
|
rails-html-sanitizer (1.3.0)
|
|
142
149
|
loofah (~> 2.3)
|
|
143
|
-
railties (
|
|
144
|
-
actionpack (=
|
|
145
|
-
activesupport (=
|
|
150
|
+
railties (6.1.3.1)
|
|
151
|
+
actionpack (= 6.1.3.1)
|
|
152
|
+
activesupport (= 6.1.3.1)
|
|
146
153
|
method_source
|
|
147
154
|
rake (>= 0.8.7)
|
|
148
|
-
thor (
|
|
155
|
+
thor (~> 1.0)
|
|
149
156
|
rake (10.1.1)
|
|
150
|
-
rdoc (6.
|
|
157
|
+
rdoc (6.3.0)
|
|
151
158
|
redgreen (1.2.2)
|
|
152
159
|
rspec (2.99.0)
|
|
153
160
|
rspec-core (~> 2.99.0)
|
|
@@ -157,8 +164,7 @@ GEM
|
|
|
157
164
|
rspec-expectations (2.99.2)
|
|
158
165
|
diff-lcs (>= 1.1.3, < 2.0)
|
|
159
166
|
rspec-mocks (2.99.4)
|
|
160
|
-
|
|
161
|
-
sequel (5.38.0)
|
|
167
|
+
sequel (5.43.0)
|
|
162
168
|
sprockets (4.0.2)
|
|
163
169
|
concurrent-ruby (~> 1.0)
|
|
164
170
|
rack (> 1, < 3)
|
|
@@ -166,45 +172,48 @@ GEM
|
|
|
166
172
|
actionpack (>= 4.0)
|
|
167
173
|
activesupport (>= 4.0)
|
|
168
174
|
sprockets (>= 3.0.0)
|
|
169
|
-
sqlite3 (1.
|
|
170
|
-
thor (1.0
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
faraday (~>
|
|
174
|
-
faraday_middleware (~>
|
|
175
|
+
sqlite3 (1.4.2)
|
|
176
|
+
thor (1.1.0)
|
|
177
|
+
travis (1.8.13)
|
|
178
|
+
backports
|
|
179
|
+
faraday (~> 0.9)
|
|
180
|
+
faraday_middleware (~> 0.9, >= 0.9.1)
|
|
175
181
|
gh (~> 0.13)
|
|
176
|
-
highline (~>
|
|
177
|
-
|
|
178
|
-
launchy (~> 2.1, < 2.5.0)
|
|
182
|
+
highline (~> 1.6)
|
|
183
|
+
launchy (~> 2.1)
|
|
179
184
|
pusher-client (~> 0.4)
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
185
|
+
typhoeus (~> 0.6, >= 0.6.8)
|
|
186
|
+
typhoeus (0.8.0)
|
|
187
|
+
ethon (>= 0.8.0)
|
|
188
|
+
tzinfo (2.0.4)
|
|
189
|
+
concurrent-ruby (~> 1.0)
|
|
190
|
+
websocket (1.2.9)
|
|
183
191
|
websocket-driver (0.7.3)
|
|
184
192
|
websocket-extensions (>= 0.1.0)
|
|
185
193
|
websocket-extensions (0.1.5)
|
|
186
194
|
will_paginate (3.3.0)
|
|
195
|
+
zeitwerk (2.4.2)
|
|
187
196
|
|
|
188
197
|
PLATFORMS
|
|
189
|
-
|
|
198
|
+
x86_64-darwin-19
|
|
190
199
|
|
|
191
200
|
DEPENDENCIES
|
|
192
201
|
active_model_serializers
|
|
193
202
|
activerecord-jdbc-adapter
|
|
194
203
|
activerecord-jdbcsqlite3-adapter
|
|
195
|
-
|
|
204
|
+
algolia (< 3.0.0)
|
|
196
205
|
jdbc-sqlite3
|
|
197
|
-
json (
|
|
198
|
-
kaminari
|
|
199
|
-
rails (
|
|
206
|
+
json (>= 1.5.1)
|
|
207
|
+
kaminari (< 1)
|
|
208
|
+
rails (~> 6.1)
|
|
200
209
|
rake (~> 10.1.0)
|
|
201
210
|
rdoc
|
|
202
211
|
redgreen
|
|
203
212
|
rspec (>= 2.5.0, < 3.0)
|
|
204
213
|
sequel (>= 4.0)
|
|
205
|
-
sqlite3 (
|
|
214
|
+
sqlite3 (~> 1.4.0)
|
|
206
215
|
travis
|
|
207
216
|
will_paginate (>= 2.3.15)
|
|
208
217
|
|
|
209
218
|
BUNDLED WITH
|
|
210
|
-
2.
|
|
219
|
+
2.2.15
|
data/README.md
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
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
7
|
|
|
8
8
|
<p align="center">
|
|
9
|
-
<a href="https://
|
|
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
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
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
12
|
<img src="https://img.shields.io/badge/ActiveRecord-yes-blue.svg?style=flat-square" alt="ActiveRecord"></img>
|
data/algoliasearch-rails.gemspec
CHANGED
|
@@ -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<
|
|
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<
|
|
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<
|
|
94
|
+
s.add_dependency(%q<algolia>, ["< 3.0.0"])
|
|
95
95
|
end
|
|
96
96
|
end
|
|
97
97
|
|
data/lib/algoliasearch-rails.rb
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
require '
|
|
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
|
|
@@ -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,
|
|
@@ -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[:
|
|
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[:
|
|
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) }
|
|
@@ -224,14 +222,14 @@ module AlgoliaSearch
|
|
|
224
222
|
end
|
|
225
223
|
|
|
226
224
|
def geoloc(lat_attr = nil, lng_attr = nil, &block)
|
|
227
|
-
raise ArgumentError.new('Cannot specify additional attributes on a replica index') if @options[:
|
|
225
|
+
raise ArgumentError.new('Cannot specify additional attributes on a replica index') if @options[:replica]
|
|
228
226
|
add_attribute :_geoloc do |o|
|
|
229
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[:
|
|
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,13 +246,7 @@ module AlgoliaSearch
|
|
|
248
246
|
v = get_setting(k)
|
|
249
247
|
settings[k] = v if !v.nil?
|
|
250
248
|
end
|
|
251
|
-
if !@options[:
|
|
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
|
+
if !@options[:replica]
|
|
258
250
|
settings[:replicas] = additional_indexes.select { |opts, s| opts[:replica] }.map do |opts, s|
|
|
259
251
|
name = opts[:index_name]
|
|
260
252
|
name = "#{name}_#{Rails.env.to_s}" if opts[:per_environment]
|
|
@@ -266,27 +258,20 @@ module AlgoliaSearch
|
|
|
266
258
|
end
|
|
267
259
|
|
|
268
260
|
def add_index(index_name, options = {}, &block)
|
|
269
|
-
raise ArgumentError.new('Cannot specify additional index on a replica index') if @options[:
|
|
261
|
+
raise ArgumentError.new('Cannot specify additional index on a replica index') if @options[:replica]
|
|
270
262
|
raise ArgumentError.new('No block given') if !block_given?
|
|
271
263
|
raise ArgumentError.new('Options auto_index and auto_remove cannot be set on nested indexes') if options[:auto_index] || options[:auto_remove]
|
|
272
264
|
@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
265
|
options[:index_name] = index_name
|
|
275
266
|
@additional_indexes[options] = IndexSettings.new(options, &block)
|
|
276
267
|
end
|
|
277
268
|
|
|
278
269
|
def add_replica(index_name, options = {}, &block)
|
|
279
|
-
raise ArgumentError.new('Cannot specify additional replicas on a replica index') if @options[:
|
|
270
|
+
raise ArgumentError.new('Cannot specify additional replicas on a replica index') if @options[:replica]
|
|
280
271
|
raise ArgumentError.new('No block given') if !block_given?
|
|
281
272
|
add_index(index_name, options.merge({ :replica => true, :primary_settings => self }), &block)
|
|
282
273
|
end
|
|
283
274
|
|
|
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
275
|
def additional_indexes
|
|
291
276
|
@additional_indexes || {}
|
|
292
277
|
end
|
|
@@ -304,11 +289,11 @@ module AlgoliaSearch
|
|
|
304
289
|
# are correctly logged or thrown depending on the `raise_on_failure` option
|
|
305
290
|
class SafeIndex
|
|
306
291
|
def initialize(name, raise_on_failure)
|
|
307
|
-
@index =
|
|
292
|
+
@index = AlgoliaSearch.client.init_index(name)
|
|
308
293
|
@raise_on_failure = raise_on_failure.nil? || raise_on_failure
|
|
309
294
|
end
|
|
310
295
|
|
|
311
|
-
::Algolia::Index.instance_methods(false).each do |m|
|
|
296
|
+
::Algolia::Search::Index.instance_methods(false).each do |m|
|
|
312
297
|
define_method(m) do |*args, &block|
|
|
313
298
|
SafeIndex.log_or_throw(m, @raise_on_failure) do
|
|
314
299
|
@index.send(m, *args, &block)
|
|
@@ -329,7 +314,7 @@ module AlgoliaSearch
|
|
|
329
314
|
SafeIndex.log_or_throw(:get_settings, @raise_on_failure) do
|
|
330
315
|
begin
|
|
331
316
|
@index.get_settings(*args)
|
|
332
|
-
rescue Algolia::
|
|
317
|
+
rescue Algolia::AlgoliaHttpError => e
|
|
333
318
|
return {} if e.code == 404 # not fatal
|
|
334
319
|
raise e
|
|
335
320
|
end
|
|
@@ -339,7 +324,7 @@ module AlgoliaSearch
|
|
|
339
324
|
# expose move as well
|
|
340
325
|
def self.move_index(old_name, new_name)
|
|
341
326
|
SafeIndex.log_or_throw(:move_index, true) do
|
|
342
|
-
|
|
327
|
+
AlgoliaSearch.client.move_index(old_name, new_name)
|
|
343
328
|
end
|
|
344
329
|
end
|
|
345
330
|
|
|
@@ -511,7 +496,7 @@ module AlgoliaSearch
|
|
|
511
496
|
algolia_configurations.each do |options, settings|
|
|
512
497
|
next if algolia_indexing_disabled?(options)
|
|
513
498
|
index = algolia_ensure_init(options, settings)
|
|
514
|
-
next if options[:
|
|
499
|
+
next if options[:replica]
|
|
515
500
|
last_task = nil
|
|
516
501
|
|
|
517
502
|
algolia_find_in_batches(batch_size) do |group|
|
|
@@ -531,7 +516,7 @@ module AlgoliaSearch
|
|
|
531
516
|
end
|
|
532
517
|
last_task = index.save_objects(objects)
|
|
533
518
|
end
|
|
534
|
-
index.wait_task(last_task["taskID"]) if last_task and (synchronous || options[:synchronous])
|
|
519
|
+
index.wait_task(last_task.raw_response["taskID"]) if last_task and (synchronous || options[:synchronous])
|
|
535
520
|
end
|
|
536
521
|
nil
|
|
537
522
|
end
|
|
@@ -541,7 +526,7 @@ module AlgoliaSearch
|
|
|
541
526
|
return if algolia_without_auto_index_scope
|
|
542
527
|
algolia_configurations.each do |options, settings|
|
|
543
528
|
next if algolia_indexing_disabled?(options)
|
|
544
|
-
next if options[:
|
|
529
|
+
next if options[:replica]
|
|
545
530
|
|
|
546
531
|
# fetch the master settings
|
|
547
532
|
master_index = algolia_ensure_init(options, settings)
|
|
@@ -549,8 +534,6 @@ module AlgoliaSearch
|
|
|
549
534
|
master_settings.merge!(JSON.parse(settings.to_settings.to_json)) # convert symbols to strings
|
|
550
535
|
|
|
551
536
|
# remove the replicas of the temporary index
|
|
552
|
-
master_settings.delete :slaves
|
|
553
|
-
master_settings.delete 'slaves'
|
|
554
537
|
master_settings.delete :replicas
|
|
555
538
|
master_settings.delete 'replicas'
|
|
556
539
|
|
|
@@ -562,7 +545,7 @@ module AlgoliaSearch
|
|
|
562
545
|
tmp_settings = settings.dup
|
|
563
546
|
|
|
564
547
|
if options[:check_settings] == false
|
|
565
|
-
|
|
548
|
+
@client.copy_index!(src_index_name, tmp_index_name, %w(settings synonyms rules))
|
|
566
549
|
tmp_index = SafeIndex.new(tmp_index_name, !!options[:raise_on_failure])
|
|
567
550
|
else
|
|
568
551
|
tmp_index = algolia_ensure_init(tmp_options, tmp_settings, master_settings)
|
|
@@ -578,7 +561,7 @@ module AlgoliaSearch
|
|
|
578
561
|
end
|
|
579
562
|
|
|
580
563
|
move_task = SafeIndex.move_index(tmp_index.name, src_index_name)
|
|
581
|
-
master_index.wait_task(move_task["taskID"]) if synchronous || options[:synchronous]
|
|
564
|
+
master_index.wait_task(move_task.raw_response["taskID"]) if synchronous || options[:synchronous]
|
|
582
565
|
end
|
|
583
566
|
nil
|
|
584
567
|
end
|
|
@@ -587,8 +570,6 @@ module AlgoliaSearch
|
|
|
587
570
|
algolia_configurations.each do |options, settings|
|
|
588
571
|
if options[:primary_settings] && options[:inherit]
|
|
589
572
|
primary = options[:primary_settings].to_settings
|
|
590
|
-
primary.delete :slaves
|
|
591
|
-
primary.delete 'slaves'
|
|
592
573
|
primary.delete :replicas
|
|
593
574
|
primary.delete 'replicas'
|
|
594
575
|
final_settings = primary.merge(settings.to_settings)
|
|
@@ -598,7 +579,7 @@ module AlgoliaSearch
|
|
|
598
579
|
|
|
599
580
|
index = SafeIndex.new(algolia_index_name(options), true)
|
|
600
581
|
task = index.set_settings(final_settings)
|
|
601
|
-
index.wait_task(task["taskID"]) if synchronous
|
|
582
|
+
index.wait_task(task.raw_response["taskID"]) if synchronous
|
|
602
583
|
end
|
|
603
584
|
end
|
|
604
585
|
|
|
@@ -606,9 +587,9 @@ module AlgoliaSearch
|
|
|
606
587
|
algolia_configurations.each do |options, settings|
|
|
607
588
|
next if algolia_indexing_disabled?(options)
|
|
608
589
|
index = algolia_ensure_init(options, settings)
|
|
609
|
-
next if options[:
|
|
590
|
+
next if options[:replica]
|
|
610
591
|
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]
|
|
592
|
+
index.wait_task(task.raw_response["taskID"]) if synchronous || options[:synchronous]
|
|
612
593
|
end
|
|
613
594
|
end
|
|
614
595
|
|
|
@@ -618,13 +599,13 @@ module AlgoliaSearch
|
|
|
618
599
|
next if algolia_indexing_disabled?(options)
|
|
619
600
|
object_id = algolia_object_id_of(object, options)
|
|
620
601
|
index = algolia_ensure_init(options, settings)
|
|
621
|
-
next if options[:
|
|
602
|
+
next if options[:replica]
|
|
622
603
|
if algolia_indexable?(object, options)
|
|
623
604
|
raise ArgumentError.new("Cannot index a record with a blank objectID") if object_id.blank?
|
|
624
605
|
if synchronous || options[:synchronous]
|
|
625
|
-
index.
|
|
606
|
+
index.save_object!(settings.get_attributes(object).merge 'objectID' => algolia_object_id_of(object, options))
|
|
626
607
|
else
|
|
627
|
-
index.
|
|
608
|
+
index.save_object(settings.get_attributes(object).merge 'objectID' => algolia_object_id_of(object, options))
|
|
628
609
|
end
|
|
629
610
|
elsif algolia_conditional_index?(options) && !object_id.blank?
|
|
630
611
|
# remove non-indexable objects
|
|
@@ -645,7 +626,7 @@ module AlgoliaSearch
|
|
|
645
626
|
algolia_configurations.each do |options, settings|
|
|
646
627
|
next if algolia_indexing_disabled?(options)
|
|
647
628
|
index = algolia_ensure_init(options, settings)
|
|
648
|
-
next if options[:
|
|
629
|
+
next if options[:replica]
|
|
649
630
|
if synchronous || options[:synchronous]
|
|
650
631
|
index.delete_object!(object_id)
|
|
651
632
|
else
|
|
@@ -659,8 +640,8 @@ module AlgoliaSearch
|
|
|
659
640
|
algolia_configurations.each do |options, settings|
|
|
660
641
|
next if algolia_indexing_disabled?(options)
|
|
661
642
|
index = algolia_ensure_init(options, settings)
|
|
662
|
-
next if options[:
|
|
663
|
-
synchronous || options[:synchronous] ? index.
|
|
643
|
+
next if options[:replica]
|
|
644
|
+
synchronous || options[:synchronous] ? index.clear_objects! : index.clear_objects
|
|
664
645
|
@algolia_indexes[settings] = nil
|
|
665
646
|
end
|
|
666
647
|
nil
|
|
@@ -669,8 +650,6 @@ module AlgoliaSearch
|
|
|
669
650
|
def algolia_raw_search(q, params = {})
|
|
670
651
|
index_name = params.delete(:index) ||
|
|
671
652
|
params.delete('index') ||
|
|
672
|
-
params.delete(:slave) ||
|
|
673
|
-
params.delete('slave') ||
|
|
674
653
|
params.delete(:replica) ||
|
|
675
654
|
params.delete('replica')
|
|
676
655
|
index = algolia_index(index_name)
|
|
@@ -735,13 +714,11 @@ module AlgoliaSearch
|
|
|
735
714
|
def algolia_search_for_facet_values(facet, text, params = {})
|
|
736
715
|
index_name = params.delete(:index) ||
|
|
737
716
|
params.delete('index') ||
|
|
738
|
-
params.delete(:slave) ||
|
|
739
|
-
params.delete('slave') ||
|
|
740
717
|
params.delete(:replica) ||
|
|
741
718
|
params.delete('replicas')
|
|
742
719
|
index = algolia_index(index_name)
|
|
743
720
|
query = Hash[params.map { |k, v| [k.to_s, v.to_s] }]
|
|
744
|
-
index.
|
|
721
|
+
index.search_for_facet_values(facet, text, query)['facetHits']
|
|
745
722
|
end
|
|
746
723
|
|
|
747
724
|
# deprecated (renaming)
|
|
@@ -770,7 +747,7 @@ module AlgoliaSearch
|
|
|
770
747
|
# Loop over each index to see if a attribute used in records has changed
|
|
771
748
|
algolia_configurations.each do |options, settings|
|
|
772
749
|
next if algolia_indexing_disabled?(options)
|
|
773
|
-
next if options[:
|
|
750
|
+
next if options[:replica]
|
|
774
751
|
return true if algolia_object_id_changed?(object, options)
|
|
775
752
|
settings.get_attribute_names(object).each do |k|
|
|
776
753
|
return true if algolia_attribute_changed?(object, k)
|
|
@@ -815,13 +792,10 @@ module AlgoliaSearch
|
|
|
815
792
|
options[:check_settings] = true if options[:check_settings].nil?
|
|
816
793
|
|
|
817
794
|
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
795
|
replicas = index_settings.delete(:replicas) ||
|
|
820
|
-
index_settings.delete('replicas')
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
index_settings[used_slaves ? :slaves : :replicas] = replicas unless replicas.nil? || options[:inherit]
|
|
824
|
-
@algolia_indexes[settings].set_settings(index_settings)
|
|
796
|
+
index_settings.delete('replicas')
|
|
797
|
+
index_settings[:replicas] = replicas unless replicas.nil? || options[:inherit]
|
|
798
|
+
@algolia_indexes[settings].set_settings!(index_settings)
|
|
825
799
|
end
|
|
826
800
|
|
|
827
801
|
@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
|
-
|
|
13
|
+
:user_agent => "Algolia for Rails (#{AlgoliaSearch::VERSION}); Rails (#{Rails::VERSION::STRING})"
|
|
10
14
|
)
|
|
11
|
-
|
|
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,7 @@ module AlgoliaSearch
|
|
|
2
2
|
module Utilities
|
|
3
3
|
class << self
|
|
4
4
|
def get_model_classes
|
|
5
|
-
if defined?(Rails.autoloaders) && Rails.autoloaders.zeitwerk_enabled?
|
|
5
|
+
if Rails.application && defined?(Rails.autoloaders) && Rails.autoloaders.zeitwerk_enabled?
|
|
6
6
|
Zeitwerk::Loader.eager_load_all
|
|
7
7
|
elsif Rails.application
|
|
8
8
|
Rails.application.eager_load!
|
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 |
|
|
33
|
-
|
|
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 =
|
|
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
|
data/spec/utilities_spec.rb
CHANGED
|
@@ -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:
|
|
4
|
+
version: 2.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Algolia
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2021-05-03 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:
|
|
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:
|
|
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:
|
|
40
|
+
version: 3.0.0
|
|
47
41
|
- !ruby/object:Gem::Dependency
|
|
48
42
|
name: will_paginate
|
|
49
43
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -188,7 +182,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
188
182
|
- !ruby/object:Gem::Version
|
|
189
183
|
version: '0'
|
|
190
184
|
requirements: []
|
|
191
|
-
|
|
185
|
+
rubyforge_project:
|
|
186
|
+
rubygems_version: 2.7.6.2
|
|
192
187
|
signing_key:
|
|
193
188
|
specification_version: 4
|
|
194
189
|
summary: AlgoliaSearch integration to your favorite ORM
|