algolia 2.0.0.pre.beta.3 → 2.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 47d18253040f91e77f82a815e90b4064c88aac2ddbacbe4c26b1dea81304d847
4
- data.tar.gz: 530b601d76e6de0b4f252dc13bcce01f7446428f839cd22fb4b286a1b5a17f73
3
+ metadata.gz: e2ba367e6308158bc455c60a0d0a5c16fbb1ed4565aaa3a6b8d4cca3e16f0c0d
4
+ data.tar.gz: af53995633ba454c929265d5d81d311c67a99fcdd76e8eeec51f98aa8e89f778
5
5
  SHA512:
6
- metadata.gz: 04c63a1fb49fcd66817e0b43f66c16b3cbe8bd044ca513409047f8709ab8cc757deb30cedaeafcddf831f98179efa9c21fdcbf4bb09a1641b9b5b7aa96d6fc8c
7
- data.tar.gz: e552093cc4ab5827c8ab87e448856bfdbd68f113b8e321e928e66ceb03f8ecf96531aad902d256a6372336c9efeedd166e85165d63a0c83f0795de942a0b4eb7
6
+ metadata.gz: 896b3821ad99f02449f652090c6b4249a932d454bd03e58879c2fad030d6179480b208c36bd07003dd3c58f96cd7630e28aa1afa026cc83f907a3bcf015f2f02
7
+ data.tar.gz: bdc286d0c8df062b33fc6d25fd6d3d4348dc82cce74703d26a12d8374a91c5e378e3d7f03ff2d617a76beab88828a8004d3457997394df2a9832277ca308f411
@@ -0,0 +1,38 @@
1
+ # rspec failure tracking
2
+ .rspec_status
3
+
4
+ ## MAC OS
5
+ .DS_Store
6
+ .idea/
7
+
8
+ ## TEXTMATE
9
+ *.tmproj
10
+ tmtags
11
+
12
+ ## EMACS
13
+ *~
14
+ \#*
15
+ .\#*
16
+
17
+ ## VIM
18
+ *.swp
19
+
20
+ ## PROJECT::GENERAL
21
+ coverage
22
+ rdoc
23
+ pkg
24
+ .rvmrc
25
+ /.bundle/
26
+ /.yardoc
27
+ /_yardoc/
28
+ /coverage/
29
+ /doc/
30
+ /pkg/
31
+ /spec/reports/
32
+ /tmp/
33
+
34
+ ## PROJECT::SPECIFIC
35
+ spec/integration_spec_conf.rb
36
+ data.sqlite3
37
+
38
+ debug.log
data/.gitignore CHANGED
@@ -35,4 +35,6 @@ pkg
35
35
  Gemfile.lock
36
36
  spec/integration_spec_conf.rb
37
37
  data.sqlite3
38
+
38
39
  debug.log
