alarmable 1.6.1 → 2.1.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: be844d4a81b2b81bc4518e875010b0b47b1c335fa282eb876d12cba6bd75b47a
4
- data.tar.gz: d99c96a19350d820ecfd162675d4cd971265ce0b6cf367636814777e61a9a2fe
3
+ metadata.gz: d4c5fb3a2af50ea846e77391b001656aae22d3d42e03e4f69cacfd7b327e849d
4
+ data.tar.gz: a4c351bd05b94b86e67be9facf8b70459ff6515ef97b8c82548d78ae1b3e9438
5
5
  SHA512:
6
- metadata.gz: 45c0edf448213751ddd857158238a12f2a4471cc5cb7c59596657b470236bca4ee4254194921235cd46ffc848ad99bbd08ee89620aedbaa1a3d72e2a179c4bb4
7
- data.tar.gz: b10ef88bd4afcebe042fc4239de002493668bad5504b9ffb5aef4a4dba3ec3ac8424e8012fb8fa1e875f8594cbeee0204e5f7a3ad375f410bc30379304f90670
6
+ metadata.gz: 48c45a04e459087749066905301acb1b915bf54e0c44d9c4dc6e0625f3392f7cfb35a8659f62ea66d2b30cced45950396a61c51183320e6669e77b7c895b84b5
7
+ data.tar.gz: 33971096ba1d0a6df18fb82882e5b0c9cde69fd13fc96c34168795f1053c71fdc6b47508b9ab1814b27b4ab907fa1b6330ccf286a0af90b45c002536460ff2dd
@@ -16,16 +16,16 @@ jobs:
16
16
  docs:
17
17
  name: Release the gem
18
18
  runs-on: ubuntu-22.04
19
- timeout-minutes: 5
19
+ timeout-minutes: 10
20
20
  steps:
21
21
  - uses: actions/checkout@v4
22
22
 
23
- - name: Install Ruby 2.7
23
+ - name: Install Ruby 3.2
24
24
  uses: ruby/setup-ruby@v1
25
25
  with:
26
- ruby-version: 2.7
26
+ ruby-version: 3.2
27
27
  bundler-cache: true
28
- rubygems: '3.4.22'
28
+ rubygems: '3.6.9'
29
29
 
30
30
  - name: Prepare the virtual environment
31
31
  uses: hausgold/actions/ci@master
@@ -18,8 +18,8 @@ jobs:
18
18
  strategy:
19
19
  fail-fast: false
20
20
  matrix:
21
- ruby: ['2.7', '3.0', '3.1', '3.2', '3.3', '3.4']
22
- rails: ['6.1', '7.1']
21
+ ruby: ['3.2', '3.3', '3.4']
22
+ rails: ['7.1', '7.2', '8.0', '8.1']
23
23
  env:
24
24
  BUNDLE_GEMFILE: 'gemfiles/rails_${{ matrix.rails }}.gemfile'
25
25
  steps:
@@ -30,7 +30,7 @@ jobs:
30
30
  with:
31
31
  ruby-version: ${{ matrix.ruby }}
32
32
  bundler-cache: true
33
- rubygems: '3.4.22'
33
+ rubygems: '3.6.9'
34
34
 
35
35
  - name: Prepare the virtual environment
36
36
  uses: hausgold/actions/ci@master
data/.rubocop.yml CHANGED
@@ -12,8 +12,8 @@ AllCops:
12
12
  NewCops: enable
13
13
  SuggestExtensions: false
14
14
  DisplayCopNames: true
15
- TargetRubyVersion: 2.7
16
- TargetRailsVersion: 6.1
15
+ TargetRubyVersion: 3.2
16
+ TargetRailsVersion: 7.1
17
17
  Exclude:
18
18
  - bin/**/*
19
19
  - vendor/**/*
data/Appraisals CHANGED
@@ -1,13 +1,25 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- appraise 'rails-6.1' do
4
- gem 'activejob', '~> 6.1.0'
5
- gem 'activerecord', '~> 6.1.0'
6
- gem 'activesupport', '~> 6.1.0'
7
- end
8
-
9
3
  appraise 'rails-7.1' do
10
4
  gem 'activejob', '~> 7.1.0'
11
5
  gem 'activerecord', '~> 7.1.0'
