rollups 0.3.2 → 0.4.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: 0e5c6fead572e785077c4ab0afd4e627dd152580a5f7d06dfaec55cca368892f
4
- data.tar.gz: c48a223298b96a5404fda29192f6453e92f6f00fe10b53db5dfc633fe46696c8
3
+ metadata.gz: b9e1a4c50bc160496a4bcc8f4709615dc7f030aa8ac69a02c2ff9ca7221adf94
4
+ data.tar.gz: 271271318f3cc86e79b561fbc0e3ac32160a12cb0a72dfa47de71435a3114a3a
5
5
  SHA512:
6
- metadata.gz: d831822c3b6c4b70d119a2bcd704ae579d8f444cf7ffce388842aa5fc7841d0435669a203b9c54a55629088dfb553ead3288a6282d9f4ea5d5b9b9f737222086
7
- data.tar.gz: af477019c11b0a75548d4181e7cf693d75487565ab99dd4b469bc3d748902d0cb802f2f868509cc71eb914e37796a435b013bbcc42a82a3189f9be0779b43c19
6
+ metadata.gz: 277e0ee40c5f156904547fa3ad92a9faaadeda7c7291426d29b2eb69f5187f80c60a57d83f9a430461a954c02150e3a8f1012a6348dfa8a88d082c5d6c8ffc5a
7
+ data.tar.gz: 37b7ae3c133829ff04bbd06e04789ee94620b98ab3a1bc2c1f812da2cec44aeb2213631e8665c6d919735c8b856a5f548fc893e89874ec6da557e2710fac9f2a
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## 0.4.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
  ## 0.3.2 (2024-02-09)
2
7
 
3
8
  - Fixed incorrect rollups with `time_zone: false` when `Rollup.time_zone` has a negative UTC offset
data/LICENSE.txt CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2020-2023 Andrew Kane
3
+ Copyright (c) 2020-2024 Andrew Kane
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
data/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  Works great with [Ahoy](https://github.com/ankane/ahoy) and [Searchjoy](https://github.com/ankane/searchjoy)
6
6
 
7
- [![Build Status](https://github.com/ankane/rollup/workflows/build/badge.svg?branch=master)](https://github.com/ankane/rollup/actions)
7
+ [![Build Status](https://github.com/ankane/rollup/actions/workflows/build.yml/badge.svg)](https://github.com/ankane/rollup/actions)
8
8
 
9
9
  ## Installation
10
10
 
@@ -14,12 +14,6 @@ Add this line to your application’s Gemfile:
14
14
  gem "rollups"
15
15
  ```
16
16
 
17
- For Rails < 6, also add:
18
-
19
- ```ruby
20
- gem "activerecord-import"
21
- ```
22
-
23
17
  And run:
24
18
 
25
19
  ```sh
@@ -29,7 +29,7 @@ class Rollup
29
29
  def validate_column(column)
30
30
  unless column.is_a?(Symbol) || column.is_a?(Arel::Nodes::SqlLiteral)
31
31
  column = column.to_s
32
- unless /\A\w+(\.\w+)?\z/i.match(column)
32
+ unless /\A\w+(\.\w+)?\z/i.match?(column)
33
33
  raise ActiveRecord::UnknownAttributeReference, "Query method called with non-attribute argument(s): #{column.inspect}. Use Arel.sql() for known-safe values."
34
34
  end
35
35
  end
@@ -119,9 +119,9 @@ class Rollup
119
119
 
120
120
  # removing starting and ending quotes
121
121
  # for simplicity, they don't need to be the same
122
- value = value[1..-2] if value.match(/\A["'`].+["'`]\z/)
122
+ value = value[1..-2] if value.match?(/\A["'`].+["'`]\z/)
123
123
 
124
- unless value.match(/\A\w+\z/)
124
+ unless value.match?(/\A\w+\z/)
125
125
  raise "Cannot determine dimension name: #{group}. Use the dimension_names option"
126
126
  end
127
127
 
@@ -191,6 +191,12 @@ class Rollup
191
191
  conflict_target << :dimensions if Utils.dimensions_supported?
192
192
 
193
193
  options = Utils.mysql? ? {} : {unique_by: conflict_target}
194
+ if ActiveRecord::VERSION::MAJOR >= 8
195
+ utc = ActiveSupport::TimeZone["Etc/UTC"]
196
+ records.each do |v|
197
+ v[:time] = v[:time].in_time_zone(utc) if v[:time].is_a?(Date)
198
+ end
199
+ end
194
200
  Rollup.unscoped.upsert_all(records, **options)
195
201
  end
196
202
  end
@@ -1,5 +1,5 @@
1
1
  class Rollup
2
2
  # not used in gemspec to avoid superclass mismatch
3
3
  # be sure to update there as well
4
- VERSION = "0.3.2"
4
+ VERSION = "0.4.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rollups
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.4.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: 2024-02-10 00:00:00.000000000 Z
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: '6.1'
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: '6.1'
26
+ version: '7'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: groupdate
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -68,14 +68,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
68
68
  requirements:
69
69
  - - ">="
70
70
  - !ruby/object:Gem::Version
71
- version: '3'
71
+ version: '3.1'
72
72
  required_rubygems_version: !ruby/object:Gem::Requirement
73
73
  requirements:
74
74
  - - ">="
75
75
  - !ruby/object:Gem::Version
76
76
  version: '0'
77
77
  requirements: []
78
- rubygems_version: 3.5.3
78
+ rubygems_version: 3.5.16
79
79
  signing_key:
80
80
  specification_version: 4
81
81
  summary: Rollup time-series data in Rails