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.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +11 -2
  3. data/.dockerignore +38 -0
  4. data/.gitignore +1 -0
  5. data/CHANGELOG.md +80 -1
  6. data/CONTRIBUTING.MD +184 -0
  7. data/DOCKER_README.MD +89 -0
  8. data/Dockerfile +7 -0
  9. data/README.md +4 -4
  10. data/SECURITY.md +1 -1
  11. data/algolia.gemspec +3 -1
  12. data/lib/algolia/analytics_client.rb +1 -1
  13. data/lib/algolia/config/personalization_config.rb +20 -0
  14. data/lib/algolia/config/recommend_config.rb +6 -0
  15. data/lib/algolia/config/recommendation_config.rb +2 -15
  16. data/lib/algolia/helpers.rb +51 -1
  17. data/lib/algolia/http/http_requester.rb +4 -4
  18. data/lib/algolia/insights_client.rb +1 -1
  19. data/lib/algolia/logger_helper.rb +1 -1
  20. data/lib/algolia/personalization_client.rb +60 -0
  21. data/lib/algolia/recommend_client.rb +134 -0
  22. data/lib/algolia/recommendation_client.rb +2 -55
  23. data/lib/algolia/responses/add_api_key_response.rb +1 -1
  24. data/lib/algolia/responses/delete_api_key_response.rb +1 -1
  25. data/lib/algolia/responses/dictionary_response.rb +33 -0
  26. data/lib/algolia/responses/restore_api_key_response.rb +1 -1
  27. data/lib/algolia/responses/update_api_key_response.rb +1 -1
  28. data/lib/algolia/search_client.rb +185 -8
  29. data/lib/algolia/search_index.rb +21 -56
  30. data/lib/algolia/transport/request_options.rb +1 -1
  31. data/lib/algolia/transport/transport.rb +11 -10
  32. data/lib/algolia/version.rb +1 -1
  33. data/lib/algolia.rb +5 -0
  34. data/renovate.json +5 -0
  35. data/test/algolia/integration/account_client_test.rb +2 -2
  36. data/test/algolia/integration/analytics_client_test.rb +6 -2
  37. data/test/algolia/integration/mocks/mock_requester.rb +13 -11
  38. data/test/algolia/integration/personalization_client_test.rb +30 -0
  39. data/test/algolia/integration/recommend_client_test.rb +70 -0
  40. data/test/algolia/integration/search_client_test.rb +108 -13
  41. data/test/algolia/integration/search_index_test.rb +31 -0
  42. data/test/algolia/unit/helpers_test.rb +4 -2
  43. data/test/test_helper.rb +32 -0
  44. 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.0.0
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: 2020-10-27 00:00:00.000000000 Z
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