meilisearch-rails 0.8.0 → 0.9.0

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: cd9b1257d27f252b6dc5caf4dcc3316d6b8e2a026b6266e4aec67eb05106ace0
4
- data.tar.gz: 356acde3b6a894b8a3e8c2e2206c04527b5927968a33030a6f73e0d807f709af
3
+ metadata.gz: 25c4de2cc918a39c265d31b9191302e42e66a80f1b9d4b9e07c89074bb9e8eec
4
+ data.tar.gz: d6572c3e463044c8401d0916aed8c396ac7559e980e5be03ba874af9d10ab54b
5
5
  SHA512:
6
- metadata.gz: a813264676828158494dd04f5192ab902fd735e3ef0bbc17960b9a8f54fdc581139ec528cd87c0883be6bc96becdce8d455c0055d31b0464f9ba0d53cfbf0751
7
- data.tar.gz: 0b5c4276212a365b038de5492a606be125902bac3bb9417a7cdf279c6e8bccdc146eb84b991b3c8e55928ee99c99510934da0cbbe958813709b6af6725fd7922
6
+ metadata.gz: bf2356509509b70d9ebe00715faa680cd76b58802643712f5447d8d2de93aaae934f7b0048da2eaeb69fcee549654d5e80e24be5a5e71ee2a92c3b5a2c6a5280
7
+ data.tar.gz: 1f99790e054f917bc3c79df3eacb0471e7883dd414a8e03631d1382ef9b186eb53dffb2c1178e4625577231a03534c9348c4114f93b80655e9f242c60bf94de4
data/README.md CHANGED
@@ -7,7 +7,7 @@
7
7
  <h4 align="center">
8
8
  <a href="https://github.com/meilisearch/meilisearch">Meilisearch</a> |
9
9
  <a href="https://docs.meilisearch.com">Documentation</a> |
10
- <a href="https://slack.meilisearch.com">Slack</a> |
10
+ <a href="https://discord.meilisearch.com">Discord</a> |
11
11
  <a href="https://roadmap.meilisearch.com/tabs/1-under-consideration">Roadmap</a> |
12
12
  <a href="https://www.meilisearch.com">Website</a> |
13
13
  <a href="https://docs.meilisearch.com/faq">FAQ</a>
@@ -62,7 +62,7 @@ To learn more about Meilisearch, check out our [Documentation](https://docs.meil
62
62
 
63
63
  ## 🤖 Compatibility with Meilisearch
64
64
 
65
- This package only guarantees the compatibility with the [version v0.30.0 of Meilisearch](https://github.com/meilisearch/meilisearch/releases/tag/v0.30.0).
65
+ This package guarantees compatibility with [version v1.x of Meilisearch](https://github.com/meilisearch/meilisearch/releases/latest), but some features may not be present. Please check the [issues](https://github.com/meilisearch/meilisearch-rails/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22+label%3Aenhancement) for more info.
66
66
 
67
67
  ## 🔧 Installation <!-- omit in toc -->
68
68
 
@@ -185,6 +185,7 @@ class Book < ApplicationRecord
185
185
  attributes_to_highlight ['*']
186
186
  attributes_to_crop [:description]
187
187
  crop_length 10
188
+ faceting max_values_per_facet: 2000
188
189
  pagination max_total_hits: 1000
189
190
  end
190
191
  end
@@ -199,6 +200,13 @@ All the supported options are described in the [search parameters](https://docs.
199
200
  ```ruby
200
201
  Book.search('Harry', attributes_to_highlight: ['*'])
201
202
  ```
203
+
204
+ Then it's possible to retrieve the highlighted or cropped value by using the `formatted` method available in the object.
205
+
206
+ ```ruby
207
+ harry_book.formatted # => {"id"=>"1", "name"=>"<em>Harry</em> Potter", "description"=>…
208
+ ```
209
+
202
210
  👉 Don't forget that `attributes_to_highlight`, `attributes_to_crop`, and
203
211
  `crop_length` can be set up in the `meilisearch` block of your model.
204
212
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  module MeiliSearch
4
4
  module Rails
5
- VERSION = '0.8.0'
5
+ VERSION = '0.9.0'
6
6
 
7
7
  def self.qualified_version
8
8
  "Meilisearch Rails (v#{VERSION})"
@@ -60,9 +60,11 @@ module MeiliSearch
60
60
  attributesToCrop
61
61
  cropLength
62
62
  pagination
63
+ faceting
64
+ typoTolerance
63
65
  ].freeze
64
66
 
65
- CAMELIZE_OPTIONS = %i[pagination].freeze
67
+ CAMELIZE_OPTIONS = %i[pagination faceting typoTolerance].freeze
66
68
 
67
69
  OPTIONS.each do |option|
68
70
  define_method option do |value|
@@ -198,6 +200,10 @@ module MeiliSearch
198
200
  instance_variable_get("@#{name}")
199
201
  end
200
202
 
203
+ def camelize_keys(hash)
204
+ hash.transform_keys { |key| key.to_s.camelize(:lower) }
205
+ end
206
+
201
207
  def to_settings
202
208
  settings = {}
203
209
  OPTIONS.each do |k|
@@ -205,7 +211,12 @@ module MeiliSearch
205
211
  next if v.nil?
206
212
 
207
213
  settings[k] = if CAMELIZE_OPTIONS.include?(k) && v.is_a?(Hash)
208
- v.transform_keys { |key| key.to_s.camelize(:lower) }
214
+ v = camelize_keys(v)
215
+
216
+ # camelize keys of nested hashes
217
+ v.each do |key, value|
218
+ v[key] = camelize_keys(value) if value.is_a?(Hash)
219
+ end
209
220
  else
210
221
  v
211
222
  end
@@ -587,13 +598,6 @@ module MeiliSearch
587
598
  end
588
599
 
589
600
  module AdditionalMethods
590
- def self.extended(base)
591
- class << base
592
- alias_method :raw_answer, :ms_raw_answer unless method_defined? :raw_answer
593
- alias_method :facets_distribution, :ms_facets_distribution unless method_defined? :facets_distribution
594
- end
595
- end
596
-
597
601
  def ms_raw_answer
598
602
  @ms_json
599
603
  end
@@ -602,6 +606,9 @@ module MeiliSearch
602
606
  @ms_json['facetDistribution']
603
607
  end
604
608
 
609
+ alias raw_answer ms_raw_answer unless method_defined? :raw_answer
610
+ alias facets_distribution ms_facets_distribution unless method_defined? :facets_distribution
611
+
605
612
  private
606
613
 
607
614
  def ms_init_raw_answer(json)
@@ -34,5 +34,5 @@ Gem::Specification.new do |s|
34
34
 
35
35
  s.required_ruby_version = '>= 2.6.0'
36
36
 
37
- s.add_dependency 'meilisearch', '~> 0.21.0'
37
+ s.add_dependency 'meilisearch', '~> 0.22.0'
38
38
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: meilisearch-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Meili
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-12-01 00:00:00.000000000 Z
11
+ date: 2023-03-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: meilisearch
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.21.0
19
+ version: 0.22.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 0.21.0
26
+ version: 0.22.0
27
27
  description: Meilisearch integration for Ruby on Rails. See https://github.com/meilisearch/meilisearch
28
28
  email: bonjour@meilisearch.com
29
29
  executables: []