groupdate 6.4.0 → 6.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -4
- data/LICENSE.txt +1 -1
- data/README.md +1 -13
- data/lib/groupdate/enumerable.rb +2 -2
- data/lib/groupdate/magic.rb +4 -4
- data/lib/groupdate/version.rb +1 -1
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1ef9a0ee3177e94a0e797036221d6e33b124e41f7f867fe8b0904a24bd7cf741
|
4
|
+
data.tar.gz: 73ef98496e157ba77bc8afb226c625dc9f117347b676eb39d767f4d55023309a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b38cacba795f7f0e0430fa1c1935b5e2aa6556926b70533966e912f5a7110291bb2a5f6542c37c6fd7bb996cf973db5241eb7299a8c664e327026fb702cf191a
|
7
|
+
data.tar.gz: 393f55d1892c6b65cbe51608aaee4f7e1f2a06067637196a1d6ed82e69434ebb10169553308f21cb8738d06513e19eb505657ccea8d47544da85ca3c77eff02d
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
## 6.5.0 (2024-10-01)
|
2
|
+
|
3
|
+
- Added support for Active Record 8
|
4
|
+
- Dropped support for Ruby < 3.1 and Active Record < 7
|
5
|
+
|
1
6
|
## 6.4.0 (2023-09-13)
|
2
7
|
|
3
8
|
- Added support for Trilogy
|
@@ -173,7 +178,7 @@ Breaking changes
|
|
173
178
|
- Added `default_value` option
|
174
179
|
- Accept symbol for `format` option
|
175
180
|
- Raise `ArgumentError` if no field specified
|
176
|
-
- Added support for
|
181
|
+
- Added support for Active Record 5 beta
|
177
182
|
|
178
183
|
## 2.5.0 (2015-09-29)
|
179
184
|
|
@@ -187,18 +192,18 @@ Breaking changes
|
|
187
192
|
- Added `carry_forward` option
|
188
193
|
- Added `series: false` option for arrays and hashes
|
189
194
|
- Fixed issue w/ Brasilia Summer Time
|
190
|
-
- Fixed issues w/
|
195
|
+
- Fixed issues w/ Active Record 4.2
|
191
196
|
|
192
197
|
## 2.3.0 (2014-08-31)
|
193
198
|
|
194
|
-
- Raise error when ActiveRecord::Base.default_timezone is not `:utc`
|
199
|
+
- Raise error when `ActiveRecord::Base.default_timezone` is not `:utc`
|
195
200
|
- Added `day_of_month`
|
196
201
|
- Added `month_of_year`
|
197
202
|
- Do not quote column name
|
198
203
|
|
199
204
|
## 2.2.1 (2014-06-23)
|
200
205
|
|
201
|
-
- Fixed
|
206
|
+
- Fixed Active Record 3 associations
|
202
207
|
|
203
208
|
## 2.2.0 (2014-06-22)
|
204
209
|
|
data/LICENSE.txt
CHANGED
data/README.md
CHANGED
@@ -15,7 +15,7 @@ Supports PostgreSQL, MySQL, and Redshift, plus arrays and hashes (and limited su
|
|
15
15
|
|
16
16
|
:cupid: Goes hand in hand with [Chartkick](https://www.chartkick.com)
|
17
17
|
|
18
|
-
[![Build Status](https://github.com/ankane/groupdate/workflows/build/badge.svg
|
18
|
+
[![Build Status](https://github.com/ankane/groupdate/actions/workflows/build.yml/badge.svg)](https://github.com/ankane/groupdate/actions)
|
19
19
|
|
20
20
|
## Installation
|
21
21
|
|
@@ -280,18 +280,6 @@ If your application’s time zone is set to something other than `Etc/UTC` (the
|
|
280
280
|
Groupdate.time_zone = false
|
281
281
|
```
|
282
282
|
|
283
|
-
## Upgrading
|
284
|
-
|
285
|
-
### 6.0
|
286
|
-
|
287
|
-
Groupdate 6.0 protects against unsafe input by default. For non-attribute arguments, use:
|
288
|
-
|
289
|
-
```ruby
|
290
|
-
User.group_by_day(Arel.sql(known_safe_value)).count
|
291
|
-
```
|
292
|
-
|
293
|
-
Also, the `dates` option has been removed.
|
294
|
-
|
295
283
|
## History
|
296
284
|
|
297
285
|
View the [changelog](https://github.com/ankane/groupdate/blob/master/CHANGELOG.md)
|
data/lib/groupdate/enumerable.rb
CHANGED
@@ -5,7 +5,7 @@ module Enumerable
|
|
5
5
|
raise ArgumentError, "wrong number of arguments (given #{args.size}, expected 0)" if args.any?
|
6
6
|
Groupdate::Magic::Enumerable.group_by(self, period, options, &block)
|
7
7
|
elsif respond_to?(:scoping)
|
8
|
-
scoping {
|
8
|
+
scoping { klass.group_by_period(period, *args, **options, &block) }
|
9
9
|
else
|
10
10
|
raise ArgumentError, "no block given"
|
11
11
|
end
|
@@ -19,7 +19,7 @@ module Enumerable
|
|
19
19
|
Groupdate::Magic.validate_period(period, options.delete(:permit))
|
20
20
|
send("group_by_#{period}", **options, &block)
|
21
21
|
else
|
22
|
-
scoping {
|
22
|
+
scoping { klass.group_by_period(period, *args, **options, &block) }
|
23
23
|
end
|
24
24
|
end
|
25
25
|
end
|
data/lib/groupdate/magic.rb
CHANGED
@@ -180,10 +180,10 @@ module Groupdate
|
|
180
180
|
end
|
181
181
|
|
182
182
|
def time_zone_support?(relation)
|
183
|
-
if relation.connection.adapter_name
|
183
|
+
if relation.connection.adapter_name.match?(/mysql/i)
|
184
184
|
# need to call klass for Rails < 5.2
|
185
185
|
sql = relation.klass.send(:sanitize_sql_array, ["SELECT CONVERT_TZ(NOW(), '+00:00', ?)", time_zone.tzinfo.name])
|
186
|
-
!relation.connection.select_all(sql).first.values.first.nil?
|
186
|
+
!relation.connection.select_all(sql).to_a.first.values.first.nil?
|
187
187
|
else
|
188
188
|
true
|
189
189
|
end
|
@@ -238,7 +238,7 @@ module Groupdate
|
|
238
238
|
def validate_column(column)
|
239
239
|
unless column.is_a?(Symbol) || column.is_a?(Arel::Nodes::SqlLiteral)
|
240
240
|
column = column.to_s
|
241
|
-
unless /\A\w+(\.\w+)?\z/i.match(column)
|
241
|
+
unless /\A\w+(\.\w+)?\z/i.match?(column)
|
242
242
|
raise ActiveRecord::UnknownAttributeReference, "Query method called with non-attribute argument(s): #{column.inspect}. Use Arel.sql() for known-safe values."
|
243
243
|
end
|
244
244
|
end
|
@@ -257,7 +257,7 @@ module Groupdate
|
|
257
257
|
|
258
258
|
# allow any options to keep flexible for future
|
259
259
|
def self.process_result(relation, result, **options)
|
260
|
-
relation.groupdate_values.
|
260
|
+
relation.groupdate_values.reverse_each do |gv|
|
261
261
|
result = gv.perform(relation, result, default_value: options[:default_value])
|
262
262
|
end
|
263
263
|
result
|
data/lib/groupdate/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: groupdate
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 6.
|
4
|
+
version: 6.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Kane
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-10-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '7'
|
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'
|
27
27
|
description:
|
28
28
|
email: andrew@ankane.org
|
29
29
|
executables: []
|
@@ -58,14 +58,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
58
58
|
requirements:
|
59
59
|
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '3'
|
61
|
+
version: '3.1'
|
62
62
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
63
63
|
requirements:
|
64
64
|
- - ">="
|
65
65
|
- !ruby/object:Gem::Version
|
66
66
|
version: '0'
|
67
67
|
requirements: []
|
68
|
-
rubygems_version: 3.
|
68
|
+
rubygems_version: 3.5.16
|
69
69
|
signing_key:
|
70
70
|
specification_version: 4
|
71
71
|
summary: The simplest way to group temporal data
|