40
+ .ruby-version
@@ -0,0 +1,28 @@
1
+ # ChangeLog
2
+
3
+ ## [Unreleased](https://github.com/algolia/algoliasearch-client-ruby/compare/2.0.4...master)
4
+
5
+ ## [2.0.4](https://github.com/algolia/algoliasearch-client-ruby/compare/2.0.3...2.0.4) (2021-01-05)
6
+
7
+ ### Fix
8
+ - `app_api_key`: send opts with waitable method
9
+
10
+ ## [2.0.3](https://github.com/algolia/algoliasearch-client-ruby/compare/2.0.2...2.0.3) (2020-11-24)
11
+
12
+ ### Chore
13
+ - Containerize the repo
14
+
15
+ ## [2.0.2](https://github.com/algolia/algoliasearch-client-ruby/compare/2.0.1...2.0.2) (2020-11-09)
16
+
17
+ ### Fix
18
+ - Don't mutate index name on stripping
19
+
20
+ ## [2.0.1](https://github.com/algolia/algoliasearch-client-ruby/compare/2.0.0...2.0.1) (2020-11-02)
21
+
22
+ ### Fix
23
+ - Simplify merge of headers in `Transport` class
24
+ - `deserialize_settings` function to take into account `symbolize_keys` parameter
25
+
26
+ ## [2.0.0](https://github.com/algolia/algoliasearch-client-ruby/releases/tag/2.0.0) (2020-10-27)
27
+
28
+ * Initial release of v2
@@ -0,0 +1,184 @@
1
+ <p align="center">
2
+ <a href="https://www.algolia.com">
3
+ <img alt="Algolia for Ruby" src="https://raw.githubusercontent.com/algolia/algoliasearch-client-common/master/banners/ruby.png" >
4
+ </a>
5
+ </p>
6
+
7
+ Hello and welcome to the contributing guide for algolia gem. Thanks for considering participating in our project 🙇
8
+
9
+ If this guide does not contain what you are looking for and thus prevents you from contributing, don't hesitate to leave a message on the [community forum](https://discourse.algolia.com/) or to [open an issue](https://github.com/algolia/algoliasearch-client-ruby/issues).
10
+
11
+ <!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN TocDown TO UPDATE -->
12
+ <!-- TocDown Begin -->
13
+ * [Reporting an issue](#reporting-an-issue)
14
+ * [The code contribution process](#the-code-contribution-process)
15
+ * [Commit conventions](#commit-conventions)
16
+ * [Branch organization](#branch-organization)
17
+ * [Requirements](#requirements)
18
+ * [Code structure](#code-structure)
19
+ * [The source algolia folder](#the-source-algolia-folder)
20
+ * [Tests](#tests)
21
+ * [Linting](#linting)
22
+ <!-- TocDown End -->
23
+
24
+ ## Reporting an issue
25
+
26
+ Opening an issue is very effective way to contribute because other users might also be impacted. We'll make sure to fix it quickly if it's technically feasible and doesn't have important side effects for other users.
27
+
28
+ Before reporting an issue, first check that there is not an already open issue for the same topic using the [issues page](https://github.com/algolia/algoliasearch-client-ruby/issues). Don't hesitate to thumb up an issue that corresponds to the problem you have.
29
+
30
+ It would be very helpful if you're able to add a test case that reproduces the issue. This could help us solve the issue faster.
31
+
32
+ ## The code contribution process
33
+
34
+ The algolia gem is developed in Ruby ≥ 2.2.
35
+
36
+ For any code contribution, you need to:
37
+
38
+ - Fork and clone the project
39
+ - Create a new branch for what you want to solve (fix/_issue-number_, feat/_name-of-the-feature_)
40
+ - Make your changes
41
+ - Open a pull request
42
+
43
+ Depending on what you're working on, you might consider different [base branches](#branch-organization).
44
+
45
+ Then:
46
+
47
+ - Peer review of the pull request (by at least one of the core contributors)
48
+ - Automatic checks ([tests](#tests), [commits](#commit-conventions), [linters](#linting))
49
+ - When everything is green, one of the core contributors will merge your contribution 🚀
50
+
51
+ ## Commit conventions
52
+
53
+ This project follows the [conventional changelog](https://conventionalcommits.org/) approach. This means that all commit messages should be formatted using the following scheme:
54
+
55
+ ```
56
+ type(scope): description
57
+ ```
58
+
59
+ In most cases, we use the following types:
60
+
61
+ - `fix`: for any resolution of an issue (identified or not)
62
+ - `feat`: for any new feature
63
+ - `refactor`: for any code change that neither adds a feature nor fixes an issue
64
+ - `docs`: for any documentation change or addition
65
+ - `chore`: for anything that is not related to the library itself (doc, tooling)
66
+
67
+ Even though the scope is optional, we try to fill it in as it helps us better understand the impact of a change. We either use the name of the widget/connector/component impacted or we use impact topic (e.g. `docs`, `tooling`, `deps`, `ci`).
68
+
69
+ Finally, if your work is based on an issue on GitHub, please fill in the dedicated line in the PR template (read "[Closing issues using keywords](https://help.github.com/en/articles/closing-issues-using-keywords)").
70
+
71
+ Some examples of valid commit messages (used as first lines):
72
+
73
+ > - feat(account-client): add method XXX
74
+ > - chore(deps): update dependency XXX to v3.0.7
75
+ > - fix(search_user_ids): rename parameter clusterName
76
+ > - chore: reword contributions guides
77
+
78
+ ## Branch organization
79
+
80
+ The project is based on the classic GitHub flow:
81
+
82
+ - `master` for the current version being worked on – Pull requests for bugs and feature related to the current major version should be created against this branch
83
+ - `vX` for each major version (`X` being a number) – Pull requests for critical bug fixes should be created against this branch
84
+
85
+ Most of the time, your pull requests should target the `master` branch.
86
+
87
+ _Note that no new features will be developed or backported for the `vX` branches._
88
+
89
+ ## Requirements
90
+
91
+ To run this project, you will need:
92
+
93
+ - Ruby ≥ 2.2
94
+ - [Bundler](https://bundler.io/)
95
+
96
+ ## Use the Dockerfile
97
+
98
+ If you want to contribute to this project without installing all its dependencies, you can use our Docker image.
99
+ Please check our [dedicated guide](DOCKER_README.MD) to learn more.
100
+
101
+ ## Code structure
102
+
103
+ Here are the main files and folders of the project
104
+
105
+ ```
106
+ ▸ lib/algolia/ << standalone clients and helpers classes
107
+ ▸ lib/test/ << gathers the unit and integration tests
108
+ .rubocop.yml << contains the rule used for the linter
109
+ algolia.gemspec << gemspec file
110
+ CHANGELOG.md << changelog file
111
+ CONTRIBUTING.md << this file
112
+ Gemfile << dependencies needed to run the project locally
113
+ Rakefile << defines the different tasks to lint/test the project
114
+ README.md << the introduction of the project
115
+ ```
116
+
117
+ ### The lib/algolia folder
118
+
119
+ ```
120
+ ▸ lib/algolia/
121
+ ▸ config/ << the configurations associated with each clients
122
+ ▸ enums/ << enumerables used accross the lib
123
+ ▸ http/ << the http layer logic
124
+ ▸ iterators/ << the iterators used for the browsing methods
125
+ ▸ responses/ << the waitable responses
126
+ ▸ transport/ << the transport layer logic
127
+ ```
128
+
129
+ ## Tests
130
+
131
+ Our unit and integration tests are written with [Minitest](https://github.com/seattlerb/minitest), in the `test` syntax.
132
+
133
+ To run all the tests at once:
134
+
135
+ ```sh
136
+ bundle exec rake test:all
137
+ ```
138
+
139
+ To run only the unit tests:
140
+
141
+ ```sh
142
+ bundle exec rake test:unit
143
+ ```
144
+
145
+ To run only the integration tests:
146
+
147
+ ```sh
148
+ bundle exec rake test:integration
149
+ ```
150
+
151
+ We ask that for each fix or feature submitted, you add at least one test demonstrating its behaviour. As you will need to use your own Algolia credentials to run them, we advise you to keep them short and use a small dataset, as well as using a mock requester anytime it's possible. If you encounter huge data overload because of testing, please reach out to [our support team](support@algolia.com).
152
+
153
+ ## Linting
154
+
155
+ Linters help us maintain a consistent code base.
156
+
157
+ If your editor support them, then you will see the errors directly there. You can also run them using your command line:
158
+
159
+ ```sh
160
+ rake rubocop
161
+ ```
162
+
163
+ However, we recommend that you use in your workflow pre-commit hooks, to avoid submitting code that might not pass the linting task setup in the CI. To use them,
164
+ first download the gem `git-precommit`
165
+
166
+ ```sh
167
+ gem install git-precommit
168
+ ```
169
+
170
+ Then copy-paste the following content in a file called `pre-commit` in `.git/hooks/`
171
+
172
+ ```sh
173
+ #!/usr/bin/env sh
174
+
175
+ function unstaged_changes {
176
+ ! git diff --quiet
177
+ }
178
+
179
+ if unstaged_changes; then
180
+ git stash save --keep-index "Performing partial commit against `git rev-parse HEAD`"
181
+ fi
182
+
183
+ exec time bundle exec rake precommit
184
+ ```
@@ -0,0 +1,89 @@
1
+ In this page you will find our recommended way of installing Docker on your machine.
2
+ This guide is made for OSX users.
3
+
4
+ ## Install docker
5
+
6
+ First install Docker using [Homebrew](https://brew.sh/)
7
+ ```
8
+ $ brew install docker
9
+ ```
10
+
11
+ You can then install [Docker Desktop](https://docs.docker.com/get-docker/) if you wish, or use `docker-machine`. As we prefer the second option, we will only document this one.
12
+
13
+ ## Setup your docker
14
+
15
+ Install `docker-machine`
16
+ ```
17
+ $ brew install docker-machine
18
+ ```
19
+
20
+ Then install [VirtualBox](https://www.virtualbox.org/) with [Homebrew Cask](https://github.com/Homebrew/homebrew-cask) to get a driver for your Docker machine
21
+ ```
22
+ $ brew cask install virtualbox
23
+ ```
24
+
25
+ You may need to enter your password and authorize the application in your `System Settings` > `Security & Privacy`.
26
+
27
+ Create now a new machine, set it up as default and connect your shell to it (here we use zsh. The commands should anyway be displayed in each steps' output)
28
+
29
+ ```
30
+ $ docker-machine create --driver virtualbox default
31
+ $ docker-machine env default
32
+ $ eval "$(docker-machine env default)"
33
+ ```
34
+
35
+ Now you're all setup to use our provided Docker image!
36
+
37
+ ## Build the image
38
+
39
+ ```bash
40
+ docker build -t algolia-ruby .
41
+ ```
42
+
43
+ ## Run the image
44
+
45
+ You need to provide few environment variables at runtime to be able to run the [Common Test Suite](https://github.com/algolia/algoliasearch-client-specs/tree/master/common-test-suite).
46
+ You can set them up directly in the command:
47
+
48
+ ```bash
49
+ docker run -it --rm --env ALGOLIA_APP_ID=XXXXXX [...] -v $PWD:/app -w /app algolia-ruby bash
50
+ ```
51
+
52
+ However, we advise you to export them in your `.bashrc` or `.zshrc`. That way, you can use [Docker's shorten syntax](https://docs.docker.com/engine/reference/commandline/run/#set-environment-variables--e---env---env-file) to set your variables.
53
+
54
+ ```bash
55
+ ### For external contributors, only the following env variables should be enough
56
+ docker run -it --rm --env ALGOLIA_APPLICATION_ID_1 \
57
+ --env ALGOLIA_ADMIN_KEY_1 \
58
+ --env ALGOLIA_SEARCH_KEY_1 \
59
+ -v $PWD:/app -w /app algolia-ruby bash
60
+
61
+ ### This is needed only to run the full test suite
62
+ docker run -it --rm --env ALGOLIA_APPLICATION_ID_1 \
63
+ --env ALGOLIA_ADMIN_KEY_1 \
64
+ --env ALGOLIA_SEARCH_KEY_1 \
65
+ --env ALGOLIA_APPLICATION_ID_2 \
66
+ --env ALGOLIA_ADMIN_KEY_2 \
67
+ --env ALGOLIA_APPLICATION_ID_MCM \
68
+ --env ALGOLIA_ADMIN_KEY_MCM \
69
+ -v $PWD:/app -w /app algolia-ruby bash
70
+ ```
71
+
72
+ Once your container is running, any changes you make in your IDE are directly reflected in the container.
73
+
74
+ To launch the tests, you can use one of the following commands
75
+ ```shell script
76
+ # run only the unit tests
77
+ bundle exec rake test:unit
78
+
79
+ # run only the integration tests
80
+ bundle exec rake test:integration
81
+
82
+ # run the whole test suite
83
+ bundle exec rake test:all
84
+
85
+ # run a single test
86
+ bundle exec rake test TEST=/full/path/to/test.rb TESTOPTS="--name=test_name"
87
+ ```
88
+
89
+ Feel free to contact us if you have any questions.
@@ -0,0 +1,7 @@
1
+ FROM ruby:2.6.3
2
+
3
+ RUN gem install bundler
4
+
5
+ WORKDIR /app
6
+ COPY . /app/
7
+ RUN bundle install
data/README.md CHANGED
@@ -6,9 +6,9 @@
6
6
  <h4 align="center">The perfect starting point to integrate <a href="https://algolia.com" target="_blank">Algolia</a> within your Ruby project</h4>
7
7
 
8
8
  <p align="center">
9
- <a href="https://circleci.com/gh/algolia/algoliasearch-client-ruby/tree/release%2Fv2"><img src="https://circleci.com/gh/algolia/algoliasearch-client-ruby/tree/release%2Fv2.svg?style=shield" alt="CircleCI" /></a>
10
- <a href="https://rubygems.org/gems/algoliasearch"><img src="https://badge.fury.io/rb/algoliasearch.svg" alt="Gem Version"></a>
11
- <a href="https://rubygems.org/gems/algoliasearch"><img src="https://img.shields.io/badge/licence-MIT-blue.svg" alt="License"></a>
9
+ <a href="https://circleci.com/gh/algolia/algoliasearch-client-ruby"><img src="https://circleci.com/gh/algolia/algoliasearch-client-ruby.svg?style=shield" alt="CircleCI" /></a>
10
+ <a href="https://rubygems.org/gems/algolia"><img src="https://badge.fury.io/rb/algolia.svg" alt="Gem Version"></a>
11
+ <a href="https://rubygems.org/gems/algolia"><img src="https://img.shields.io/badge/licence-MIT-blue.svg" alt="License"></a>
12
12
  </p>
13
13
  </p>
14
14
 
@@ -18,39 +18,47 @@
18
18
  <a href="https://discourse.algolia.com" target="_blank">Community Forum</a> •
19
19
  <a href="http://stackoverflow.com/questions/tagged/algolia" target="_blank">Stack Overflow</a> •
20
20
  <a href="https://github.com/algolia/algoliasearch-client-ruby/issues" target="_blank">Report a bug</a> •
21
+ <a href="https://www.algolia.com/doc/api-client/troubleshooting/faq/ruby/" target="_blank">FAQ</a> •
21
22
  <a href="https://www.algolia.com/support" target="_blank">Support</a>
22
23
  </p>
23
24
 
24
25
  ## ✨ Features
25
26
 
26
27
  - Thin & minimal low-level HTTP client to interact with Algolia's API
27
- - Supports Ruby `^1.8.7`.
28
+ - Supports Ruby `^2.2`.
28
29
 
29
30
  ## 💡 Getting Started
30
31
 
31
32
  First, install Algolia Ruby API Client via the [RubyGems](https://rubygems.org/) package manager:
32
33
  ```bash
33
- gem install algoliasearch
34
+ gem install algolia
34
35
  ```
35
36
 
36
37
  Then, create objects on your index:
37
38
 
38
39
 
39
40
  ```ruby
40
- Algolia.init(application_id: 'YourApplicationID',
41
- api_key: 'YourAPIKey')
42
- index = Algolia::Index.new('your_index_name')
41
+ client = Algolia::Search::Client.create('YourApplicationID', 'YourAPIKey')
42
+ index = client.init_index('your_index_name')
43
43
 
44
- index.save_objects([objectID: 1, name: 'Foo'])
44
+ index.save_objects([objectID: 1, name: 'Foo'])
45
45
  ```
46
46
 
47
47
  Finally, you may begin searching a object using the `search` method:
48
48
  ```ruby
49
- objects = index.search('Fo')
49
+ objects = index.search('Foo')
50
50
  ```
51
51
 
52
52
  For full documentation, visit the **[Algolia Ruby API Client](https://www.algolia.com/doc/api-client/getting-started/install/ruby/)**.
53
53
 
54
+ ## ❓ Troubleshooting
55
+
56
+ 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.
57
+
58
+ ## Upgrade from V1 to V2
59
+
60
+ If you were using the v1 and wish to update to v2, please follow our [Upgrade Guide](upgrade_guide.md)
61
+
54
62
  ## 📄 License
55
63
 
56
64
  Algolia Ruby API Client is an open-sourced software licensed under the [MIT license](LICENSE.md).
@@ -0,0 +1,3 @@
1
+ ## Reporting a Vulnerability
2
+
3
+ To report a security vulnerability, please use the [Algolia security email](security@algolia.com). Algolia will coordinate the fix and disclosure.
@@ -12,14 +12,14 @@ Gem::Specification.new do |spec|
12
12
 
13
13
  spec.date = Date.today
14
14
  spec.licenses = ['MIT']
15
- spec.summary = 'A simple Ruby client for the algolia.com REST API (alpha release)'
16
- spec.description = 'This is the alpha version of the upcoming v2 release of Algolia Client. Please keep on using the algoliasearch gem in the meantime.'
17
- spec.homepage = 'https://github.com/algolia/algoliasearch-client-ruby/tree/release/v2'
15
+ spec.summary = 'A simple Ruby client for the algolia.com REST API'
16
+ spec.description = 'A simple Ruby client for the algolia.com REST API'
17
+ spec.homepage = 'https://github.com/algolia/algoliasearch-client-ruby'
18
18
 
19
19
  spec.metadata = {
20
20
  'bug_tracker_uri' => 'https://github.com/algolia/algoliasearch-client-ruby/issues',
21
- 'documentation_uri' => 'http://www.rubydoc.info/gems/algolia',
22
- 'source_code_uri' => 'https://github.com/algolia/algoliasearch-client-ruby/tree/release/v2'
21
+ 'documentation_uri' => 'https://www.algolia.com/doc/api-client/getting-started/install/ruby',
22
+ 'source_code_uri' => 'https://github.com/algolia/algoliasearch-client-ruby'
23
23
  }
24
24
 
25
25
  # Specify which files should be added to the gem when it is released.
@@ -35,7 +35,7 @@ Gem::Specification.new do |spec|
35
35
  spec.add_development_dependency 'rake'
36
36
  spec.add_development_dependency 'rubocop', '<= 0.82.0'
37
37
 
38
- spec.add_dependency 'faraday', '~> 0.15'
38
+ spec.add_dependency 'faraday', ['>= 0.15', '< 2.0']
39
39
  spec.add_dependency 'multi_json', '~> 1.0'
40
40
  spec.add_dependency 'net-http-persistent'
41
41
 
@@ -34,8 +34,6 @@ module Algolia
34
34
  @connect_timeout = opts[:connect_timeout] || Defaults::CONNECT_TIMEOUT
35
35
  @compression_type = opts[:compression_type] || Defaults::NONE_ENCODING
36
36
  @symbolize_keys = opts.has_key?(:symbolize_keys) ? opts[:symbolize_keys] : true
37
- # used to avoid BC break on Rails integration, should not be documented
38
- @use_latest_settings = opts.has_key?(:use_latest_settings) ? opts[:use_latest_settings] : true
39
37
  end
40
38
 
41
39
  def set_extra_header(key, value)
@@ -52,10 +52,8 @@ module Helpers
52
52
 
53
53
  # Support to convert old settings to their new names
54
54
  #
55
- def deserialize_settings(data, use_latest_settings, symbolize_keys)
56
- return data unless use_latest_settings
57
-
58
- settings = symbolize_hash(data)
55
+ def deserialize_settings(data, symbolize_keys)
56
+ settings = data
59
57
  keys = {
60
58
  attributesToIndex: 'searchableAttributes',
61
59
  numericAttributesToIndex: 'numericAttributesForFiltering',
@@ -63,6 +61,7 @@ module Helpers
63
61
  }
64
62
 
65
63
  keys.each do |deprecated_key, current_key|
64
+ deprecated_key = symbolize_keys ? deprecated_key : deprecated_key.to_s
66
65
  if settings.has_key?(deprecated_key)
67
66
  key = symbolize_keys ? current_key.to_sym : current_key.to_s
68
67
  settings[key] = settings.delete(deprecated_key)
@@ -90,11 +90,11 @@ module Algolia
90
90
  # @return [Index] new Index instance
91
91
  #
92
92
  def init_index(index_name)
93
- index_name.strip!
94
- if index_name.empty?
93
+ stripped_index_name = index_name.strip
94
+ if stripped_index_name.empty?
95
95
  raise AlgoliaError, 'Please provide a valid index name'
96
96
  end
97
- Index.new(index_name, @transporter, @config)
97
+ Index.new(stripped_index_name, @transporter, @config)
98
98
  end
99
99
 
100
100
  # List all indexes of the client
@@ -300,7 +300,7 @@ module Algolia
300
300
  # @return [AddApiKeyResponse]
301
301
  #
302
302
  def add_api_key!(acl, opts = {})
303
- response = add_api_key(acl)
303
+ response = add_api_key(acl, opts)
304
304
 
305
305
  response.wait(opts)
306
306
  end
@@ -976,7 +976,7 @@ module Algolia
976
976
  def get_settings(opts = {})
977
977
  response = @transporter.read(:GET, path_encode('/1/indexes/%s/settings', @name) + handle_params({ getVersion: 2 }), {}, opts)
978
978
 
979
- deserialize_settings(response, @config.use_latest_settings, @config.symbolize_keys)
979
+ deserialize_settings(response, @config.symbolize_keys)
980
980
  end
981
981
 
982
982
  # Update some index settings. Only specified settings are overridden
@@ -34,7 +34,7 @@ module Algolia
34
34
  def add_headers(opts = {})
35
35
  unless opts[:headers].nil?
36
36
  opts[:headers].each do |opt, value|
37
- @headers[opt.to_sym] = value
37
+ @headers[opt.to_s] = value
38
38
  end
39
39
  opts.delete(:headers)
40
40
  end
@@ -127,15 +127,12 @@ module Algolia
127
127
 
128
128
  # Generates headers from config headers and optional parameters
129
129
  #
130
- # @option options [String] :headers
130
+ # @param request_options [RequestOptions]
131
131
  #
132
132
  # @return [Hash] merged headers
133
133
  #
134
134
  def generate_headers(request_options = {})
135
- headers = {}
136
- extra_headers = request_options.headers || {}
137
- @config.headers.each { |key, val| headers[key.to_s] = val }
138
- extra_headers.each { |key, val| headers[key.to_s] = val }
135
+ headers = @config.headers.merge(request_options.headers)
139
136
  if request_options.compression_type == Defaults::GZIP_ENCODING
140
137
  headers['Accept-Encoding'] = Defaults::GZIP_ENCODING
141
138
  end
@@ -1,3 +1,3 @@
1
1
  module Algolia
2
- VERSION = '2.0.0-beta.3'.freeze
2
+ VERSION = '2.0.4'.freeze
3
3
  end
@@ -215,6 +215,7 @@ class SearchClientTest < BaseTest
215
215
 
216
216
  def test_api_keys
217
217
  assert_equal ['search'], @api_key[:acl]
218
+ assert_equal 'A description', @api_key[:description]
218
219
 
219
220
  api_keys = @@search_client.list_api_keys[:keys].map do |key|
220
221
  key[:value]
@@ -18,35 +18,26 @@ class HelpersTest
18
18
  replicas: %w(index1 index2)
19
19
  }
20
20
 
21
- deserialized_settings = deserialize_settings(old_settings, true, true)
21
+ deserialized_settings = deserialize_settings(old_settings, true)
22
22
  assert_equal new_settings, deserialized_settings
23
23
  end
24
24
 
25
- def test_deserialize_settings_with_old_settings
26
- old_settings = {
27
- attributesToIndex: %w(attr1 attr2),
28
- numericAttributesToIndex: %w(attr1 attr2),
29
- slaves: %w(index1 index2)
30
- }
31
-
32
- deserialized_settings = deserialize_settings(old_settings, false, true)
33
- assert_equal old_settings, deserialized_settings
34
- end
35
-
36
25
  def test_deserialize_settings_with_string
37
26
  old_settings = {
38
27
  'attributesToIndex' => %w(attr1 attr2),
39
28
  'numericAttributesToIndex' => %w(attr1 attr2),
40
- 'slaves' => %w(index1 index2)
29
+ 'slaves' => %w(index1 index2),
30
+ 'minWordSizefor1Typo' => 1
41
31
  }
42
32
 
43
33
  new_settings = {
44
34
  'searchableAttributes' => %w(attr1 attr2),
45
35
  'numericAttributesForFiltering' => %w(attr1 attr2),
46
- 'replicas' => %w(index1 index2)
36
+ 'replicas' => %w(index1 index2),
37
+ 'minWordSizefor1Typo' => 1
47
38
  }
48
39
 
49
- deserialized_settings = deserialize_settings(old_settings, true, false)
40
+ deserialized_settings = deserialize_settings(old_settings, false)
50
41
  assert_equal new_settings, deserialized_settings
51
42
  end
52
43
  end
@@ -229,7 +229,7 @@ client.search_user_ids('query', {clusterName: 'my-cluster', hitPerPage: 12, page
229
229
  #### `pending_mappings`
230
230
  New method to check the status of your clusters' migration or user creation.
231
231
  ```ruby
232
- client.pending_mapping?({ retrieveMappings: true })
232
+ client.pending_mappings?({ retrieveMappings: true })
233
233
  ```
234
234
 
235
235
  #### `get_logs`
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.pre.beta.3
4
+ version: 2.0.4
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-21 00:00:00.000000000 Z
11
+ date: 2021-01-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -56,16 +56,22 @@ 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: '2.0'
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: '2.0'
69
75
  - !ruby/object:Gem::Dependency
70
76
  name: multi_json
71
77
  requirement: !ruby/object:Gem::Requirement
@@ -178,8 +184,7 @@ dependencies:
178
184
  - - ">="
179
185
  - !ruby/object:Gem::Version
180
186
  version: '0'
181
- description: This is the alpha version of the upcoming v2 release of Algolia Client.
182
- Please keep on using the algoliasearch gem in the meantime.
187
+ description: A simple Ruby client for the algolia.com REST API
183
188
  email:
184
189
  - support@algolia.com
185
190
  executables: []
@@ -187,16 +192,22 @@ extensions: []
187
192
  extra_rdoc_files: []
188
193
  files:
189
194
  - ".circleci/config.yml"
195
+ - ".dockerignore"
190
196
  - ".github/ISSUE_TEMPLATE.md"
191
197
  - ".github/PULL_REQUEST_TEMPLATE.md"
192
198
  - ".gitignore"
193
199
  - ".rubocop.yml"
194
200
  - ".rubocop_todo.yml"
201
+ - CHANGELOG.md
195
202
  - CODE_OF_CONDUCT.md
203
+ - CONTRIBUTING.MD
204
+ - DOCKER_README.MD
205
+ - Dockerfile
196
206
  - Gemfile
197
207
  - LICENSE
198
208
  - README.md
199
209
  - Rakefile
210
+ - SECURITY.md
200
211
  - Steepfile
201
212
  - algolia.gemspec
202
213
  - bin/console
@@ -271,13 +282,13 @@ files:
271
282
  - test/algolia/unit/user_agent_test.rb
272
283
  - test/test_helper.rb
273
284
  - upgrade_guide.md
274
- homepage: https://github.com/algolia/algoliasearch-client-ruby/tree/release/v2
285
+ homepage: https://github.com/algolia/algoliasearch-client-ruby
275
286
  licenses:
276
287
  - MIT
277
288
  metadata:
278
289
  bug_tracker_uri: https://github.com/algolia/algoliasearch-client-ruby/issues
279
- documentation_uri: http://www.rubydoc.info/gems/algolia
280
- source_code_uri: https://github.com/algolia/algoliasearch-client-ruby/tree/release/v2
290
+ documentation_uri: https://www.algolia.com/doc/api-client/getting-started/install/ruby
291
+ source_code_uri: https://github.com/algolia/algoliasearch-client-ruby
281
292
  post_install_message:
282
293
  rdoc_options: []
283
294
  require_paths:
@@ -289,14 +300,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
289
300
  version: '0'
290
301
  required_rubygems_version: !ruby/object:Gem::Requirement
291
302
  requirements:
292
- - - ">"
303
+ - - ">="
293
304
  - !ruby/object:Gem::Version
294
- version: 1.3.1
305
+ version: '0'
295
306
  requirements: []
296
- rubygems_version: 3.0.3
307
+ rubygems_version: 3.1.4
297
308
  signing_key:
298
309
  specification_version: 4
299
- summary: A simple Ruby client for the algolia.com REST API (alpha release)
310
+ summary: A simple Ruby client for the algolia.com REST API
300
311
  test_files:
301
312
  - test/algolia/integration/account_client_test.rb
302
313
  - test/algolia/integration/analytics_client_test.rb