elasticsearch_record 1.7.0 → 1.7.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/docs/CHANGELOG.md +8 -0
- data/elasticsearch_record.gemspec +1 -1
- data/lib/active_record/connection_adapters/elasticsearch_adapter.rb +1 -1
- data/lib/elasticsearch_record/gem_version.rb +1 -1
- data/lib/elasticsearch_record/relation/calculation_methods.rb +13 -9
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9e957272489ab4ebcfc628f36441959f01e20264d215f3f8d020d461447b87bc
|
4
|
+
data.tar.gz: a12a713313af1fd1dd83077b96255efe9cfeced3bcc5204739fd383499e6ad8a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4ef80538ae0feca07575902168df24c56696b4c4cf608ca8466b4c495261296a4338709e302bf402b2596fe1bb0617faa3c1198a7fa6f6b96cc031bd4ea7831e
|
7
|
+
data.tar.gz: 5ad60438e39b4f579d84959f897452d48ac1d4b261c7b65af7539ddb7b69601b1d963dd393ab647d5dbcef55c695ce0cf5e2ffbb6db217348ead523f8e373f4b
|
data/README.md
CHANGED
@@ -44,7 +44,7 @@ https://github.com/ruby-smart/elasticsearch_record/tree/rails-7-0-stable
|
|
44
44
|
Add this line to your application's Gemfile:
|
45
45
|
|
46
46
|
```ruby
|
47
|
-
gem 'elasticsearch_record', '~> 1.7'
|
47
|
+
gem 'elasticsearch_record', '~> 1.7.0'
|
48
48
|
|
49
49
|
# alternative
|
50
50
|
gem 'elasticsearch_record', git: 'https://github.com/ruby-smart/elasticsearch_record', branch: 'rails-7-0-stable'
|
data/docs/CHANGELOG.md
CHANGED
@@ -1,5 +1,13 @@
|
|
1
1
|
# ElasticsearchRecord - CHANGELOG
|
2
2
|
|
3
|
+
## [1.7.2] - 2024-01-10
|
4
|
+
* [ref] gemspec to lock on rails 7.0
|
5
|
+
|
6
|
+
## [1.7.1] - 2024-01-09
|
7
|
+
* [fix] `ElasticsearchRecord::Relation` calculation methods return with different nodes
|
8
|
+
* [ref] `ElasticsearchRecord::Relation#calculate` removes default value of `node`
|
9
|
+
* [ref] `ActiveRecord::ConnectionAdapters::ElasticsearchAdapter#api` prevents inaccurate variable interpretation of `log`
|
10
|
+
|
3
11
|
## [1.7.0] - 2024-01-09
|
4
12
|
* [add] `ElasticsearchRecord::Relation#boxplot` calculation method
|
5
13
|
* [add] `ElasticsearchRecord::Relation#stats` calculation method
|
@@ -238,7 +238,7 @@ module ActiveRecord # :nodoc:
|
|
238
238
|
# resolve the API target
|
239
239
|
target = namespace == :core ? @connection : @connection.__send__(namespace)
|
240
240
|
|
241
|
-
log
|
241
|
+
__send__(:log, "#{namespace}.#{action}", arguments, name, async: async, log: log) do
|
242
242
|
response = ActiveSupport::Dependencies.interlock.permit_concurrent_loads do
|
243
243
|
target.__send__(action, arguments)
|
244
244
|
end
|
@@ -168,7 +168,7 @@ module ElasticsearchRecord
|
|
168
168
|
# @param [Symbol, String] column_name
|
169
169
|
# @param [Array] values
|
170
170
|
def percentile_ranks(column_name, values)
|
171
|
-
calculate(:
|
171
|
+
calculate(:percentile_ranks, column_name, opts: { values: values }, node: :values)
|
172
172
|
end
|
173
173
|
|
174
174
|
# Calculates the cardinality on a given column. Returns +0+ if there's no row.
|
@@ -180,7 +180,7 @@ module ElasticsearchRecord
|
|
180
180
|
#
|
181
181
|
# @param [Symbol, String] column_name
|
182
182
|
def cardinality(column_name)
|
183
|
-
calculate(:cardinality, column_name)
|
183
|
+
calculate(:cardinality, column_name, node: :value)
|
184
184
|
end
|
185
185
|
|
186
186
|
# Calculates the average value on a given column. Returns +nil+ if there's no row. See #calculate for examples with options.
|
@@ -191,7 +191,7 @@ module ElasticsearchRecord
|
|
191
191
|
#
|
192
192
|
# @param [Symbol, String] column_name
|
193
193
|
def average(column_name)
|
194
|
-
calculate(:avg, column_name)
|
194
|
+
calculate(:avg, column_name, node: :value)
|
195
195
|
end
|
196
196
|
|
197
197
|
# Calculates the minimum value on a given column. The value is returned
|
@@ -204,7 +204,7 @@ module ElasticsearchRecord
|
|
204
204
|
#
|
205
205
|
# @param [Symbol, String] column_name
|
206
206
|
def minimum(column_name)
|
207
|
-
calculate(:min, column_name)
|
207
|
+
calculate(:min, column_name, node: :value)
|
208
208
|
end
|
209
209
|
|
210
210
|
# Calculates the maximum value on a given column. The value is returned
|
@@ -217,7 +217,7 @@ module ElasticsearchRecord
|
|
217
217
|
#
|
218
218
|
# @param [Symbol, String] column_name
|
219
219
|
def maximum(column_name)
|
220
|
-
calculate(:max, column_name)
|
220
|
+
calculate(:max, column_name, node: :value)
|
221
221
|
end
|
222
222
|
|
223
223
|
# This single-value aggregation approximates the median absolute deviation of its search results.
|
@@ -247,7 +247,7 @@ module ElasticsearchRecord
|
|
247
247
|
#
|
248
248
|
# @param [Symbol, String] column_name (optional)
|
249
249
|
def sum(column_name)
|
250
|
-
calculate(:sum, column_name)
|
250
|
+
calculate(:sum, column_name, node: :value)
|
251
251
|
end
|
252
252
|
|
253
253
|
# creates a aggregation with the provided metric (e.g. :sum) and columns.
|
@@ -255,8 +255,8 @@ module ElasticsearchRecord
|
|
255
255
|
# @param [Symbol, String] metric
|
256
256
|
# @param [Array<Symbol|String>] columns
|
257
257
|
# @param [Hash] opts - additional arguments that get merged with the metric definition
|
258
|
-
# @param [Symbol] node (default
|
259
|
-
def calculate(metric, *columns, opts: {}, node:
|
258
|
+
# @param [Symbol] node (default: nil)
|
259
|
+
def calculate(metric, *columns, opts: {}, node: nil)
|
260
260
|
metric_key = "calculate_#{metric}"
|
261
261
|
|
262
262
|
# spawn a new aggregation and return the aggs
|
@@ -266,7 +266,11 @@ module ElasticsearchRecord
|
|
266
266
|
aggregate(metric_key, { metric => { fields: columns }.merge(opts) }).aggregations
|
267
267
|
end
|
268
268
|
|
269
|
-
|
269
|
+
if node.present?
|
270
|
+
response[metric_key][node]
|
271
|
+
else
|
272
|
+
response[metric_key]
|
273
|
+
end
|
270
274
|
end
|
271
275
|
end
|
272
276
|
end
|
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.7.
|
4
|
+
version: 1.7.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tobias Gonsior
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-01-
|
11
|
+
date: 2024-01-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 7.0.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:
|
26
|
+
version: 7.0.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: elasticsearch
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|