elasticsearch_record 1.5.0 → 1.5.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +12 -7
- data/docs/CHANGELOG.md +4 -0
- data/elasticsearch_record.gemspec +1 -0
- data/lib/active_record/connection_adapters/elasticsearch/schema_definitions/table_mapping_definition.rb +1 -1
- data/lib/elasticsearch_record/gem_version.rb +1 -1
- data/lib/elasticsearch_record/model_api.rb +80 -2
- metadata +21 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b6e4ca9acc6ee9abda4a3dacec4a75f9f1af77c361dbff3b53aa30648dfa5a5f
|
4
|
+
data.tar.gz: f6cf2edda611efb7daa6585764c09c2320040c8970555d64dab96ced763d2f19
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1d9327c0b6500d47ec5459ebd5e6053d8178d59b33cd690d5f9a2752ec22cc52d2728b295dd4644c5f7fa6b794c6a8d69305b372c6c138e2ae8c717500669453
|
7
|
+
data.tar.gz: 050e345874250113d23c69d4de6d3c8f35c7c6b4538fe8d1ee3dbeaf86a64dc7c745175a8301c5d78121481927bff34033a321e390fbaddf3356110951afb3c4
|
data/README.md
CHANGED
@@ -56,6 +56,7 @@ Or install it yourself as:
|
|
56
56
|
## Setup
|
57
57
|
|
58
58
|
### a) Update your **database.yml** and add a elasticsearch connection:
|
59
|
+
|
59
60
|
```yml
|
60
61
|
# config/database.yml
|
61
62
|
|
@@ -115,6 +116,7 @@ end
|
|
115
116
|
```
|
116
117
|
|
117
118
|
### c) Create a model that inherits from `ElasticsearchRecord::Base` model.
|
119
|
+
|
118
120
|
```ruby
|
119
121
|
# app/models/application_elasticsearch_record.rb
|
120
122
|
|
@@ -135,6 +137,7 @@ end
|
|
135
137
|
```
|
136
138
|
|
137
139
|
### d) have FUN with your model:
|
140
|
+
|
138
141
|
```ruby
|
139
142
|
scope = Search
|
140
143
|
.where(name: 'Custom Object Name')
|
@@ -155,12 +158,13 @@ scope.where(kind: :undefined).offset(10).update_all(name: "New Name")
|
|
155
158
|
|
156
159
|
## Active Record Query Interface
|
157
160
|
|
158
|
-
### Refactored
|
161
|
+
### Refactored `where` method:
|
159
162
|
Different to the default where-method you can now use it in different ways.
|
160
163
|
|
161
164
|
Using it by default with a Hash, the method decides itself to either add a filter, or must_not clause.
|
162
165
|
|
163
|
-
_Hint: If not provided through
|
166
|
+
_Hint: If not provided through `#kind`-method a default kind **:bool** will be used._
|
167
|
+
|
164
168
|
```ruby
|
165
169
|
# use it by default
|
166
170
|
Search.where(name: 'A nice object')
|
@@ -213,7 +217,6 @@ results_count = scope.count
|
|
213
217
|
# > 5
|
214
218
|
total = scope.total
|
215
219
|
# > 3335
|
216
|
-
|
217
220
|
```
|
218
221
|
|
219
222
|
### Available query/relation chain methods
|
@@ -322,7 +325,6 @@ Elasticsearch's default value for queries without a **size** is forced to **10**
|
|
322
325
|
To provide a similar behaviour as the (my)SQL interface,
|
323
326
|
this can be automatically set to the `max_result_window` value by calling `.limit(nil)` on the models' relation.
|
324
327
|
|
325
|
-
|
326
328
|
```ruby
|
327
329
|
SearchUser.where(name: 'Peter').limit(nil)
|
328
330
|
# returns a maximum of 10 items ...
|
@@ -350,6 +352,7 @@ SearchUser.where(name: 'Peter').limit(nil)
|
|
350
352
|
Quick access to model-related methods for easier access without creating a overcomplicated method call on the models connection...
|
351
353
|
|
352
354
|
Access these methods through the model class method `.api`.
|
355
|
+
|
353
356
|
```ruby
|
354
357
|
# returns mapping of model class
|
355
358
|
klass.api.mappings
|
@@ -523,7 +526,6 @@ class AddTests < ActiveRecord::Migration[7.0]
|
|
523
526
|
end
|
524
527
|
```
|
525
528
|
|
526
|
-
|
527
529
|
## environment-related-table-name:
|
528
530
|
Using the `_env_table_name`-method will resolve the table (index) name within the current environment,
|
529
531
|
even if the environments shares the same cluster ...
|
@@ -533,11 +535,14 @@ Within the migration the `_env_table_name`-method must be used in combination wi
|
|
533
535
|
|
534
536
|
**Example:**
|
535
537
|
Production uses a index suffix with '-pro', development uses '-dev' - they share the same cluster, but different indexes.
|
538
|
+
|
536
539
|
For the **settings** table:
|
537
|
-
|
538
|
-
|
540
|
+
|
541
|
+
* settings-pro
|
542
|
+
* settings-dev
|
539
543
|
|
540
544
|
A single migration can be created to be used within each environment:
|
545
|
+
|
541
546
|
```ruby
|
542
547
|
# Example migration
|
543
548
|
class AddSettings < ActiveRecord::Migration[7.0]
|
data/docs/CHANGELOG.md
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
# ElasticsearchRecord - CHANGELOG
|
2
2
|
|
3
|
+
## [1.5.1] - 2023-07-11
|
4
|
+
* [fix] `ElasticsearchRecord::ModelApi` 'drop!' & 'truncate!' methods to support correct parameter 'confirm'
|
5
|
+
* [ref] improved yard documentation
|
6
|
+
|
3
7
|
## [1.5.0] - 2023-07-10
|
4
8
|
* [add] additional `ElasticsearchRecord::ModelApi` methods **drop!** & **truncate!**, which have to be called with a `confirm:true` parameter
|
5
9
|
* [add] `.ElasticsearchRecord::Base.delegate_query_nil_limit` to automatically delegate a relations `limit(nil)`-call to the **max_result_window** _(set to 10.000 as default)_
|
@@ -40,4 +40,5 @@ DESC
|
|
40
40
|
spec.add_development_dependency 'rake', "~> 13.0"
|
41
41
|
spec.add_development_dependency 'yard', '~> 0.9'
|
42
42
|
spec.add_development_dependency 'yard-activesupport-concern', '~> 0.0.1'
|
43
|
+
spec.add_development_dependency 'yard-relative_markdown_links', '>= 0.4'
|
43
44
|
end
|
@@ -33,8 +33,8 @@ module ElasticsearchRecord
|
|
33
33
|
# drop!(confirm: true)
|
34
34
|
# truncate!(confirm: true)
|
35
35
|
%w(drop truncate).each do |method|
|
36
|
-
define_method("#{method}!") do |
|
37
|
-
raise "#{method} of table '#{_index_name}' aborted!\nexecution not confirmed!\ncall with: #{klass}.api.#{method}!(
|
36
|
+
define_method("#{method}!") do |confirm: false|
|
37
|
+
raise "#{method} of table '#{_index_name}' aborted!\nexecution not confirmed!\ncall with: #{klass}.api.#{method}!(confirm: true)" unless confirm
|
38
38
|
_connection.send("#{method}_table", _index_name)
|
39
39
|
end
|
40
40
|
end
|
@@ -68,6 +68,84 @@ module ElasticsearchRecord
|
|
68
68
|
end
|
69
69
|
end
|
70
70
|
|
71
|
+
# -- DYNAMIC METHOD DOCUMENTATION FOR YARD -------------------------------------------------------------------------
|
72
|
+
|
73
|
+
# @!method open!
|
74
|
+
# Shortcut to open the closed index.
|
75
|
+
# @return [Boolean] acknowledged status
|
76
|
+
|
77
|
+
# @!method close!
|
78
|
+
# Shortcut to close the opened index.
|
79
|
+
# @return [Boolean] acknowledged status
|
80
|
+
|
81
|
+
# @!method refresh!
|
82
|
+
# Shortcut to refresh the index.
|
83
|
+
# @return [Boolean] result state (returns false if refreshing failed)
|
84
|
+
|
85
|
+
# @!method block!
|
86
|
+
# Shortcut to block write access on the index
|
87
|
+
# @return [Boolean] acknowledged status
|
88
|
+
|
89
|
+
# @!method unblock!
|
90
|
+
# Shortcut to unblock all blocked accesses on the index
|
91
|
+
# @return [Boolean] acknowledged status
|
92
|
+
|
93
|
+
# @!method drop!(confirm: false)
|
94
|
+
# Shortcut to drop the index
|
95
|
+
# @param confirm
|
96
|
+
# @return [Boolean] acknowledged status
|
97
|
+
|
98
|
+
# @!method truncate!(confirm: false)
|
99
|
+
# Shortcut to truncate the index
|
100
|
+
# @param confirm
|
101
|
+
# @return [Boolean] acknowledged status
|
102
|
+
|
103
|
+
# @!method mappings
|
104
|
+
# Shortcut for mappings
|
105
|
+
# @return [Hash]
|
106
|
+
|
107
|
+
# @!method metas
|
108
|
+
# Shortcut for metas
|
109
|
+
# @return [Hash]
|
110
|
+
|
111
|
+
# @!method settings(flat_settings=true)
|
112
|
+
# Shortcut for settings
|
113
|
+
# @param [Boolean] flat_settings (default: true)
|
114
|
+
# @return [Hash]
|
115
|
+
|
116
|
+
# @!method aliases
|
117
|
+
# Shortcut for aliases
|
118
|
+
# @return [Hash]
|
119
|
+
|
120
|
+
# @!method state
|
121
|
+
# Shortcut for state
|
122
|
+
# @return [Hash]
|
123
|
+
|
124
|
+
# @!method schema(features=[])
|
125
|
+
# Shortcut for schema
|
126
|
+
# @param [Array, Symbol] features
|
127
|
+
# @return [Hash]
|
128
|
+
|
129
|
+
# @!method exists?
|
130
|
+
# Shortcut for exists
|
131
|
+
# @return [Boolean]
|
132
|
+
|
133
|
+
# @!method alias_exists?
|
134
|
+
# Shortcut for alias_exists
|
135
|
+
# @return [Boolean]
|
136
|
+
|
137
|
+
# @!method setting_exists?
|
138
|
+
# Shortcut for setting_exists
|
139
|
+
# @return [Boolean]
|
140
|
+
|
141
|
+
# @!method mapping_exists?
|
142
|
+
# Shortcut for mapping_exists
|
143
|
+
# @return [Boolean]
|
144
|
+
|
145
|
+
# @!method meta_exists?
|
146
|
+
# Shortcut for meta_exists
|
147
|
+
# @return [Boolean]
|
148
|
+
|
71
149
|
# fast insert/update data.
|
72
150
|
#
|
73
151
|
# @example
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: elasticsearch_record
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.5.
|
4
|
+
version: 1.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tobias Gonsior
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-07-
|
11
|
+
date: 2023-07-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -94,10 +94,24 @@ dependencies:
|
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: 0.0.1
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: yard-relative_markdown_links
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0.4'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0.4'
|
97
111
|
description: 'ElasticsearchRecord is a ActiveRecord adapter and provides similar functionality
|
98
112
|
for Elasticsearch.
|
99
113
|
|
100
|
-
'
|
114
|
+
'
|
101
115
|
email:
|
102
116
|
- info@ruby-smart.org
|
103
117
|
executables: []
|
@@ -191,7 +205,7 @@ metadata:
|
|
191
205
|
source_code_uri: https://github.com/ruby-smart/elasticsearch_record
|
192
206
|
documentation_uri: https://rubydoc.info/gems/elasticsearch_record
|
193
207
|
changelog_uri: https://github.com/ruby-smart/elasticsearch_record/blob/main/docs/CHANGELOG.md
|
194
|
-
post_install_message:
|
208
|
+
post_install_message:
|
195
209
|
rdoc_options: []
|
196
210
|
require_paths:
|
197
211
|
- lib
|
@@ -206,8 +220,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
206
220
|
- !ruby/object:Gem::Version
|
207
221
|
version: '0'
|
208
222
|
requirements: []
|
209
|
-
rubygems_version: 3.
|
210
|
-
signing_key:
|
223
|
+
rubygems_version: 3.3.26
|
224
|
+
signing_key:
|
211
225
|
specification_version: 4
|
212
226
|
summary: ActiveRecord adapter for Elasticsearch
|
213
227
|
test_files: []
|