meilisearch-rails 0.9.1 → 0.10.1
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/Gemfile +2 -1
- data/README.md +29 -10
- data/lib/meilisearch/rails/tasks/meilisearch.rake +7 -0
- data/lib/meilisearch/rails/templates/initializer.rb +4 -0
- data/lib/meilisearch/rails/version.rb +1 -1
- data/lib/meilisearch-rails.rb +21 -21
- data/meilisearch-rails.gemspec +1 -1
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5533b797c2c1df4ba52eee7e73d68c81b8a329353b896d7e5d6b17560f2b9c6d
|
4
|
+
data.tar.gz: c65d9fc11a89d2d054392b44c8858b59429e84fc707f569ba7d3888c4685c0df
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f86c37174ef35dce271cc4dbd0ef51355828e9c1bb16c266b019883afc7fb1856f73b4d6dd61982c74e41c716122684d7307a31ee86d0015b3538bbc3c3f6616
|
7
|
+
data.tar.gz: 88038b5cae1f6611e4793cf5051f03f88e9c01683bde793c38134340eb68126b38d3784b3e73bf7b79b07e0bbdf9d44d08c08938abee35b7a950728f6fc4c43b
|
data/Gemfile
CHANGED
@@ -13,7 +13,7 @@ group :development do
|
|
13
13
|
end
|
14
14
|
|
15
15
|
group :test do
|
16
|
-
rails_version = ENV['RAILS_VERSION'] || '
|
16
|
+
rails_version = ENV['RAILS_VERSION'] || '6.1'
|
17
17
|
sequel_version = ENV['SEQUEL_VERSION'] ? "~> #{ENV['SEQUEL_VERSION']}" : '>= 4.0'
|
18
18
|
|
19
19
|
gem 'active_model_serializers'
|
@@ -31,6 +31,7 @@ group :test do
|
|
31
31
|
gem 'jdbc-sqlite3', platform: :jruby
|
32
32
|
gem 'rspec', '~> 3.0'
|
33
33
|
gem 'simplecov', require: 'false'
|
34
|
+
gem 'codecov', require: 'false'
|
34
35
|
gem 'threads'
|
35
36
|
|
36
37
|
gem 'byebug'
|
data/README.md
CHANGED
@@ -6,17 +6,21 @@
|
|
6
6
|
|
7
7
|
<h4 align="center">
|
8
8
|
<a href="https://github.com/meilisearch/meilisearch">Meilisearch</a> |
|
9
|
+
<a href="https://www.meilisearch.com/pricing?utm_campaign=oss&utm_source=integration&utm_medium=meilisearch-rails">Meilisearch Cloud</a> |
|
9
10
|
<a href="https://docs.meilisearch.com">Documentation</a> |
|
10
11
|
<a href="https://discord.meilisearch.com">Discord</a> |
|
11
12
|
<a href="https://roadmap.meilisearch.com/tabs/1-under-consideration">Roadmap</a> |
|
12
13
|
<a href="https://www.meilisearch.com">Website</a> |
|
13
|
-
<a href="https://
|
14
|
+
<a href="https://www.meilisearch.com/docs/faq">FAQ</a>
|
14
15
|
</h4>
|
15
16
|
|
16
17
|
<p align="center">
|
17
18
|
<a href="https://github.com/meilisearch/meilisearch-rails/actions"><img src="https://github.com/meilisearch/meilisearch-rails/workflows/Tests/badge.svg" alt="Test"></a>
|
19
|
+
<a href="https://app.codecov.io/gh/meilisearch/meilisearch-rails/tree/main" >
|
20
|
+
<img src="https://codecov.io/gh/meilisearch/meilisearch-rails/branch/main/graph/badge.svg?token=9J7LRP11IR"/>
|
21
|
+
</a>
|
18
22
|
<a href="https://github.com/meilisearch/meilisearch-rails/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-MIT-informational" alt="License"></a>
|
19
|
-
<a href="https://
|
23
|
+
<a href="https://ms-bors.herokuapp.com/repositories/68"><img src="https://bors.tech/images/badge_small.svg" alt="Bors enabled"></a>
|
20
24
|
</p>
|
21
25
|
|
22
26
|
<p align="center">⚡ The Meilisearch integration for Ruby on Rails 💎</p>
|
@@ -28,6 +32,7 @@
|
|
28
32
|
## Table of Contents <!-- omit in toc -->
|
29
33
|
|
30
34
|
- [📖 Documentation](#-documentation)
|
35
|
+
- [⚡ Supercharge your Meilisearch experience](#-supercharge-your-meilisearch-experience)
|
31
36
|
- [🤖 Compatibility with Meilisearch](#-compatibility-with-meilisearch)
|
32
37
|
- [🚀 Getting started](#-getting-started)
|
33
38
|
- [Compatibility](#-compatibility)
|
@@ -58,7 +63,11 @@
|
|
58
63
|
|
59
64
|
The whole usage of this gem is detailed in this README.
|
60
65
|
|
61
|
-
To learn more about Meilisearch, check out our [Documentation](https://
|
66
|
+
To learn more about Meilisearch, check out our [Documentation](https://www.meilisearch.com/docs/learn/tutorials/getting_started.html) or our [API References](https://www.meilisearch.com/docs/reference/api/).
|
67
|
+
|
68
|
+
## ⚡ Supercharge your Meilisearch experience
|
69
|
+
|
70
|
+
Say goodbye to server deployment and manual updates with [Meilisearch Cloud](https://www.meilisearch.com/pricing?utm_campaign=oss&utm_source=integration&utm_medium=meilisearch-rails). No credit card required.
|
62
71
|
|
63
72
|
## 🤖 Compatibility with Meilisearch
|
64
73
|
|
@@ -66,7 +75,7 @@ This package guarantees compatibility with [version v1.x of Meilisearch](https:/
|
|
66
75
|
|
67
76
|
## 🔧 Installation <!-- omit in toc -->
|
68
77
|
|
69
|
-
This package requires Ruby version 2.
|
78
|
+
This package requires Ruby version 2.7.0 or later and Rails 6.1 or later. It may work in older versions but it is not officially supported.
|
70
79
|
|
71
80
|
With `gem` in command line:
|
72
81
|
```bash
|
@@ -82,7 +91,7 @@ gem 'meilisearch-rails'
|
|
82
91
|
|
83
92
|
### Run Meilisearch <!-- omit in toc -->
|
84
93
|
|
85
|
-
There are many easy ways to [download and run a Meilisearch instance](https://
|
94
|
+
There are many easy ways to [download and run a Meilisearch instance](https://www.meilisearch.com/docs/reference/features/installation.html#download-and-launch).
|
86
95
|
|
87
96
|
For example, if you use Docker:
|
88
97
|
|
@@ -101,13 +110,21 @@ Create a new file `config/initializers/meilisearch.rb` to setup your `MEILISEARC
|
|
101
110
|
|
102
111
|
```ruby
|
103
112
|
MeiliSearch::Rails.configuration = {
|
104
|
-
meilisearch_url: '
|
105
|
-
meilisearch_api_key: 'YourMeilisearchAPIKey'
|
113
|
+
meilisearch_url: ENV.fetch('MEILISEARCH_HOST', 'http://localhost:7700'),
|
114
|
+
meilisearch_api_key: ENV.fetch('MEILISEARCH_API_KEY', 'YourMeilisearchAPIKey')
|
106
115
|
}
|
107
116
|
```
|
108
117
|
|
118
|
+
Or you can run a rake task to create the initializer file for you:
|
119
|
+
|
120
|
+
```bash
|
121
|
+
bin/rails meilisearch:install
|
122
|
+
```
|
123
|
+
|
109
124
|
The gem is compatible with [ActiveRecord](https://github.com/rails/rails/tree/master/activerecord), [Mongoid](https://github.com/mongoid/mongoid) and [Sequel](https://github.com/jeremyevans/sequel).
|
110
125
|
|
126
|
+
⚠️ Note that even if you want to use all the default options, you must declare an empty `meilisearch` block in your model.
|
127
|
+
|
111
128
|
#### Add documents <!-- omit in toc -->
|
112
129
|
|
113
130
|
The following code will create a `Book` index and add search capabilities to your `Book` model.
|
@@ -123,7 +140,9 @@ class Book < ActiveRecord::Base
|
|
123
140
|
end
|
124
141
|
```
|
125
142
|
|
126
|
-
|
143
|
+
#### Automatic indexing
|
144
|
+
|
145
|
+
As soon as you configure your model as mentioned above, `meilisearch-rails` will keep your database table data in sync with your Meilisearch instance using the `ActiveRecord` callbacks automatically.
|
127
146
|
|
128
147
|
#### Basic Backend Search <!-- omit in toc -->
|
129
148
|
|
@@ -191,11 +210,11 @@ class Book < ApplicationRecord
|
|
191
210
|
end
|
192
211
|
```
|
193
212
|
|
194
|
-
Check the dedicated section of the documentation, for more information on the [settings](https://
|
213
|
+
Check the dedicated section of the documentation, for more information on the [settings](https://www.meilisearch.com/docs/reference/api/settings#settings_parameters).
|
195
214
|
|
196
215
|
## 🔍 Custom search
|
197
216
|
|
198
|
-
All the supported options are described in the [search parameters](https://
|
217
|
+
All the supported options are described in the [search parameters](https://www.meilisearch.com/docs/reference/api/search#search-parameters) section of the documentation.
|
199
218
|
|
200
219
|
```ruby
|
201
220
|
Book.search('Harry', attributes_to_highlight: ['*'])
|
@@ -19,4 +19,11 @@ namespace :meilisearch do
|
|
19
19
|
|
20
20
|
MeiliSearch::Rails::Utilities.clear_all_indexes
|
21
21
|
end
|
22
|
+
|
23
|
+
desc 'Create initializer file'
|
24
|
+
task install: :environment do
|
25
|
+
puts 'Creating initializer file'
|
26
|
+
|
27
|
+
copy_file "#{__dir__}/../templates/initializer.rb", 'config/initializers/meilisearch.rb'
|
28
|
+
end
|
22
29
|
end
|
data/lib/meilisearch-rails.rb
CHANGED
@@ -48,23 +48,23 @@ module MeiliSearch
|
|
48
48
|
|
49
49
|
# Meilisearch settings
|
50
50
|
OPTIONS = %i[
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
51
|
+
searchable_attributes
|
52
|
+
filterable_attributes
|
53
|
+
sortable_attributes
|
54
|
+
displayed_attributes
|
55
|
+
distinct_attribute
|
56
56
|
synonyms
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
57
|
+
stop_words
|
58
|
+
ranking_rules
|
59
|
+
attributes_to_highlight
|
60
|
+
attributes_to_crop
|
61
|
+
crop_length
|
62
62
|
pagination
|
63
63
|
faceting
|
64
|
-
|
64
|
+
typo_tolerance
|
65
65
|
].freeze
|
66
66
|
|
67
|
-
CAMELIZE_OPTIONS = %i[pagination faceting
|
67
|
+
CAMELIZE_OPTIONS = %i[pagination faceting typo_tolerance].freeze
|
68
68
|
|
69
69
|
OPTIONS.each do |option|
|
70
70
|
define_method option do |value|
|
@@ -265,9 +265,9 @@ module MeiliSearch
|
|
265
265
|
::MeiliSearch::Index.instance_methods(false).each do |m|
|
266
266
|
define_method(m) do |*args, &block|
|
267
267
|
if m == :update_settings
|
268
|
-
args[0].delete(:
|
269
|
-
args[0].delete(:
|
270
|
-
args[0].delete(:
|
268
|
+
args[0].delete(:attributes_to_highlight) if args[0][:attributes_to_highlight]
|
269
|
+
args[0].delete(:attributes_to_crop) if args[0][:attributes_to_crop]
|
270
|
+
args[0].delete(:crop_length) if args[0][:crop_length]
|
271
271
|
end
|
272
272
|
|
273
273
|
SafeIndex.log_or_throw(m, @raise_on_failure) do
|
@@ -581,15 +581,15 @@ module MeiliSearch
|
|
581
581
|
def ms_raw_search(q, params = {})
|
582
582
|
index_uid = params.delete(:index) || params.delete('index')
|
583
583
|
|
584
|
-
unless meilisearch_settings.get_setting(:
|
585
|
-
params[:
|
584
|
+
unless meilisearch_settings.get_setting(:attributes_to_highlight).nil?
|
585
|
+
params[:attributes_to_highlight] = meilisearch_settings.get_setting(:attributes_to_highlight)
|
586
586
|
end
|
587
587
|
|
588
|
-
unless meilisearch_settings.get_setting(:
|
589
|
-
params[:
|
588
|
+
unless meilisearch_settings.get_setting(:attributes_to_crop).nil?
|
589
|
+
params[:attributes_to_crop] = meilisearch_settings.get_setting(:attributes_to_crop)
|
590
590
|
|
591
|
-
unless meilisearch_settings.get_setting(:
|
592
|
-
params[:
|
591
|
+
unless meilisearch_settings.get_setting(:crop_length).nil?
|
592
|
+
params[:crop_length] = meilisearch_settings.get_setting(:crop_length)
|
593
593
|
end
|
594
594
|
end
|
595
595
|
|
data/meilisearch-rails.gemspec
CHANGED
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.
|
4
|
+
version: 0.10.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Meili
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-09-14 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.
|
19
|
+
version: 0.25.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.
|
26
|
+
version: 0.25.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: []
|
@@ -47,6 +47,7 @@ files:
|
|
47
47
|
- lib/meilisearch/rails/pagination/will_paginate.rb
|
48
48
|
- lib/meilisearch/rails/railtie.rb
|
49
49
|
- lib/meilisearch/rails/tasks/meilisearch.rake
|
50
|
+
- lib/meilisearch/rails/templates/initializer.rb
|
50
51
|
- lib/meilisearch/rails/utilities.rb
|
51
52
|
- lib/meilisearch/rails/version.rb
|
52
53
|
- meilisearch-rails.gemspec
|