algolia 2.0.0 → 2.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.circleci/config.yml +11 -2
- data/.dockerignore +38 -0
- data/.gitignore +1 -0
- data/CHANGELOG.md +80 -1
- data/CONTRIBUTING.MD +184 -0
- data/DOCKER_README.MD +89 -0
- data/Dockerfile +7 -0
- data/README.md +4 -4
- data/SECURITY.md +1 -1
- data/algolia.gemspec +3 -1
- data/lib/algolia/analytics_client.rb +1 -1
- data/lib/algolia/config/personalization_config.rb +20 -0
- data/lib/algolia/config/recommend_config.rb +6 -0
- data/lib/algolia/config/recommendation_config.rb +2 -15
- data/lib/algolia/helpers.rb +51 -1
- data/lib/algolia/http/http_requester.rb +4 -4
- data/lib/algolia/insights_client.rb +1 -1
- data/lib/algolia/logger_helper.rb +1 -1
- data/lib/algolia/personalization_client.rb +60 -0
- data/lib/algolia/recommend_client.rb +134 -0
- data/lib/algolia/recommendation_client.rb +2 -55
- data/lib/algolia/responses/add_api_key_response.rb +1 -1
- data/lib/algolia/responses/delete_api_key_response.rb +1 -1
- data/lib/algolia/responses/dictionary_response.rb +33 -0
- data/lib/algolia/responses/restore_api_key_response.rb +1 -1
- data/lib/algolia/responses/update_api_key_response.rb +1 -1
- data/lib/algolia/search_client.rb +185 -8
- data/lib/algolia/search_index.rb +21 -56
- data/lib/algolia/transport/request_options.rb +1 -1
- data/lib/algolia/transport/transport.rb +11 -10
- data/lib/algolia/version.rb +1 -1
- data/lib/algolia.rb +5 -0
- data/renovate.json +5 -0
- data/test/algolia/integration/account_client_test.rb +2 -2
- data/test/algolia/integration/analytics_client_test.rb +6 -2
- data/test/algolia/integration/mocks/mock_requester.rb +13 -11
- data/test/algolia/integration/personalization_client_test.rb +30 -0
- data/test/algolia/integration/recommend_client_test.rb +70 -0
- data/test/algolia/integration/search_client_test.rb +108 -13
- data/test/algolia/integration/search_index_test.rb +31 -0
- data/test/algolia/unit/helpers_test.rb +4 -2
- data/test/test_helper.rb +32 -0
- metadata +45 -5
data/test/test_helper.rb
CHANGED
|
@@ -28,6 +28,26 @@ class Minitest::Test
|
|
|
28
28
|
@@search_client = Algolia::Search::Client.new(@@search_config)
|
|
29
29
|
end
|
|
30
30
|
|
|
31
|
+
def assert_requests(requester, requests)
|
|
32
|
+
refute_empty requests
|
|
33
|
+
refute_nil requester
|
|
34
|
+
|
|
35
|
+
actual_requests = requester.requests
|
|
36
|
+
assert_equal requests.size, actual_requests.size
|
|
37
|
+
|
|
38
|
+
requests.each_with_index do |expected_request, i|
|
|
39
|
+
request = actual_requests[i]
|
|
40
|
+
|
|
41
|
+
if expected_request[:body].nil? # for GET requests w/ NO body.
|
|
42
|
+
assert_nil(request[:body])
|
|
43
|
+
else
|
|
44
|
+
assert_equal(expected_request[:body], request[:body])
|
|
45
|
+
end
|
|
46
|
+
assert_equal(expected_request[:method], request[:method])
|
|
47
|
+
assert_equal(expected_request[:path], request[:path])
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
|
|
31
51
|
def check_environment_variables
|
|
32
52
|
raise Algolia::AlgoliaError, 'ALGOLIA_APPLICATION_ID_1 must be defined' if ENV['ALGOLIA_APPLICATION_ID_1'].to_s.strip.empty?
|
|
33
53
|
raise Algolia::AlgoliaError, 'ALGOLIA_ADMIN_KEY_1 must be defined' if ENV['ALGOLIA_ADMIN_KEY_1'].to_s.strip.empty?
|
|
@@ -87,3 +107,15 @@ def rule_without_metadata(rule)
|
|
|
87
107
|
rule.delete(:_metadata)
|
|
88
108
|
rule
|
|
89
109
|
end
|
|
110
|
+
|
|
111
|
+
def retry_test(delay = 0.1, max_retries = 30)
|
|
112
|
+
(1...max_retries).each do |i|
|
|
113
|
+
begin
|
|
114
|
+
return yield
|
|
115
|
+
rescue Algolia::AlgoliaHttpError
|
|
116
|
+
sleep delay * i
|
|
117
|
+
end
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
raise StandardError, 'reached the maximum number of retries'
|
|
121
|
+
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: algolia
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.3.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Algolia
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2023-06-07 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -56,16 +56,42 @@ dependencies:
|
|
|
56
56
|
name: faraday
|
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
|
58
58
|
requirements:
|
|
59
|
-
- - "
|
|
59
|
+
- - ">="
|
|
60
60
|
- !ruby/object:Gem::Version
|
|
61
61
|
version: '0.15'
|
|
62
|
+
- - "<"
|
|
63
|
+
- !ruby/object:Gem::Version
|
|
64
|
+
version: '3'
|
|
62
65
|
type: :runtime
|
|
63
66
|
prerelease: false
|
|
64
67
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
68
|
requirements:
|
|
66
|
-
- - "
|
|
69
|
+
- - ">="
|
|
67
70
|
- !ruby/object:Gem::Version
|
|
68
71
|
version: '0.15'
|
|
72
|
+
- - "<"
|
|
73
|
+
- !ruby/object:Gem::Version
|
|
74
|
+
version: '3'
|
|
75
|
+
- !ruby/object:Gem::Dependency
|
|
76
|
+
name: faraday-net_http_persistent
|
|
77
|
+
requirement: !ruby/object:Gem::Requirement
|
|
78
|
+
requirements:
|
|
79
|
+
- - ">="
|
|
80
|
+
- !ruby/object:Gem::Version
|
|
81
|
+
version: '0.15'
|
|
82
|
+
- - "<"
|
|
83
|
+
- !ruby/object:Gem::Version
|
|
84
|
+
version: '3'
|
|
85
|
+
type: :runtime
|
|
86
|
+
prerelease: false
|
|
87
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
88
|
+
requirements:
|
|
89
|
+
- - ">="
|
|
90
|
+
- !ruby/object:Gem::Version
|
|
91
|
+
version: '0.15'
|
|
92
|
+
- - "<"
|
|
93
|
+
- !ruby/object:Gem::Version
|
|
94
|
+
version: '3'
|
|
69
95
|
- !ruby/object:Gem::Dependency
|
|
70
96
|
name: multi_json
|
|
71
97
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -186,6 +212,7 @@ extensions: []
|
|
|
186
212
|
extra_rdoc_files: []
|
|
187
213
|
files:
|
|
188
214
|
- ".circleci/config.yml"
|
|
215
|
+
- ".dockerignore"
|
|
189
216
|
- ".github/ISSUE_TEMPLATE.md"
|
|
190
217
|
- ".github/PULL_REQUEST_TEMPLATE.md"
|
|
191
218
|
- ".gitignore"
|
|
@@ -193,6 +220,9 @@ files:
|
|
|
193
220
|
- ".rubocop_todo.yml"
|
|
194
221
|
- CHANGELOG.md
|
|
195
222
|
- CODE_OF_CONDUCT.md
|
|
223
|
+
- CONTRIBUTING.MD
|
|
224
|
+
- DOCKER_README.MD
|
|
225
|
+
- Dockerfile
|
|
196
226
|
- Gemfile
|
|
197
227
|
- LICENSE
|
|
198
228
|
- README.md
|
|
@@ -208,6 +238,8 @@ files:
|
|
|
208
238
|
- lib/algolia/config/analytics_config.rb
|
|
209
239
|
- lib/algolia/config/base_config.rb
|
|
210
240
|
- lib/algolia/config/insights_config.rb
|
|
241
|
+
- lib/algolia/config/personalization_config.rb
|
|
242
|
+
- lib/algolia/config/recommend_config.rb
|
|
211
243
|
- lib/algolia/config/recommendation_config.rb
|
|
212
244
|
- lib/algolia/config/search_config.rb
|
|
213
245
|
- lib/algolia/defaults.rb
|
|
@@ -224,10 +256,13 @@ files:
|
|
|
224
256
|
- lib/algolia/iterators/rule_iterator.rb
|
|
225
257
|
- lib/algolia/iterators/synonym_iterator.rb
|
|
226
258
|
- lib/algolia/logger_helper.rb
|
|
259
|
+
- lib/algolia/personalization_client.rb
|
|
260
|
+
- lib/algolia/recommend_client.rb
|
|
227
261
|
- lib/algolia/recommendation_client.rb
|
|
228
262
|
- lib/algolia/responses/add_api_key_response.rb
|
|
229
263
|
- lib/algolia/responses/base_response.rb
|
|
230
264
|
- lib/algolia/responses/delete_api_key_response.rb
|
|
265
|
+
- lib/algolia/responses/dictionary_response.rb
|
|
231
266
|
- lib/algolia/responses/indexing_response.rb
|
|
232
267
|
- lib/algolia/responses/multiple_batch_indexing_response.rb
|
|
233
268
|
- lib/algolia/responses/multiple_response.rb
|
|
@@ -241,6 +276,7 @@ files:
|
|
|
241
276
|
- lib/algolia/transport/transport.rb
|
|
242
277
|
- lib/algolia/user_agent.rb
|
|
243
278
|
- lib/algolia/version.rb
|
|
279
|
+
- renovate.json
|
|
244
280
|
- sig/config/algolia_config.rbs
|
|
245
281
|
- sig/config/analytics_config.rbs
|
|
246
282
|
- sig/config/insights_config.rbs
|
|
@@ -263,6 +299,8 @@ files:
|
|
|
263
299
|
- test/algolia/integration/base_test.rb
|
|
264
300
|
- test/algolia/integration/insights_client_test.rb
|
|
265
301
|
- test/algolia/integration/mocks/mock_requester.rb
|
|
302
|
+
- test/algolia/integration/personalization_client_test.rb
|
|
303
|
+
- test/algolia/integration/recommend_client_test.rb
|
|
266
304
|
- test/algolia/integration/recommendation_client_test.rb
|
|
267
305
|
- test/algolia/integration/search_client_test.rb
|
|
268
306
|
- test/algolia/integration/search_index_test.rb
|
|
@@ -294,7 +332,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
294
332
|
- !ruby/object:Gem::Version
|
|
295
333
|
version: '0'
|
|
296
334
|
requirements: []
|
|
297
|
-
rubygems_version: 3.0.3
|
|
335
|
+
rubygems_version: 3.0.3.1
|
|
298
336
|
signing_key:
|
|
299
337
|
specification_version: 4
|
|
300
338
|
summary: A simple Ruby client for the algolia.com REST API
|
|
@@ -304,6 +342,8 @@ test_files:
|
|
|
304
342
|
- test/algolia/integration/base_test.rb
|
|
305
343
|
- test/algolia/integration/insights_client_test.rb
|
|
306
344
|
- test/algolia/integration/mocks/mock_requester.rb
|
|
345
|
+
- test/algolia/integration/personalization_client_test.rb
|
|
346
|
+
- test/algolia/integration/recommend_client_test.rb
|
|
307
347
|
- test/algolia/integration/recommendation_client_test.rb
|
|
308
348
|
- test/algolia/integration/search_client_test.rb
|
|
309
349
|
- test/algolia/integration/search_index_test.rb
|