12
6
  gem 'activesupport', '~> 7.1.0'
13
7
  end
8
+
9
+ appraise 'rails-7.2' do
10
+ gem 'activejob', '~> 7.2.0'
11
+ gem 'activerecord', '~> 7.2.0'
12
+ gem 'activesupport', '~> 7.2.0'
13
+ end
14
+
15
+ appraise 'rails-8.0' do
16
+ gem 'activejob', '~> 8.0.0'
17
+ gem 'activerecord', '~> 8.0.0'
18
+ gem 'activesupport', '~> 8.0.0'
19
+ end
20
+
21
+ appraise 'rails-8.1' do
22
+ gem 'activejob', '~> 8.1.0'
23
+ gem 'activerecord', '~> 8.1.0'
24
+ gem 'activesupport', '~> 8.1.0'
25
+ end
data/CHANGELOG.md CHANGED
@@ -2,6 +2,18 @@
2
2
 
3
3
  * TODO: Replace this bullet point with an actual description of a change.
4
4
 
5
+ ### 2.1.0 (24 October 2025)
6
+
7
+ * Upgraded PostgreSQL to 17.6. ([#23](https://github.com/hausgold/alarmable/pull/23))
8
+ * Dropped Reek. ([#24](https://github.com/hausgold/alarmable/pull/24))
9
+ * Added support for Rails 8.1 ([#25](https://github.com/hausgold/alarmable/pull/25))
10
+
11
+ ### 2.0.0 (28 June 2025)
12
+
13
+ * Upgraded PostgreSQL to 17.5. ([#20](https://github.com/hausgold/alarmable/pull/20))
14
+ * Corrected some RuboCop glitches ([#21](https://github.com/hausgold/alarmable/pull/21))
15
+ * Drop Ruby 2 and end of life Rails (<7.1) ([#22](https://github.com/hausgold/alarmable/pull/22))
16
+
5
17
  ### 1.6.1 (21 May 2025)
6
18
 
7
19
  * Corrected some RuboCop glitches ([#17](https://github.com/hausgold/alarmable/pull/17))
data/Dockerfile CHANGED
@@ -1,4 +1,4 @@
1
- FROM hausgold/ruby:2.7
1
+ FROM hausgold/ruby:3.2
2
2
  LABEL org.opencontainers.image.authors="containers@hausgold.de"
3
3
 
4
4
  # Update system gem
@@ -11,7 +11,7 @@ RUN apt-get update -yqqq && \
11
11
  ca-certificates \
12
12
  bash-completion inotify-tools && \
13
13
  echo 'en_US.UTF-8 UTF-8' >> /etc/locale.gen && /usr/sbin/locale-gen && \
14
- gem install bundler -v '~> 2.4.22' --no-document --no-prerelease
14
+ gem install bundler -v '~> 2.6.9' --no-document --no-prerelease
15
15
 
16
16
  # Add new web user
17
17
  RUN mkdir /app && \
data/Gemfile CHANGED
@@ -9,11 +9,11 @@ gemspec
9
9
 
10
10
  # Development dependencies
11
11
  gem 'appraisal', '~> 2.4'
12
- gem 'bundler', '~> 2.3'
13
- gem 'countless', '~> 1.1'
12
+ gem 'bundler', '~> 2.6'
13
+ gem 'countless', '~> 2.0'
14
14
  gem 'guard-rspec', '~> 4.7'
15
15
  gem 'pg', '~> 1.4'
16
- gem 'railties', '>= 6.1'
16
+ gem 'railties', '>= 7.1'
17
17
  gem 'rake', '~> 13.0'
18
18
  gem 'rspec', '~> 3.12'
19
19
  gem 'rubocop'
data/Makefile CHANGED
@@ -120,7 +120,7 @@ test-style: \
120
120
  test-style-ruby:
121
121
  # Run the static code analyzer (rubocop)
122
122
  @$(call run-shell,$(BUNDLE) exec $(RUBOCOP) -a \
123
- || ($(TEST) $$($(RUBY_VERSION)) != '2.7' && true))
123
+ || ($(TEST) $$($(RUBY_VERSION)) != '3.2' && true))
124
124
 
125
125
  clean:
126
126
  # Clean the dependencies
data/alarmable.gemspec CHANGED
@@ -34,15 +34,15 @@ Gem::Specification.new do |spec|
34
34
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
35
35
  spec.require_paths = ['lib']
36
36
 
37
- spec.required_ruby_version = '>= 2.7'
37
+ spec.required_ruby_version = '>= 3.2'
38
38
 
39
- spec.add_dependency 'activejob', '>= 6.1'
39
+ spec.add_dependency 'activejob', '>= 7.1'
40
40
  spec.add_dependency 'activejob-cancel', '~> 0.3'
41
- spec.add_dependency 'activerecord', '>= 6.1'
42
- spec.add_dependency 'activesupport', '>= 6.1'
43
- spec.add_dependency 'base64', '~> 0.2.0'
41
+ spec.add_dependency 'activerecord', '>= 7.1'
42
+ spec.add_dependency 'activesupport', '>= 7.1'
43
+ spec.add_dependency 'base64', '>= 0.3'
44
44
  spec.add_dependency 'bigdecimal', '~> 3.1'
45
45
  spec.add_dependency 'hashdiff', '~> 1.0'
46
- spec.add_dependency 'mutex_m', '~> 0.3.0'
46
+ spec.add_dependency 'mutex_m', '>= 0.3'
47
47
  spec.add_dependency 'zeitwerk', '~> 2.6'
48
48
  end
data/docker-compose.yml CHANGED
@@ -1,7 +1,6 @@
1
- version: "3"
2
1
  services:
3
2
  db:
4
- image: hausgold/postgres:17.4
3
+ image: hausgold/postgres:17.6
5
4
  network_mode: bridge
6
5
  ports: ["5432"]
7
6
  volumes:
@@ -3,11 +3,11 @@
3
3
  source "https://rubygems.org"
4
4
 
5
5
  gem "appraisal", "~> 2.4"
6
- gem "bundler", "~> 2.3"
7
- gem "countless", "~> 1.1"
6
+ gem "bundler", "~> 2.6"
7
+ gem "countless", "~> 2.0"
8
8
  gem "guard-rspec", "~> 4.7"
9
9
  gem "pg", "~> 1.4"
10
- gem "railties", ">= 6.1"
10
+ gem "railties", ">= 7.1"
11
11
  gem "rake", "~> 13.0"
12
12
  gem "rspec", "~> 3.12"
13
13
  gem "rubocop"
@@ -0,0 +1,23 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "appraisal", "~> 2.4"
6
+ gem "bundler", "~> 2.6"
7
+ gem "countless", "~> 2.0"
8
+ gem "guard-rspec", "~> 4.7"
9
+ gem "pg", "~> 1.4"
10
+ gem "railties", ">= 7.1"
11
+ gem "rake", "~> 13.0"
12
+ gem "rspec", "~> 3.12"
13
+ gem "rubocop"
14
+ gem "rubocop-rails"
15
+ gem "rubocop-rspec"
16
+ gem "simplecov", ">= 0.22"
17
+ gem "yard", ">= 0.9.28"
18
+ gem "yard-activesupport-concern", ">= 0.0.1"
19
+ gem "activejob", "~> 7.2.0"
20
+ gem "activerecord", "~> 7.2.0"
21
+ gem "activesupport", "~> 7.2.0"
22
+
23
+ gemspec path: "../"
@@ -0,0 +1,23 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "appraisal", "~> 2.4"
6
+ gem "bundler", "~> 2.6"
7
+ gem "countless", "~> 2.0"
8
+ gem "guard-rspec", "~> 4.7"
9
+ gem "pg", "~> 1.4"
10
+ gem "railties", ">= 7.1"
11
+ gem "rake", "~> 13.0"
12
+ gem "rspec", "~> 3.12"
13
+ gem "rubocop"
14
+ gem "rubocop-rails"
15
+ gem "rubocop-rspec"
16
+ gem "simplecov", ">= 0.22"
17
+ gem "yard", ">= 0.9.28"
18
+ gem "yard-activesupport-concern", ">= 0.0.1"
19
+ gem "activejob", "~> 8.0.0"
20
+ gem "activerecord", "~> 8.0.0"
21
+ gem "activesupport", "~> 8.0.0"
22
+
23
+ gemspec path: "../"
@@ -0,0 +1,23 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "appraisal", "~> 2.4"
6
+ gem "bundler", "~> 2.6"
7
+ gem "countless", "~> 2.0"
8
+ gem "guard-rspec", "~> 4.7"
9
+ gem "pg", "~> 1.4"
10
+ gem "railties", ">= 7.1"
11
+ gem "rake", "~> 13.0"
12
+ gem "rspec", "~> 3.12"
13
+ gem "rubocop"
14
+ gem "rubocop-rails"
15
+ gem "rubocop-rspec"
16
+ gem "simplecov", ">= 0.22"
17
+ gem "yard", ">= 0.9.28"
18
+ gem "yard-activesupport-concern", ">= 0.0.1"
19
+ gem "activejob", "~> 8.1.0"
20
+ gem "activerecord", "~> 8.1.0"
21
+ gem "activesupport", "~> 8.1.0"
22
+
23
+ gemspec path: "../"
@@ -3,7 +3,7 @@
3
3
  # The gem version details.
4
4
  module Alarmable
5
5
  # The version of the +alarmable+ gem
6
- VERSION = '1.6.1'
6
+ VERSION = '2.1.0'
7
7
 
8
8
  class << self
9
9
  # Returns the version of gem as a string.
data/lib/alarmable.rb CHANGED
@@ -66,8 +66,6 @@ module Alarmable
66
66
 
67
67
  class_methods do
68
68
  # Getter/Setter
69
- #
70
- # :reek:Attribute because thats what this thing is about
71
69
  attr_accessor :alarm_job, :alarm_base_date_property
72
70
  end
73
71
 
@@ -107,7 +105,6 @@ module Alarmable
107
105
  # setting.
108
106
  #
109
107
  # rubocop:disable Style/GuardClause -- because its fine like this
110
- # :reek:NilCheck because we validate concern usage
111
108
  def validate_alarm_settings
112
109
  raise 'Alarmable +alarm_job+ is not configured' if alarm_job.nil?
113
110
  unless alarm_job.is_a? Class
@@ -131,8 +128,6 @@ module Alarmable
131
128
  # @param channel [String] The alarm channel
132
129
  # @param before_minutes [Integer] The minutes before the alarm starts
133
130
  # @return [String] The unique alarm id
134
- #
135
- # :reek:UtilityFunction because its a utility, for sure
136
131
  def alarm_id(channel, before_minutes)
137
132
  (Digest::MD5.new << "#{channel}#{before_minutes}").to_s
138
133
  end
@@ -148,9 +143,6 @@ module Alarmable
148
143
  # Example: { "alarm id": "job id" }
149
144
  #
150
145
  # rubocop:disable Metrics/AbcSize -- because its already broken down
151
- # :reek:TooManyStatements because see above
152
- # :reek:NilCheck because we dont want to cancel 'nil' job id
153
- # :reek:DuplicateMethodCall because hash access is fast
154
146
  def reschedule_alarm_job(alarm)
155
147
  # Symbolize the hash keys (just to be sure).
156
148
  alarm = alarm.symbolize_keys
@@ -181,8 +173,6 @@ module Alarmable
181
173
 
182
174
  # Initiate a reschedule for each alarm in the alarm settings and
183
175
  # cancel all left-overs.
184
- #
185
- # :reek:TooManyStatements because its already broken down
186
176
  def reschedule_alarm_jobs
187
177
  # Perform the reschedule of all the current alarms.
188
178
  new_alarm_jobs = alarms.each_with_object({}) do |alarm, memo|
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: alarmable
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.1
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hermann Mayer
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2025-05-21 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: activejob
@@ -16,14 +15,14 @@ dependencies:
16
15
  requirements:
17
16
  - - ">="
18
17
  - !ruby/object:Gem::Version
19
- version: '6.1'
18
+ version: '7.1'
20
19
  type: :runtime
21
20
  prerelease: false
22
21
  version_requirements: !ruby/object:Gem::Requirement
23
22
  requirements:
24
23
  - - ">="
25
24
  - !ruby/object:Gem::Version
26
- version: '6.1'
25
+ version: '7.1'
27
26
  - !ruby/object:Gem::Dependency
28
27
  name: activejob-cancel
29
28
  requirement: !ruby/object:Gem::Requirement
@@ -44,42 +43,42 @@ dependencies:
44
43
  requirements:
45
44
  - - ">="
46
45
  - !ruby/object:Gem::Version
47
- version: '6.1'
46
+ version: '7.1'
48
47
  type: :runtime
49
48
  prerelease: false
50
49
  version_requirements: !ruby/object:Gem::Requirement
51
50
  requirements:
52
51
  - - ">="
53
52
  - !ruby/object:Gem::Version
54
- version: '6.1'
53
+ version: '7.1'
55
54
  - !ruby/object:Gem::Dependency
56
55
  name: activesupport
57
56
  requirement: !ruby/object:Gem::Requirement
58
57
  requirements:
59
58
  - - ">="
60
59
  - !ruby/object:Gem::Version
61
- version: '6.1'
60
+ version: '7.1'
62
61
  type: :runtime
63
62
  prerelease: false
64
63
  version_requirements: !ruby/object:Gem::Requirement
65
64
  requirements:
66
65
  - - ">="
67
66
  - !ruby/object:Gem::Version
68
- version: '6.1'
67
+ version: '7.1'
69
68
  - !ruby/object:Gem::Dependency
70
69
  name: base64
71
70
  requirement: !ruby/object:Gem::Requirement
72
71
  requirements:
73
- - - "~>"
72
+ - - ">="
74
73
  - !ruby/object:Gem::Version
75
- version: 0.2.0
74
+ version: '0.3'
76
75
  type: :runtime
77
76
  prerelease: false
78
77
  version_requirements: !ruby/object:Gem::Requirement
79
78
  requirements:
80
- - - "~>"
79
+ - - ">="
81
80
  - !ruby/object:Gem::Version
82
- version: 0.2.0
81
+ version: '0.3'
83
82
  - !ruby/object:Gem::Dependency
84
83
  name: bigdecimal
85
84
  requirement: !ruby/object:Gem::Requirement
@@ -112,16 +111,16 @@ dependencies:
112
111
  name: mutex_m
113
112
  requirement: !ruby/object:Gem::Requirement
114
113
  requirements:
115
- - - "~>"
114
+ - - ">="
116
115
  - !ruby/object:Gem::Version
117
- version: 0.3.0
116
+ version: '0.3'
118
117
  type: :runtime
119
118
  prerelease: false
120
119
  version_requirements: !ruby/object:Gem::Requirement
121
120
  requirements:
122
- - - "~>"
121
+ - - ">="
123
122
  - !ruby/object:Gem::Version
124
- version: 0.3.0
123
+ version: '0.3'
125
124
  - !ruby/object:Gem::Dependency
126
125
  name: zeitwerk
127
126
  requirement: !ruby/object:Gem::Requirement
@@ -173,9 +172,11 @@ files:
173
172
  - docker-compose.yml
174
173
  - gemfiles/rails_6.1.gemfile
175
174
  - gemfiles/rails_7.1.gemfile
175
+ - gemfiles/rails_7.2.gemfile
176
+ - gemfiles/rails_8.0.gemfile
177
+ - gemfiles/rails_8.1.gemfile
176
178
  - lib/alarmable.rb
177
179
  - lib/alarmable/version.rb
178
- homepage:
179
180
  licenses:
180
181
  - MIT
181
182
  metadata:
@@ -184,7 +185,6 @@ metadata:
184
185
  changelog_uri: https://github.com/hausgold/alarmable/blob/master/CHANGELOG.md
185
186
  bug_tracker_uri: https://github.com/hausgold/alarmable/issues
186
187
  documentation_uri: https://www.rubydoc.info/gems/alarmable
187
- post_install_message:
188
188
  rdoc_options: []
189
189
  require_paths:
190
190
  - lib
@@ -192,15 +192,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
192
192
  requirements:
193
193
  - - ">="
194
194
  - !ruby/object:Gem::Version
195
- version: '2.7'
195
+ version: '3.2'
196
196
  required_rubygems_version: !ruby/object:Gem::Requirement
197
197
  requirements:
198
198
  - - ">="
199
199
  - !ruby/object:Gem::Version
200
200
  version: '0'
201
201
  requirements: []
202
- rubygems_version: 3.4.22
203
- signing_key:
202
+ rubygems_version: 3.6.9
204
203
  specification_version: 4
205
204
  summary: A reusable alarm extension to Active Record models
206
205
  test_files: []