algoliasearch 1.19.2 → 1.20.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +2 -2
- data/ChangeLog +9 -1
- data/Gemfile +7 -8
- data/Gemfile.lock +9 -16
- data/README.md +18 -18
- data/lib/algolia/client.rb +5 -4
- data/lib/algolia/index.rb +9 -0
- data/lib/algolia/version.rb +1 -1
- data/spec/client_spec.rb +11 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 042aa8d5e6c4fd28ca302c2f6599c5ef5ec347a809ad567dde393b6633cba2c3
|
4
|
+
data.tar.gz: e99b0315c64bcf650d4496e2ae8a9bd7f0f12f0cb42b31e5209d6359dbe019eb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f184dce817dbe9309f2d97d131ef4738d0aa72e6e8bafb907cb2b182d96f8de367982c34eebffdbbe8ece916a7685fb1b524c01468fc0583f6a09be22a5111f1
|
7
|
+
data.tar.gz: d02d20d28c815d707fae14725ae5c0c1add7e056c0f2086ea18ba50d5d8f20e9cac8b06a5b35439d0ae2c13abe392e7e255c1636e9866f8cf14cdb255b5d1335
|
data/.travis.yml
CHANGED
data/ChangeLog
CHANGED
@@ -1,4 +1,12 @@
|
|
1
|
-
|
1
|
+
2018-05-07 1.20.0
|
2
|
+
* Feat: deprecate api keys methods on index in favor of client ones (#286)
|
3
|
+
* Chore(gemfile): remove useless dependencies (#280)
|
4
|
+
* Fix(env): adding default env var (#279)
|
5
|
+
* Chore(travis): test against rubinius 3 (#281)
|
6
|
+
* Fix: prevent saving a rule with an empty objectid (#283)
|
7
|
+
|
8
|
+
2018-04-03 1.19.2
|
9
|
+
* Fix Algolia.delete_index wrong number of arguments (#277)
|
2
10
|
|
3
11
|
2017-12-18 1.19.1
|
4
12
|
* Fix hard dependency on `hashdiff` (#262)
|
data/Gemfile
CHANGED
@@ -6,25 +6,24 @@ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
|
|
6
6
|
gemspec
|
7
7
|
|
8
8
|
# See https://github.com/algolia/algoliasearch-client-ruby/pull/257/files/36bcd0b1c4d05776dcbdb362c15a609c81f41cde
|
9
|
-
if Gem::Version.new(RUBY_VERSION)
|
9
|
+
if Gem::Version.new(RUBY_VERSION) <= Gem::Version.new('1.9.3')
|
10
10
|
gem 'hashdiff', '< 0.3.6' # Hashdiff 0.3.6 no longer supports Ruby 1.8
|
11
|
+
gem 'highline', '< 1.7.0'
|
12
|
+
gem 'mime-types', '< 2.0'
|
13
|
+
gem 'rubysl', '~> 2.0', :platform => :rbx
|
14
|
+
else
|
15
|
+
gem 'rubysl', '~> 2.2', :platform => :rbx
|
11
16
|
end
|
12
17
|
|
13
|
-
gem 'rubysl', '~> 2.0', :platform => :rbx
|
14
|
-
|
15
18
|
group :development do
|
16
|
-
gem 'highline', '< 1.7.0'
|
17
19
|
gem 'coveralls'
|
18
|
-
gem 'safe_yaml'
|
19
|
-
gem 'travis'
|
20
20
|
gem 'rake'
|
21
21
|
gem 'rdoc'
|
22
|
+
gem 'travis'
|
22
23
|
end
|
23
24
|
|
24
25
|
group :test do
|
25
26
|
gem 'rspec', '>= 2.5.0'
|
26
|
-
gem 'redgreen'
|
27
27
|
gem 'webmock'
|
28
28
|
gem 'simplecov'
|
29
|
-
gem 'mime-types'
|
30
29
|
end
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
algoliasearch (1.
|
4
|
+
algoliasearch (1.20.0)
|
5
5
|
httpclient (~> 2.8, >= 2.8.3)
|
6
6
|
json (>= 1.5.1)
|
7
7
|
|
@@ -9,7 +9,7 @@ GEM
|
|
9
9
|
remote: https://rubygems.org/
|
10
10
|
specs:
|
11
11
|
addressable (2.4.0)
|
12
|
-
backports (3.11.
|
12
|
+
backports (3.11.2)
|
13
13
|
coveralls (0.7.2)
|
14
14
|
multi_json (~> 1.3)
|
15
15
|
rest-client (= 1.6.7)
|
@@ -19,7 +19,7 @@ GEM
|
|
19
19
|
crack (0.4.3)
|
20
20
|
safe_yaml (~> 1.0.0)
|
21
21
|
diff-lcs (1.3)
|
22
|
-
docile (1.
|
22
|
+
docile (1.3.0)
|
23
23
|
ethon (0.11.0)
|
24
24
|
ffi (>= 1.3.0)
|
25
25
|
faraday (0.14.0)
|
@@ -41,9 +41,7 @@ GEM
|
|
41
41
|
json (2.1.0)
|
42
42
|
launchy (2.4.3)
|
43
43
|
addressable (~> 2.3)
|
44
|
-
mime-types (
|
45
|
-
mime-types-data (~> 3.2015)
|
46
|
-
mime-types-data (3.2016.0521)
|
44
|
+
mime-types (1.25.1)
|
47
45
|
multi_json (1.13.1)
|
48
46
|
multipart-post (2.0.0)
|
49
47
|
net-http-persistent (2.9.4)
|
@@ -51,9 +49,8 @@ GEM
|
|
51
49
|
pusher-client (0.6.2)
|
52
50
|
json
|
53
51
|
websocket (~> 1.0)
|
54
|
-
rake (12.3.
|
55
|
-
rdoc (6.0.
|
56
|
-
redgreen (1.2.2)
|
52
|
+
rake (12.3.1)
|
53
|
+
rdoc (6.0.3)
|
57
54
|
rest-client (1.6.7)
|
58
55
|
mime-types (>= 1.16)
|
59
56
|
rspec (3.7.0)
|
@@ -272,8 +269,8 @@ GEM
|
|
272
269
|
rubysl-yaml (2.1.0)
|
273
270
|
rubysl-zlib (2.0.1)
|
274
271
|
safe_yaml (1.0.4)
|
275
|
-
simplecov (0.
|
276
|
-
docile (~> 1.1
|
272
|
+
simplecov (0.16.1)
|
273
|
+
docile (~> 1.1)
|
277
274
|
json (>= 1.8, < 3)
|
278
275
|
simplecov-html (~> 0.10.0)
|
279
276
|
simplecov-html (0.10.2)
|
@@ -304,14 +301,10 @@ PLATFORMS
|
|
304
301
|
DEPENDENCIES
|
305
302
|
algoliasearch!
|
306
303
|
coveralls
|
307
|
-
highline (< 1.7.0)
|
308
|
-
mime-types
|
309
304
|
rake
|
310
305
|
rdoc
|
311
|
-
redgreen
|
312
306
|
rspec (>= 2.5.0)
|
313
|
-
rubysl (~> 2.
|
314
|
-
safe_yaml
|
307
|
+
rubysl (~> 2.2)
|
315
308
|
simplecov
|
316
309
|
travis
|
317
310
|
webmock
|
data/README.md
CHANGED
@@ -20,9 +20,6 @@ If you are a **Ruby on Rails** user, you are probably looking for the [algoliase
|
|
20
20
|
You can find the full reference on [Algolia's website](https://www.algolia.com/doc/api-client/ruby/).
|
21
21
|
|
22
22
|
|
23
|
-
## Table of Contents
|
24
|
-
|
25
|
-
|
26
23
|
|
27
24
|
1. **[Install](#install)**
|
28
25
|
|
@@ -74,9 +71,9 @@ You can find both on [your Algolia account](https://www.algolia.com/api-keys).
|
|
74
71
|
require 'rubygems'
|
75
72
|
require 'algoliasearch'
|
76
73
|
|
77
|
-
Algolia.init
|
78
|
-
api_key: 'YourAPIKey'
|
79
|
-
index = Algolia::Index.new(
|
74
|
+
Algolia.init(application_id: 'YourApplicationID',
|
75
|
+
api_key: 'YourAPIKey')
|
76
|
+
index = Algolia::Index.new('your_index_name')
|
80
77
|
```
|
81
78
|
|
82
79
|
## Push data
|
@@ -210,8 +207,6 @@ search.start();
|
|
210
207
|
|
211
208
|
|
212
209
|
|
213
|
-
|
214
|
-
|
215
210
|
### Search
|
216
211
|
|
217
212
|
- [Search an index](https://algolia.com/doc/api-reference/api-methods/search/?language=ruby)
|
@@ -222,18 +217,15 @@ search.start();
|
|
222
217
|
|
223
218
|
|
224
219
|
|
225
|
-
|
226
220
|
### Indexing
|
227
221
|
|
228
222
|
- [Add objects](https://algolia.com/doc/api-reference/api-methods/add-objects/?language=ruby)
|
229
223
|
- [Update objects](https://algolia.com/doc/api-reference/api-methods/update-objects/?language=ruby)
|
230
224
|
- [Partial update objects](https://algolia.com/doc/api-reference/api-methods/partial-update-objects/?language=ruby)
|
231
225
|
- [Delete objects](https://algolia.com/doc/api-reference/api-methods/delete-objects/?language=ruby)
|
232
|
-
- [Delete by
|
226
|
+
- [Delete by](https://algolia.com/doc/api-reference/api-methods/delete-by/?language=ruby)
|
233
227
|
- [Get objects](https://algolia.com/doc/api-reference/api-methods/get-objects/?language=ruby)
|
234
228
|
- [Custom batch](https://algolia.com/doc/api-reference/api-methods/batch/?language=ruby)
|
235
|
-
- [Wait for operations](https://algolia.com/doc/api-reference/api-methods/wait-task/?language=ruby)
|
236
|
-
|
237
229
|
|
238
230
|
|
239
231
|
|
@@ -246,7 +238,6 @@ search.start();
|
|
246
238
|
|
247
239
|
|
248
240
|
|
249
|
-
|
250
241
|
### Manage indices
|
251
242
|
|
252
243
|
- [List indexes](https://algolia.com/doc/api-reference/api-methods/list-indices/?language=ruby)
|
@@ -258,7 +249,6 @@ search.start();
|
|
258
249
|
|
259
250
|
|
260
251
|
|
261
|
-
|
262
252
|
### API Keys
|
263
253
|
|
264
254
|
- [Create secured API Key](https://algolia.com/doc/api-reference/api-methods/generate-secured-api-key/?language=ruby)
|
@@ -271,7 +261,6 @@ search.start();
|
|
271
261
|
|
272
262
|
|
273
263
|
|
274
|
-
|
275
264
|
### Synonyms
|
276
265
|
|
277
266
|
- [Save synonym](https://algolia.com/doc/api-reference/api-methods/save-synonym/?language=ruby)
|
@@ -285,12 +274,11 @@ search.start();
|
|
285
274
|
|
286
275
|
|
287
276
|
|
288
|
-
|
289
277
|
### Query rules
|
290
278
|
|
291
279
|
- [Save a single rule](https://algolia.com/doc/api-reference/api-methods/rules-save/?language=ruby)
|
292
280
|
- [Batch save multiple rules](https://algolia.com/doc/api-reference/api-methods/rules-save-batch/?language=ruby)
|
293
|
-
- [
|
281
|
+
- [Get a rule](https://algolia.com/doc/api-reference/api-methods/rules-get/?language=ruby)
|
294
282
|
- [Delete a single rule](https://algolia.com/doc/api-reference/api-methods/rules-delete/?language=ruby)
|
295
283
|
- [Clear all rules](https://algolia.com/doc/api-reference/api-methods/rules-clear/?language=ruby)
|
296
284
|
- [Search for rules](https://algolia.com/doc/api-reference/api-methods/rules-search/?language=ruby)
|
@@ -299,13 +287,25 @@ search.start();
|
|
299
287
|
|
300
288
|
|
301
289
|
|
290
|
+
### MultiClusters
|
291
|
+
|
292
|
+
- [Assign or Move userID](https://algolia.com/doc/api-reference/api-methods/assign-user-id/?language=ruby)
|
293
|
+
- [Get top userID](https://algolia.com/doc/api-reference/api-methods/get-top-user-id/?language=ruby)
|
294
|
+
- [Get userID](https://algolia.com/doc/api-reference/api-methods/get-user-id/?language=ruby)
|
295
|
+
- [List clusters](https://algolia.com/doc/api-reference/api-methods/list-clusters/?language=ruby)
|
296
|
+
- [List userIDs](https://algolia.com/doc/api-reference/api-methods/list-user-id/?language=ruby)
|
297
|
+
- [Remove userID](https://algolia.com/doc/api-reference/api-methods/remove-user-id/?language=ruby)
|
298
|
+
- [Search userID](https://algolia.com/doc/api-reference/api-methods/search-user-id/?language=ruby)
|
302
299
|
|
303
300
|
|
304
301
|
|
305
302
|
|
306
303
|
### Advanced
|
307
304
|
|
308
|
-
- [Get
|
305
|
+
- [Get logs](https://algolia.com/doc/api-reference/api-methods/get-logs/?language=ruby)
|
306
|
+
- [Configuring timeouts](https://algolia.com/doc/api-reference/api-methods/configuring-timeouts/?language=ruby)
|
307
|
+
- [Set extra header](https://algolia.com/doc/api-reference/api-methods/set-extra-header/?language=ruby)
|
308
|
+
- [Wait for operations](https://algolia.com/doc/api-reference/api-methods/wait-task/?language=ruby)
|
309
309
|
|
310
310
|
|
311
311
|
|
data/lib/algolia/client.rb
CHANGED
@@ -505,11 +505,12 @@ module Algolia
|
|
505
505
|
# Always use Algolia.client to retrieve the client object.
|
506
506
|
@@client = nil
|
507
507
|
|
508
|
-
#
|
509
|
-
# by all API methods
|
508
|
+
#
|
509
|
+
# Initialize the singleton instance of Client which is used by all API methods
|
510
|
+
#
|
510
511
|
def Algolia.init(options = {})
|
511
|
-
application_id = ENV[
|
512
|
-
api_key = ENV[
|
512
|
+
application_id = ENV['ALGOLIA_APP_ID'] || ENV['ALGOLIA_API_ID'] || ENV['ALGOLIA_APPLICATION_ID']
|
513
|
+
api_key = ENV['ALGOLIA_REST_API_KEY'] || ENV['ALGOLIA_API_KEY']
|
513
514
|
|
514
515
|
defaulted = { :application_id => application_id, :api_key => api_key }
|
515
516
|
defaulted.merge!(options)
|
data/lib/algolia/index.rb
CHANGED
@@ -531,11 +531,15 @@ module Algolia
|
|
531
531
|
end
|
532
532
|
|
533
533
|
# List all existing user keys with their associated ACLs
|
534
|
+
#
|
535
|
+
# Deprecated: Please us `client.list_api_keys` instead.
|
534
536
|
def list_api_keys(request_options = {})
|
535
537
|
client.get(Protocol.index_keys_uri(name), :read, request_options)
|
536
538
|
end
|
537
539
|
|
538
540
|
# Get ACL of a user key
|
541
|
+
#
|
542
|
+
# Deprecated: Please us `client.get_api_key` instead.
|
539
543
|
def get_api_key(key, request_options = {})
|
540
544
|
client.get(Protocol.index_key_uri(name, key), :read, request_options)
|
541
545
|
end
|
@@ -566,6 +570,7 @@ module Algolia
|
|
566
570
|
# @param maxHitsPerQuery the maximum number of hits this API key can retrieve in one call (0 means unlimited)
|
567
571
|
# @param request_options contains extra parameters to send with your query
|
568
572
|
#
|
573
|
+
# Deprecated: Please us `client.add_api_key` instead.
|
569
574
|
def add_api_key(obj, validity = 0, maxQueriesPerIPPerHour = 0, maxHitsPerQuery = 0, request_options = {})
|
570
575
|
if obj.instance_of? Array
|
571
576
|
params = {
|
@@ -612,6 +617,7 @@ module Algolia
|
|
612
617
|
# @param maxHitsPerQuery the maximum number of hits this API key can retrieve in one call (0 means unlimited)
|
613
618
|
# @param request_options contains extra parameters to send with your query
|
614
619
|
#
|
620
|
+
# Deprecated: Please us `client.update_api_key` instead.
|
615
621
|
def update_api_key(key, obj, validity = 0, maxQueriesPerIPPerHour = 0, maxHitsPerQuery = 0, request_options = {})
|
616
622
|
if obj.instance_of? Array
|
617
623
|
params = {
|
@@ -634,6 +640,8 @@ module Algolia
|
|
634
640
|
|
635
641
|
|
636
642
|
# Delete an existing user key
|
643
|
+
#
|
644
|
+
# Deprecated: Please us `client.delete_api_key` instead.
|
637
645
|
def delete_api_key(key, request_options = {})
|
638
646
|
client.delete(Protocol.index_key_uri(name, key), :write, request_options)
|
639
647
|
end
|
@@ -948,6 +956,7 @@ module Algolia
|
|
948
956
|
# @param forward_to_replicas should we forward the delete to replica indices
|
949
957
|
# @param request_options contains extra parameters to send with your query
|
950
958
|
def save_rule(objectID, rule, forward_to_replicas = false, request_options = {})
|
959
|
+
raise ArgumentError.new('objectID must not be blank') if objectID.nil? || objectID == ''
|
951
960
|
client.put("#{Protocol.rule_uri(name, objectID)}?forwardToReplicas=#{forward_to_replicas}", rule.to_json, :write, request_options)
|
952
961
|
end
|
953
962
|
|
data/lib/algolia/version.rb
CHANGED
data/spec/client_spec.rb
CHANGED
@@ -1107,6 +1107,17 @@ describe 'Client' do
|
|
1107
1107
|
@index.search_rules('')['nbHits'].should eq(0)
|
1108
1108
|
end
|
1109
1109
|
|
1110
|
+
it 'should not save a query rule with an empty objectID' do
|
1111
|
+
rule = {
|
1112
|
+
:objectID => '',
|
1113
|
+
:condition => { :pattern => 'test', :anchoring => 'contains' },
|
1114
|
+
:consequence => { :params => { :query => 'this is better' } }
|
1115
|
+
}
|
1116
|
+
|
1117
|
+
expect { @index.save_rule!(nil, rule) }.to raise_error(ArgumentError)
|
1118
|
+
expect { @index.save_rule!(rule[:objectID], rule) }.to raise_error(ArgumentError)
|
1119
|
+
end
|
1120
|
+
|
1110
1121
|
it "should use request options" do
|
1111
1122
|
expect{Algolia.list_indexes}.to_not raise_error
|
1112
1123
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: algoliasearch
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.20.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Algolia
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-05-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httpclient
|