alarmable 0.1.2 → 1.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 +4 -4
- data/.github/workflows/documentation.yml +3 -2
- data/.github/workflows/release.yml +47 -0
- data/.github/workflows/test.yml +6 -5
- data/.rspec +2 -1
- data/.rubocop.yml +19 -2
- data/.simplecov +12 -0
- data/Appraisals +3 -21
- data/CHANGELOG.md +16 -0
- data/CODE_OF_CONDUCT.md +1 -1
- data/Dockerfile +28 -0
- data/Envfile +3 -0
- data/Guardfile +44 -0
- data/LICENSE +6 -6
- data/Makefile +40 -6
- data/README.md +19 -5
- data/Rakefile +8 -61
- data/alarmable.gemspec +43 -30
- data/config/docker/.bash_profile +3 -0
- data/config/docker/.bashrc +48 -0
- data/config/docker/.inputrc +17 -0
- data/docker-compose.yml +3 -2
- data/gemfiles/rails_5.2.gemfile +3 -3
- data/lib/alarmable/concern.rb +2 -2
- data/lib/alarmable/version.rb +19 -1
- metadata +100 -79
- data/gemfiles/rails_4.gemfile +0 -9
- data/gemfiles/rails_5.0.gemfile +0 -9
- data/gemfiles/rails_5.1.gemfile +0 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a92750970481aece8a70aa0d7aed9ffb2f14745d524b330559629563739401ef
|
4
|
+
data.tar.gz: 6bf3588f912875f7ce1708d3d0ade33c9364e0e65292c60140880482e9b3ba64
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1fdb5e174b57b08d20ad0ed51a89d1f269dd400843186b0f6a8c3acffeeb5deaa683c41cce0cc6ab61048cd3a6cc5171190bcbcb38b2b06571230afecec35914
|
7
|
+
data.tar.gz: 2481ff443192e908b1e4dbd54b1866bcf83366526fab873ccf42a7d0e67795c8b2fc47bd3cc01dc760c565c219a20fe79b5fcc338eb4ae740a8d863e44f57e77
|
@@ -9,16 +9,17 @@ concurrency:
|
|
9
9
|
jobs:
|
10
10
|
docs:
|
11
11
|
name: Build gem documentation
|
12
|
-
runs-on: ubuntu-
|
12
|
+
runs-on: ubuntu-22.04
|
13
13
|
timeout-minutes: 5
|
14
14
|
steps:
|
15
|
-
- uses: actions/checkout@
|
15
|
+
- uses: actions/checkout@v3
|
16
16
|
|
17
17
|
- name: Install the correct Ruby version
|
18
18
|
uses: ruby/setup-ruby@v1
|
19
19
|
with:
|
20
20
|
ruby-version: 2.5
|
21
21
|
bundler-cache: true
|
22
|
+
rubygems: '3.3.26'
|
22
23
|
|
23
24
|
- name: Prepare the virtual environment
|
24
25
|
uses: hausgold/actions/ci@master
|
@@ -0,0 +1,47 @@
|
|
1
|
+
name: Release
|
2
|
+
run-name: Release ${{ github.event.inputs.VERSION }}
|
3
|
+
|
4
|
+
on:
|
5
|
+
workflow_dispatch:
|
6
|
+
inputs:
|
7
|
+
VERSION:
|
8
|
+
description: The new version to release. (eg. `1.0.0`) Check the
|
9
|
+
changelog for the latest version.
|
10
|
+
|
11
|
+
concurrency:
|
12
|
+
group: '${{ github.event.inputs.VERSION }}'
|
13
|
+
cancel-in-progress: true
|
14
|
+
|
15
|
+
jobs:
|
16
|
+
docs:
|
17
|
+
name: Release the gem
|
18
|
+
runs-on: ubuntu-22.04
|
19
|
+
timeout-minutes: 5
|
20
|
+
steps:
|
21
|
+
- uses: actions/checkout@v3
|
22
|
+
|
23
|
+
- name: Install Ruby 2.5
|
24
|
+
uses: ruby/setup-ruby@v1
|
25
|
+
with:
|
26
|
+
ruby-version: 2.5
|
27
|
+
bundler-cache: true
|
28
|
+
rubygems: '3.3.26'
|
29
|
+
|
30
|
+
- name: Prepare the virtual environment
|
31
|
+
uses: hausgold/actions/ci@master
|
32
|
+
with:
|
33
|
+
clone_token: '${{ secrets.CLONE_TOKEN }}'
|
34
|
+
settings: '${{ github.repository }}'
|
35
|
+
target: ci/gem-test
|
36
|
+
|
37
|
+
- name: Switch to SSH remotes for the Git repository
|
38
|
+
run: git-ssh-remotes
|
39
|
+
|
40
|
+
- name: Enforce version '${{ github.event.inputs.VERSION }}'
|
41
|
+
run: set-gem-version '${{ github.event.inputs.VERSION }}'
|
42
|
+
|
43
|
+
- name: Prepare the Git release commit
|
44
|
+
run: git-release-commit '${{ github.event.inputs.VERSION }}'
|
45
|
+
|
46
|
+
- name: Push the release Git commit/tag and package to the registry
|
47
|
+
run: make release
|
data/.github/workflows/test.yml
CHANGED
@@ -13,23 +13,24 @@ concurrency:
|
|
13
13
|
jobs:
|
14
14
|
test:
|
15
15
|
name: 'Test the gem (Ruby ${{ matrix.ruby }}, Rails ${{ matrix.rails }})'
|
16
|
-
runs-on: ubuntu-
|
16
|
+
runs-on: ubuntu-22.04
|
17
17
|
timeout-minutes: 5
|
18
18
|
strategy:
|
19
19
|
fail-fast: false
|
20
20
|
matrix:
|
21
|
-
ruby: [2.
|
22
|
-
rails: [
|
21
|
+
ruby: ['2.5', '2.7']
|
22
|
+
rails: ['5.2']
|
23
23
|
env:
|
24
24
|
BUNDLE_GEMFILE: 'gemfiles/rails_${{ matrix.rails }}.gemfile'
|
25
25
|
steps:
|
26
|
-
- uses: actions/checkout@
|
26
|
+
- uses: actions/checkout@v3
|
27
27
|
|
28
28
|
- name: Install the correct Ruby version
|
29
29
|
uses: ruby/setup-ruby@v1
|
30
30
|
with:
|
31
31
|
ruby-version: ${{ matrix.ruby }}
|
32
32
|
bundler-cache: true
|
33
|
+
rubygems: '3.3.26'
|
33
34
|
|
34
35
|
- name: Prepare the virtual environment
|
35
36
|
uses: hausgold/actions/ci@master
|
@@ -55,7 +56,7 @@ jobs:
|
|
55
56
|
|
56
57
|
trigger-docs:
|
57
58
|
name: Trigger the documentation upload
|
58
|
-
runs-on: ubuntu-
|
59
|
+
runs-on: ubuntu-22.04
|
59
60
|
timeout-minutes: 2
|
60
61
|
needs: test
|
61
62
|
if: github.ref == 'refs/heads/master'
|
data/.rspec
CHANGED
data/.rubocop.yml
CHANGED
@@ -1,14 +1,19 @@
|
|
1
|
-
require:
|
1
|
+
require:
|
2
|
+
- rubocop-rspec
|
3
|
+
- rubocop-rails
|
2
4
|
|
3
5
|
Rails:
|
4
6
|
Enabled: true
|
5
7
|
|
6
|
-
Documentation:
|
8
|
+
Style/Documentation:
|
7
9
|
Enabled: true
|
8
10
|
|
9
11
|
AllCops:
|
12
|
+
NewCops: enable
|
13
|
+
SuggestExtensions: false
|
10
14
|
DisplayCopNames: true
|
11
15
|
TargetRubyVersion: 2.5
|
16
|
+
TargetRailsVersion: 5.2
|
12
17
|
Exclude:
|
13
18
|
- bin/**/*
|
14
19
|
- vendor/**/*
|
@@ -23,6 +28,10 @@ Metrics/BlockLength:
|
|
23
28
|
- '**/*.rake'
|
24
29
|
- doc/**/*.rb
|
25
30
|
|
31
|
+
# MFA is not yet enabled for our gems yet.
|
32
|
+
Gemspec/RequireMFA:
|
33
|
+
Enabled: false
|
34
|
+
|
26
35
|
# Document all the things.
|
27
36
|
Style/DocumentationMethod:
|
28
37
|
Enabled: true
|
@@ -39,6 +48,10 @@ Lint/AmbiguousBlockAssociation:
|
|
39
48
|
RSpec/MessageSpies:
|
40
49
|
EnforcedStyle: receive
|
41
50
|
|
51
|
+
# We stay with the original Ruby Style Guide recommendation.
|
52
|
+
Layout/LineLength:
|
53
|
+
Max: 80
|
54
|
+
|
42
55
|
# Because nesting makes sense here to group the feature tests
|
43
56
|
# more effective. This increases maintainability.
|
44
57
|
RSpec/NestedGroups:
|
@@ -64,3 +77,7 @@ Rails/ApplicationJob:
|
|
64
77
|
# so when first evaluated it won't change.
|
65
78
|
RSpec/ExpectChange:
|
66
79
|
Enabled: false
|
80
|
+
|
81
|
+
# We highly depend on memoized helpers across the specs.
|
82
|
+
RSpec/MultipleMemoizedHelpers:
|
83
|
+
Enabled: false
|
data/.simplecov
CHANGED
@@ -1,3 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'simplecov-html'
|
4
|
+
require 'simplecov_json_formatter'
|
5
|
+
|
6
|
+
SimpleCov.formatters = SimpleCov::Formatter::MultiFormatter.new(
|
7
|
+
[
|
8
|
+
SimpleCov::Formatter::HTMLFormatter,
|
9
|
+
SimpleCov::Formatter::JSONFormatter
|
10
|
+
]
|
11
|
+
)
|
12
|
+
|
1
13
|
SimpleCov.start 'test_frameworks' do
|
2
14
|
add_filter '/vendor/bundle/'
|
3
15
|
end
|
data/Appraisals
CHANGED
@@ -1,25 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
appraise 'rails-4' do
|
4
|
-
gem 'activejob', '4.2.10'
|
5
|
-
gem 'activerecord', '4.2.10'
|
6
|
-
gem 'activesupport', '4.2.10'
|
7
|
-
end
|
8
|
-
|
9
|
-
appraise 'rails-5.0' do
|
10
|
-
gem 'activejob', '5.0.6'
|
11
|
-
gem 'activerecord', '5.0.6'
|
12
|
-
gem 'activesupport', '5.0.6'
|
13
|
-
end
|
14
|
-
|
15
|
-
appraise 'rails-5.1' do
|
16
|
-
gem 'activejob', '5.1.4'
|
17
|
-
gem 'activerecord', '5.1.4'
|
18
|
-
gem 'activesupport', '5.1.4'
|
19
|
-
end
|
20
|
-
|
21
3
|
appraise 'rails-5.2' do
|
22
|
-
gem 'activejob', '5.2.0'
|
23
|
-
gem 'activerecord', '5.2.0'
|
24
|
-
gem 'activesupport', '5.2.0'
|
4
|
+
gem 'activejob', '~> 5.2.0'
|
5
|
+
gem 'activerecord', '~> 5.2.0'
|
6
|
+
gem 'activesupport', '~> 5.2.0'
|
25
7
|
end
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,19 @@
|
|
1
|
+
### next
|
2
|
+
|
3
|
+
* TODO: Replace this bullet point with an actual description of a change.
|
4
|
+
|
5
|
+
### 1.1.0
|
6
|
+
|
7
|
+
* Added support for Gem release automation
|
8
|
+
|
9
|
+
### 1.0.0
|
10
|
+
|
11
|
+
* Bundler >= 2.3 is from now on required as minimal version (#4)
|
12
|
+
* Dropped support for Ruby < 2.5 (#4)
|
13
|
+
* Dropped support for Rails < 5.2 (#4)
|
14
|
+
* Updated all development/runtime gems to their latest
|
15
|
+
Ruby 2.5 compatible version (#4)
|
16
|
+
|
1
17
|
### 0.1.2
|
2
18
|
|
3
19
|
* Migrated to Github Actions
|
data/CODE_OF_CONDUCT.md
CHANGED
@@ -55,7 +55,7 @@ further defined and clarified by project maintainers.
|
|
55
55
|
## Enforcement
|
56
56
|
|
57
57
|
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
58
|
-
reported by contacting the project team at
|
58
|
+
reported by contacting the project team at development@hausgold.de. All
|
59
59
|
complaints will be reviewed and investigated and will result in a response that
|
60
60
|
is deemed necessary and appropriate to the circumstances. The project team is
|
61
61
|
obligated to maintain confidentiality with regard to the reporter of an incident.
|
data/Dockerfile
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
FROM hausgold/ruby:2.5
|
2
|
+
MAINTAINER Hermann Mayer <hermann.mayer@hausgold.de>
|
3
|
+
|
4
|
+
# Update system gem
|
5
|
+
RUN gem update --system '3.3.26'
|
6
|
+
|
7
|
+
# Install system packages and the latest bundler
|
8
|
+
RUN apt-get update -yqqq && \
|
9
|
+
apt-get install -y \
|
10
|
+
build-essential locales sudo vim \
|
11
|
+
ca-certificates \
|
12
|
+
bash-completion inotify-tools && \
|
13
|
+
echo 'en_US.UTF-8 UTF-8' >> /etc/locale.gen && /usr/sbin/locale-gen && \
|
14
|
+
gem install bundler -v '~> 2.3.0' --no-document --no-prerelease
|
15
|
+
|
16
|
+
# Add new web user
|
17
|
+
RUN mkdir /app && \
|
18
|
+
adduser web --home /home/web --shell /bin/bash \
|
19
|
+
--disabled-password --gecos ""
|
20
|
+
COPY config/docker/* /home/web/
|
21
|
+
RUN chown web:web -R /app /home/web /usr/local/bundle && \
|
22
|
+
mkdir -p /home/web/.ssh
|
23
|
+
|
24
|
+
# Set the root password and grant root access to web
|
25
|
+
RUN echo 'root:root' | chpasswd
|
26
|
+
RUN echo 'web ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers
|
27
|
+
|
28
|
+
WORKDIR /app
|
data/Envfile
ADDED
data/Guardfile
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# A sample Guardfile
|
4
|
+
# More info at https://github.com/guard/guard#readme
|
5
|
+
|
6
|
+
## Uncomment and set this to only include directories you want to watch
|
7
|
+
(directories %w[lib spec]).select do |d|
|
8
|
+
if Dir.exist?(d)
|
9
|
+
d
|
10
|
+
else
|
11
|
+
UI.warning("Directory #{d} does not exist")
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
## Note: if you are using the `directories` clause above and you are not
|
16
|
+
## watching the project directory ('.'), then you will want to move
|
17
|
+
## the Guardfile to a watched dir and symlink it back, e.g.
|
18
|
+
#
|
19
|
+
# $ mkdir config
|
20
|
+
# $ mv Guardfile config/
|
21
|
+
# $ ln -s config/Guardfile .
|
22
|
+
#
|
23
|
+
# and, you'll have to watch "config/Guardfile" instead of "Guardfile"
|
24
|
+
|
25
|
+
# NOTE: The cmd option is now required due to the increasing number of ways
|
26
|
+
# rspec may be run, below are examples of the most common uses.
|
27
|
+
# * bundler: 'bundle exec rspec'
|
28
|
+
# * bundler binstubs: 'bin/rspec'
|
29
|
+
# * spring: 'bin/rspec' (This will use spring if running and you have
|
30
|
+
# installed the spring binstubs per the docs)
|
31
|
+
# * zeus: 'zeus rspec' (requires the server to be started separately)
|
32
|
+
# * 'just' rspec: 'rspec'
|
33
|
+
|
34
|
+
guard :rspec, cmd: 'bundle exec rspec' do
|
35
|
+
watch('spec/spec_helper.rb') { 'spec' }
|
36
|
+
watch(%r{^lib/alarmable.rb}) { 'spec' }
|
37
|
+
watch(%r{^spec/.+_spec\.rb$})
|
38
|
+
watch(%r{^lib/alarmable/([^\\]+)\.rb$}) do |m|
|
39
|
+
"spec/#{m[1]}_spec.rb"
|
40
|
+
end
|
41
|
+
watch(%r{^lib/alarmable/([^\\]+)/(.*)\.rb$}) do |m|
|
42
|
+
"spec/#{m[1]}/#{m[2]}_spec.rb"
|
43
|
+
end
|
44
|
+
end
|
data/LICENSE
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
|
1
|
+
MIT License
|
2
2
|
|
3
|
-
Copyright (c)
|
3
|
+
Copyright (c) 2023 HAUSGOLD | talocasa GmbH
|
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
|
@@ -9,13 +9,13 @@ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
9
|
copies of the Software, and to permit persons to whom the Software is
|
10
10
|
furnished to do so, subject to the following conditions:
|
11
11
|
|
12
|
-
The above copyright notice and this permission notice shall be included in
|
13
|
-
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
13
|
+
copies or substantial portions of the Software.
|
14
14
|
|
15
15
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
16
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
17
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
18
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
19
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21
|
-
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
+
SOFTWARE.
|
data/Makefile
CHANGED
@@ -9,6 +9,7 @@ SHELL := bash
|
|
9
9
|
# Environment switches
|
10
10
|
MAKE_ENV ?= docker
|
11
11
|
COMPOSE_RUN_SHELL_FLAGS ?= --rm
|
12
|
+
BASH_RUN_SHELL_FLAGS ?=
|
12
13
|
|
13
14
|
# Directories
|
14
15
|
VENDOR_DIR ?= vendor/bundle
|
@@ -22,9 +23,11 @@ MKDIR ?= mkdir
|
|
22
23
|
RM ?= rm
|
23
24
|
|
24
25
|
# Container binaries
|
25
|
-
BUNDLE ?= bundle
|
26
26
|
APPRAISAL ?= appraisal
|
27
|
+
BUNDLE ?= bundle
|
28
|
+
GUARD ?= guard
|
27
29
|
RAKE ?= rake
|
30
|
+
RSPEC ?= rspec
|
28
31
|
RUBOCOP ?= rubocop
|
29
32
|
YARD ?= yard
|
30
33
|
|
@@ -39,8 +42,9 @@ ifeq ($(MAKE_ENV),docker)
|
|
39
42
|
define run-shell
|
40
43
|
$(COMPOSE) run $(COMPOSE_RUN_SHELL_FLAGS) \
|
41
44
|
-e LANG=en_US.UTF-8 -e LANGUAGE=en_US.UTF-8 -e LC_ALL=en_US.UTF-8 \
|
42
|
-
-e HOME=/
|
43
|
-
-u `$(ID) -u` test
|
45
|
+
-e HOME=/home/web -e BUNDLE_APP_CONFIG=/app/.bundle \
|
46
|
+
-u `$(ID) -u` test \
|
47
|
+
bash $(BASH_RUN_SHELL_FLAGS) -c 'sleep 0.1; echo; $(1)'
|
44
48
|
endef
|
45
49
|
else ifeq ($(MAKE_ENV),baremetal)
|
46
50
|
define run-shell
|
@@ -52,9 +56,13 @@ all:
|
|
52
56
|
# Alarmable
|
53
57
|
#
|
54
58
|
# install Install the dependencies
|
55
|
-
#
|
59
|
+
# update Update the local Gemset dependencies
|
56
60
|
# clean Clean the dependencies
|
57
61
|
#
|
62
|
+
# test Run the whole test suite
|
63
|
+
# test-style Test the code styles
|
64
|
+
# watch Watch for code changes and rerun the test suite
|
65
|
+
#
|
58
66
|
# docs Generate the Ruby documentation of the library
|
59
67
|
# stats Print the code statistics (library and test suite)
|
60
68
|
# notes Print all the notes from the code
|
@@ -63,12 +71,25 @@ all:
|
|
63
71
|
# shell Run an interactive shell on the container
|
64
72
|
# shell-irb Run an interactive IRB shell on the container
|
65
73
|
|
74
|
+
.interactive:
|
75
|
+
@$(eval BASH_RUN_SHELL_FLAGS = --login)
|
76
|
+
|
66
77
|
install:
|
67
78
|
# Install the dependencies
|
68
79
|
@$(MKDIR) -p $(VENDOR_DIR)
|
69
80
|
@$(call run-shell,$(BUNDLE) check || $(BUNDLE) install --path $(VENDOR_DIR))
|
70
81
|
@$(call run-shell,$(BUNDLE) exec $(APPRAISAL) install)
|
71
82
|
|
83
|
+
update:
|
84
|
+
# Install the dependencies
|
85
|
+
@$(MKDIR) -p $(VENDOR_DIR)
|
86
|
+
@$(call run-shell,$(BUNDLE) update)
|
87
|
+
@$(call run-shell,$(BUNDLE) exec $(APPRAISAL) update)
|
88
|
+
|
89
|
+
watch: install .interactive
|
90
|
+
# Watch for code changes and rerun the test suite
|
91
|
+
@$(call run-shell,$(BUNDLE) exec $(GUARD))
|
92
|
+
|
72
93
|
test: \
|
73
94
|
test-specs \
|
74
95
|
test-style
|
@@ -80,7 +101,7 @@ test-specs:
|
|
80
101
|
$(TEST_GEMFILES): GEMFILE=$(@:test-%=%)
|
81
102
|
$(TEST_GEMFILES):
|
82
103
|
# Run the whole test suite ($(GEMFILE))
|
83
|
-
@$(call run-shell,$(BUNDLE) exec $(APPRAISAL) $(GEMFILE) $(
|
104
|
+
@$(call run-shell,$(BUNDLE) exec $(APPRAISAL) $(GEMFILE) $(RSPEC))
|
84
105
|
|
85
106
|
test-style: \
|
86
107
|
test-style-ruby
|
@@ -92,6 +113,10 @@ test-style-ruby:
|
|
92
113
|
clean:
|
93
114
|
# Clean the dependencies
|
94
115
|
@$(RM) -rf $(VENDOR_DIR)
|
116
|
+
@$(RM) -rf $(GEMFILES_DIR)/vendor
|
117
|
+
@$(RM) -rf $(GEMFILES_DIR)/*.lock
|
118
|
+
@$(RM) -rf .bundle .yardoc coverage pkg Gemfile.lock doc/api \
|
119
|
+
.rspec_status
|
95
120
|
|
96
121
|
clean-containers:
|
97
122
|
# Clean running containers
|
@@ -99,7 +124,16 @@ ifeq ($(MAKE_ENV),docker)
|
|
99
124
|
@$(COMPOSE) down
|
100
125
|
endif
|
101
126
|
|
102
|
-
|
127
|
+
clean-images:
|
128
|
+
# Clean build images
|
129
|
+
|
130
|
+
ifeq ($(MAKE_ENV),docker)
|
131
|
+
@-$(DOCKER) images | $(GREP) $(shell basename "`pwd`") \
|
132
|
+
| $(AWK) '{ print $$3 }' \
|
133
|
+
| $(XARGS) -rn1 $(DOCKER) rmi -f
|
134
|
+
endif
|
135
|
+
|
136
|
+
distclean: clean clean-containers clean-images
|
103
137
|
|
104
138
|
shell:
|
105
139
|
# Run an interactive shell on the container
|
data/README.md
CHANGED
@@ -19,7 +19,9 @@ list of supported adapters)
|
|
19
19
|
- [Active Record Model](#active-record-model)
|
20
20
|
- [Active Job](#active-job)
|
21
21
|
- [Development](#development)
|
22
|
+
- [Code of Conduct](#code-of-conduct)
|
22
23
|
- [Contributing](#contributing)
|
24
|
+
- [Releasing](#releasing)
|
23
25
|
|
24
26
|
## Installation
|
25
27
|
|
@@ -114,12 +116,24 @@ After checking out the repo, run `make install` to install dependencies. Then,
|
|
114
116
|
run `make test` to run the tests. You can also run `make shell-irb` for an
|
115
117
|
interactive prompt that will allow you to experiment.
|
116
118
|
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
[
|
119
|
+
## Code of Conduct
|
120
|
+
|
121
|
+
Everyone interacting in the project codebase, issue tracker, chat
|
122
|
+
rooms and mailing lists is expected to follow the [code of
|
123
|
+
conduct](./CODE_OF_CONDUCT.md).
|
121
124
|
|
122
125
|
## Contributing
|
123
126
|
|
124
127
|
Bug reports and pull requests are welcome on GitHub at
|
125
|
-
https://github.com/hausgold/alarmable.
|
128
|
+
https://github.com/hausgold/alarmable. Make sure that every pull request adds
|
129
|
+
a bullet point to the [changelog](./CHANGELOG.md) file with a reference to the
|
130
|
+
actual pull request.
|
131
|
+
|
132
|
+
## Releasing
|
133
|
+
|
134
|
+
The release process of this Gem is fully automated. You just need to open the
|
135
|
+
Github Actions [Release
|
136
|
+
Workflow](https://github.com/hausgold/alarmable/actions/workflows/release.yml)
|
137
|
+
and trigger a new run via the **Run workflow** button. Insert the new version
|
138
|
+
number (check the [changelog](./CHANGELOG.md) first for the latest release) and
|
139
|
+
you're done.
|
data/Rakefile
CHANGED
@@ -2,71 +2,18 @@
|
|
2
2
|
|
3
3
|
require 'bundler/gem_tasks'
|
4
4
|
require 'rspec/core/rake_task'
|
5
|
-
require '
|
6
|
-
require 'pp'
|
5
|
+
require 'countless/rake_tasks'
|
7
6
|
|
8
7
|
RSpec::Core::RakeTask.new(:spec)
|
9
8
|
|
10
9
|
task default: :spec
|
11
10
|
|
12
|
-
# Load some railties tasks
|
13
|
-
load 'rails/tasks/statistics.rake'
|
14
|
-
load 'rails/tasks/annotations.rake'
|
15
|
-
|
16
|
-
# Clear the default statistics directory constant
|
17
|
-
#
|
18
|
-
# rubocop:disable Style/MutableConstant because we define it
|
19
|
-
Object.send(:remove_const, :STATS_DIRECTORIES)
|
20
|
-
::STATS_DIRECTORIES = []
|
21
|
-
# rubocop:enable Style/MutableConstant
|
22
|
-
|
23
|
-
# Monkey patch the Rails +CodeStatistics+ class to support configurable
|
24
|
-
# patterns per path. This is reuqired to support top-level only file matches.
|
25
|
-
class CodeStatistics
|
26
|
-
DEFAULT_PATTERN = /^(?!\.).*?\.(rb|js|coffee|rake)$/.freeze
|
27
|
-
|
28
|
-
# Pass the possible +pattern+ argument down to the
|
29
|
-
# +calculate_directory_statistics+ method call.
|
30
|
-
def calculate_statistics
|
31
|
-
Hash[@pairs.map do |pair|
|
32
|
-
[pair.first, calculate_directory_statistics(*pair[1..-1])]
|
33
|
-
end]
|
34
|
-
end
|
35
|
-
|
36
|
-
# Match the pattern against the individual file name and the relative file
|
37
|
-
# path. This allows top-level only matches.
|
38
|
-
def calculate_directory_statistics(directory, pattern = DEFAULT_PATTERN)
|
39
|
-
stats = CodeStatisticsCalculator.new
|
40
|
-
|
41
|
-
Dir.foreach(directory) do |file_name|
|
42
|
-
path = "#{directory}/#{file_name}"
|
43
|
-
|
44
|
-
if File.directory?(path) && (/^\./ !~ file_name)
|
45
|
-
stats.add(calculate_directory_statistics(path, pattern))
|
46
|
-
elsif file_name =~ pattern || path =~ pattern
|
47
|
-
stats.add_by_file_path(path)
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
stats
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
11
|
# Configure all code statistics directories
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
]
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
::CodeStatistics::TEST_TYPES << type if type.include? 'specs'
|
64
|
-
end
|
65
|
-
|
66
|
-
# Setup annotations
|
67
|
-
ENV['SOURCE_ANNOTATION_DIRECTORIES'] = 'spec,doc'
|
68
|
-
|
69
|
-
desc 'Enumerate all annotations'
|
70
|
-
task :notes do
|
71
|
-
SourceAnnotationExtractor.enumerate '@?OPTIMIZE|@?FIXME|@?TODO', tag: true
|
12
|
+
Countless.configure do |config|
|
13
|
+
config.stats_base_directories = [
|
14
|
+
{ name: 'Top-levels', dir: 'lib',
|
15
|
+
pattern: %r{/lib(/alarmable)?/[^/]+\.rb$} },
|
16
|
+
{ name: 'Top-levels specs', test: true, dir: 'spec',
|
17
|
+
pattern: %r{/spec(/alarmable)?/[^/]+_spec\.rb$} }
|
18
|
+
]
|
72
19
|
end
|
data/alarmable.gemspec
CHANGED
@@ -5,42 +5,55 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
5
5
|
require 'alarmable/version'
|
6
6
|
|
7
7
|
Gem::Specification.new do |spec|
|
8
|
-
spec.name
|
9
|
-
spec.version
|
10
|
-
spec.authors
|
11
|
-
spec.email
|
8
|
+
spec.name = 'alarmable'
|
9
|
+
spec.version = Alarmable::VERSION
|
10
|
+
spec.authors = ['Hermann Mayer']
|
11
|
+
spec.email = ['hermann.mayer92@gmail.com']
|
12
12
|
|
13
|
-
spec.
|
14
|
-
spec.
|
15
|
-
|
16
|
-
|
17
|
-
|
13
|
+
spec.license = 'MIT'
|
14
|
+
spec.summary = 'A reusable alarm extension to Active Record models'
|
15
|
+
spec.description = 'This is a reusable alarm concern for Active Record' \
|
16
|
+
'models. It adds support for the automatic maintenance' \
|
17
|
+
'of Active Job\'s which are scheduled for the given' \
|
18
|
+
'alarms.'
|
18
19
|
|
19
|
-
|
20
|
-
spec.
|
20
|
+
base_uri = "https://github.com/hausgold/#{spec.name}"
|
21
|
+
spec.metadata = {
|
22
|
+
'homepage_uri' => base_uri,
|
23
|
+
'source_code_uri' => base_uri,
|
24
|
+
'changelog_uri' => "#{base_uri}/blob/master/CHANGELOG.md",
|
25
|
+
'bug_tracker_uri' => "#{base_uri}/issues",
|
26
|
+
'documentation_uri' => "https://www.rubydoc.info/gems/#{spec.name}"
|
27
|
+
}
|
21
28
|
|
22
|
-
spec.files
|
29
|
+
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
23
30
|
f.match(%r{^(test|spec|features)/})
|
24
31
|
end
|
25
|
-
|
26
|
-
spec.
|
32
|
+
|
33
|
+
spec.bindir = 'exe'
|
34
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
27
35
|
spec.require_paths = ['lib']
|
28
36
|
|
29
|
-
spec.
|
37
|
+
spec.required_ruby_version = '>= 2.5'
|
38
|
+
|
39
|
+
spec.add_dependency 'activejob', '>= 5.2'
|
30
40
|
spec.add_dependency 'activejob-cancel', '~> 0.3'
|
31
|
-
spec.add_dependency 'activerecord', '>=
|
32
|
-
spec.add_dependency 'activesupport', '>=
|
33
|
-
spec.add_dependency 'hashdiff', '~> 0
|
34
|
-
|
35
|
-
spec.add_development_dependency 'appraisal'
|
36
|
-
spec.add_development_dependency 'bundler', '
|
37
|
-
spec.add_development_dependency '
|
38
|
-
spec.add_development_dependency '
|
39
|
-
spec.add_development_dependency '
|
40
|
-
spec.add_development_dependency '
|
41
|
-
spec.add_development_dependency '
|
42
|
-
spec.add_development_dependency '
|
43
|
-
spec.add_development_dependency '
|
44
|
-
spec.add_development_dependency '
|
45
|
-
spec.add_development_dependency '
|
41
|
+
spec.add_dependency 'activerecord', '>= 5.2'
|
42
|
+
spec.add_dependency 'activesupport', '>= 5.2'
|
43
|
+
spec.add_dependency 'hashdiff', '~> 1.0'
|
44
|
+
|
45
|
+
spec.add_development_dependency 'appraisal', '~> 2.4'
|
46
|
+
spec.add_development_dependency 'bundler', '~> 2.3'
|
47
|
+
spec.add_development_dependency 'countless', '~> 1.1'
|
48
|
+
spec.add_development_dependency 'guard-rspec', '~> 4.7'
|
49
|
+
spec.add_development_dependency 'pg', '~> 1.4'
|
50
|
+
spec.add_development_dependency 'railties', '>= 5.2'
|
51
|
+
spec.add_development_dependency 'rake', '~> 13.0'
|
52
|
+
spec.add_development_dependency 'rspec', '~> 3.12'
|
53
|
+
spec.add_development_dependency 'rubocop', '~> 1.28'
|
54
|
+
spec.add_development_dependency 'rubocop-rails', '~> 2.14'
|
55
|
+
spec.add_development_dependency 'rubocop-rspec', '~> 2.10'
|
56
|
+
spec.add_development_dependency 'simplecov', '>= 0.22'
|
57
|
+
spec.add_development_dependency 'yard', '>= 0.9.28'
|
58
|
+
spec.add_development_dependency 'yard-activesupport-concern', '>= 0.0.1'
|
46
59
|
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
# ~/.bashrc: executed by bash(1) for non-login shells.
|
2
|
+
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
|
3
|
+
# for examples
|
4
|
+
|
5
|
+
_GEM_PATHS=$(ls -d1 ${HOME}/.gem/ruby/*/bin 2>/dev/null | paste -sd ':')
|
6
|
+
_APP_PATHS=$(ls -d1 /app/vendor/bundle/ruby/*/bin 2>/dev/null | paste -sd ':')
|
7
|
+
|
8
|
+
export PATH="${_GEM_PATHS}:${_APP_PATHS}:${PATH}"
|
9
|
+
export PATH="/app/node_modules/.bin:${HOME}/.bin:/app/bin:${PATH}"
|
10
|
+
export MAKE_ENV=baremetal
|
11
|
+
|
12
|
+
# Disable the autostart of all supervisord units
|
13
|
+
sudo sed -i 's/autostart=.*/autostart=false/g' /etc/supervisor/conf.d/*
|
14
|
+
|
15
|
+
# Start the supervisord (empty, no units)
|
16
|
+
sudo supervisord >/dev/null 2>&1 &
|
17
|
+
|
18
|
+
# Wait for supervisord
|
19
|
+
while ! supervisorctl status >/dev/null 2>&1; do sleep 1; done
|
20
|
+
|
21
|
+
# Boot the mDNS stack
|
22
|
+
echo '# Start the mDNS stack'
|
23
|
+
sudo supervisorctl start dbus avahi
|
24
|
+
echo
|
25
|
+
|
26
|
+
function watch-make-test()
|
27
|
+
{
|
28
|
+
while [ 1 ]; do
|
29
|
+
inotifywait --quiet -r `pwd` -e close_write --format '%e -> %w%f'
|
30
|
+
make test
|
31
|
+
done
|
32
|
+
}
|
33
|
+
|
34
|
+
function watch-make()
|
35
|
+
{
|
36
|
+
while [ 1 ]; do
|
37
|
+
inotifywait --quiet -r `pwd` -e close_write --format '%e -> %w%f'
|
38
|
+
make $@
|
39
|
+
done
|
40
|
+
}
|
41
|
+
|
42
|
+
function watch-run()
|
43
|
+
{
|
44
|
+
while [ 1 ]; do
|
45
|
+
inotifywait --quiet -r `pwd` -e close_write --format '%e -> %w%f'
|
46
|
+
bash -c "$@"
|
47
|
+
done
|
48
|
+
}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# mappings for Ctrl-left-arrow and Ctrl-right-arrow for word moving
|
2
|
+
"\e[1;5C": forward-word
|
3
|
+
"\e[1;5D": backward-word
|
4
|
+
"\e[5C": forward-word
|
5
|
+
"\e[5D": backward-word
|
6
|
+
"\e\e[C": forward-word
|
7
|
+
"\e\e[D": backward-word
|
8
|
+
|
9
|
+
# handle common Home/End escape codes
|
10
|
+
"\e[1~": beginning-of-line
|
11
|
+
"\e[4~": end-of-line
|
12
|
+
"\e[7~": beginning-of-line
|
13
|
+
"\e[8~": end-of-line
|
14
|
+
"\eOH": beginning-of-line
|
15
|
+
"\eOF": end-of-line
|
16
|
+
"\e[H": beginning-of-line
|
17
|
+
"\e[F": end-of-line
|
data/docker-compose.yml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
version: "3"
|
2
2
|
services:
|
3
3
|
db:
|
4
|
-
image: hausgold/postgres:
|
4
|
+
image: hausgold/postgres:14.4
|
5
5
|
network_mode: bridge
|
6
6
|
ports: ["5432"]
|
7
7
|
volumes:
|
@@ -13,7 +13,8 @@ services:
|
|
13
13
|
MDNS_HOSTNAME: db.alarmable.local
|
14
14
|
|
15
15
|
test:
|
16
|
-
|
16
|
+
build: .
|
17
|
+
env_file: Envfile
|
17
18
|
network_mode: bridge
|
18
19
|
working_dir: /app
|
19
20
|
volumes:
|
data/gemfiles/rails_5.2.gemfile
CHANGED
data/lib/alarmable/concern.rb
CHANGED
@@ -160,7 +160,7 @@ module Alarmable
|
|
160
160
|
job = alarm_job.set(wait_until: notify_at).perform_later(self.id, alarm)
|
161
161
|
|
162
162
|
# Construct a new alarm_jobs partial instance for this job
|
163
|
-
|
163
|
+
{ id => job.job_id }
|
164
164
|
end
|
165
165
|
# rubocop:enable Metrics/AbcSize
|
166
166
|
|
@@ -177,7 +177,7 @@ module Alarmable
|
|
177
177
|
# Detect the differences from the original alarm_jobs hash to the new
|
178
178
|
# built (by partials) alarm_jobs hash. The jobs from negative differences
|
179
179
|
# must be canceled.
|
180
|
-
diff =
|
180
|
+
diff = Hashdiff.diff(alarm_jobs, new_alarm_jobs)
|
181
181
|
|
182
182
|
diff.select { |prop| prop.first == '-' }.each do |prop|
|
183
183
|
alarm_job.cancel(prop.last)
|
data/lib/alarmable/version.rb
CHANGED
@@ -1,5 +1,23 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
# The gem version details.
|
3
4
|
module Alarmable
|
4
|
-
|
5
|
+
# The version of the +alarmable+ gem
|
6
|
+
VERSION = '1.1.0'
|
7
|
+
|
8
|
+
class << self
|
9
|
+
# Returns the version of gem as a string.
|
10
|
+
#
|
11
|
+
# @return [String] the gem version as string
|
12
|
+
def version
|
13
|
+
VERSION
|
14
|
+
end
|
15
|
+
|
16
|
+
# Returns the version of the gem as a +Gem::Version+.
|
17
|
+
#
|
18
|
+
# @return [Gem::Version] the gem version as object
|
19
|
+
def gem_version
|
20
|
+
Gem::Version.new VERSION
|
21
|
+
end
|
22
|
+
end
|
5
23
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: alarmable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hermann Mayer
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-02-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activejob
|
@@ -16,20 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
20
|
-
- - "<"
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: '6'
|
19
|
+
version: '5.2'
|
23
20
|
type: :runtime
|
24
21
|
prerelease: false
|
25
22
|
version_requirements: !ruby/object:Gem::Requirement
|
26
23
|
requirements:
|
27
24
|
- - ">="
|
28
25
|
- !ruby/object:Gem::Version
|
29
|
-
version: '
|
30
|
-
- - "<"
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
version: '6'
|
26
|
+
version: '5.2'
|
33
27
|
- !ruby/object:Gem::Dependency
|
34
28
|
name: activejob-cancel
|
35
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -50,230 +44,249 @@ dependencies:
|
|
50
44
|
requirements:
|
51
45
|
- - ">="
|
52
46
|
- !ruby/object:Gem::Version
|
53
|
-
version: '
|
54
|
-
- - "<"
|
55
|
-
- !ruby/object:Gem::Version
|
56
|
-
version: '6'
|
47
|
+
version: '5.2'
|
57
48
|
type: :runtime
|
58
49
|
prerelease: false
|
59
50
|
version_requirements: !ruby/object:Gem::Requirement
|
60
51
|
requirements:
|
61
52
|
- - ">="
|
62
53
|
- !ruby/object:Gem::Version
|
63
|
-
version: '
|
64
|
-
- - "<"
|
65
|
-
- !ruby/object:Gem::Version
|
66
|
-
version: '6'
|
54
|
+
version: '5.2'
|
67
55
|
- !ruby/object:Gem::Dependency
|
68
56
|
name: activesupport
|
69
57
|
requirement: !ruby/object:Gem::Requirement
|
70
58
|
requirements:
|
71
59
|
- - ">="
|
72
60
|
- !ruby/object:Gem::Version
|
73
|
-
version: '
|
74
|
-
- - "<"
|
75
|
-
- !ruby/object:Gem::Version
|
76
|
-
version: '6'
|
61
|
+
version: '5.2'
|
77
62
|
type: :runtime
|
78
63
|
prerelease: false
|
79
64
|
version_requirements: !ruby/object:Gem::Requirement
|
80
65
|
requirements:
|
81
66
|
- - ">="
|
82
67
|
- !ruby/object:Gem::Version
|
83
|
-
version: '
|
84
|
-
- - "<"
|
85
|
-
- !ruby/object:Gem::Version
|
86
|
-
version: '6'
|
68
|
+
version: '5.2'
|
87
69
|
- !ruby/object:Gem::Dependency
|
88
70
|
name: hashdiff
|
89
71
|
requirement: !ruby/object:Gem::Requirement
|
90
72
|
requirements:
|
91
73
|
- - "~>"
|
92
74
|
- !ruby/object:Gem::Version
|
93
|
-
version: 0
|
75
|
+
version: '1.0'
|
94
76
|
type: :runtime
|
95
77
|
prerelease: false
|
96
78
|
version_requirements: !ruby/object:Gem::Requirement
|
97
79
|
requirements:
|
98
80
|
- - "~>"
|
99
81
|
- !ruby/object:Gem::Version
|
100
|
-
version: 0
|
82
|
+
version: '1.0'
|
101
83
|
- !ruby/object:Gem::Dependency
|
102
84
|
name: appraisal
|
103
85
|
requirement: !ruby/object:Gem::Requirement
|
104
86
|
requirements:
|
105
|
-
- - "
|
87
|
+
- - "~>"
|
106
88
|
- !ruby/object:Gem::Version
|
107
|
-
version: '
|
89
|
+
version: '2.4'
|
108
90
|
type: :development
|
109
91
|
prerelease: false
|
110
92
|
version_requirements: !ruby/object:Gem::Requirement
|
111
93
|
requirements:
|
112
|
-
- - "
|
94
|
+
- - "~>"
|
113
95
|
- !ruby/object:Gem::Version
|
114
|
-
version: '
|
96
|
+
version: '2.4'
|
115
97
|
- !ruby/object:Gem::Dependency
|
116
98
|
name: bundler
|
117
99
|
requirement: !ruby/object:Gem::Requirement
|
118
100
|
requirements:
|
119
|
-
- - "
|
101
|
+
- - "~>"
|
120
102
|
- !ruby/object:Gem::Version
|
121
|
-
version: '
|
122
|
-
|
103
|
+
version: '2.3'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '2.3'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: countless
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
123
116
|
- !ruby/object:Gem::Version
|
124
|
-
version: '
|
117
|
+
version: '1.1'
|
125
118
|
type: :development
|
126
119
|
prerelease: false
|
127
120
|
version_requirements: !ruby/object:Gem::Requirement
|
128
121
|
requirements:
|
129
|
-
- - "
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '1.1'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: guard-rspec
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
130
|
- !ruby/object:Gem::Version
|
131
|
-
version: '
|
132
|
-
|
131
|
+
version: '4.7'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
133
137
|
- !ruby/object:Gem::Version
|
134
|
-
version: '
|
138
|
+
version: '4.7'
|
135
139
|
- !ruby/object:Gem::Dependency
|
136
140
|
name: pg
|
137
141
|
requirement: !ruby/object:Gem::Requirement
|
138
142
|
requirements:
|
139
143
|
- - "~>"
|
140
144
|
- !ruby/object:Gem::Version
|
141
|
-
version: '
|
145
|
+
version: '1.4'
|
142
146
|
type: :development
|
143
147
|
prerelease: false
|
144
148
|
version_requirements: !ruby/object:Gem::Requirement
|
145
149
|
requirements:
|
146
150
|
- - "~>"
|
147
151
|
- !ruby/object:Gem::Version
|
148
|
-
version: '
|
152
|
+
version: '1.4'
|
149
153
|
- !ruby/object:Gem::Dependency
|
150
154
|
name: railties
|
151
155
|
requirement: !ruby/object:Gem::Requirement
|
152
156
|
requirements:
|
153
157
|
- - ">="
|
154
158
|
- !ruby/object:Gem::Version
|
155
|
-
version:
|
156
|
-
- - "<"
|
157
|
-
- !ruby/object:Gem::Version
|
158
|
-
version: '6.1'
|
159
|
+
version: '5.2'
|
159
160
|
type: :development
|
160
161
|
prerelease: false
|
161
162
|
version_requirements: !ruby/object:Gem::Requirement
|
162
163
|
requirements:
|
163
164
|
- - ">="
|
164
165
|
- !ruby/object:Gem::Version
|
165
|
-
version:
|
166
|
-
- - "<"
|
167
|
-
- !ruby/object:Gem::Version
|
168
|
-
version: '6.1'
|
166
|
+
version: '5.2'
|
169
167
|
- !ruby/object:Gem::Dependency
|
170
168
|
name: rake
|
171
169
|
requirement: !ruby/object:Gem::Requirement
|
172
170
|
requirements:
|
173
171
|
- - "~>"
|
174
172
|
- !ruby/object:Gem::Version
|
175
|
-
version: '
|
173
|
+
version: '13.0'
|
176
174
|
type: :development
|
177
175
|
prerelease: false
|
178
176
|
version_requirements: !ruby/object:Gem::Requirement
|
179
177
|
requirements:
|
180
178
|
- - "~>"
|
181
179
|
- !ruby/object:Gem::Version
|
182
|
-
version: '
|
180
|
+
version: '13.0'
|
183
181
|
- !ruby/object:Gem::Dependency
|
184
182
|
name: rspec
|
185
183
|
requirement: !ruby/object:Gem::Requirement
|
186
184
|
requirements:
|
187
185
|
- - "~>"
|
188
186
|
- !ruby/object:Gem::Version
|
189
|
-
version: '3.
|
187
|
+
version: '3.12'
|
190
188
|
type: :development
|
191
189
|
prerelease: false
|
192
190
|
version_requirements: !ruby/object:Gem::Requirement
|
193
191
|
requirements:
|
194
192
|
- - "~>"
|
195
193
|
- !ruby/object:Gem::Version
|
196
|
-
version: '3.
|
194
|
+
version: '3.12'
|
197
195
|
- !ruby/object:Gem::Dependency
|
198
196
|
name: rubocop
|
199
197
|
requirement: !ruby/object:Gem::Requirement
|
200
198
|
requirements:
|
201
199
|
- - "~>"
|
202
200
|
- !ruby/object:Gem::Version
|
203
|
-
version:
|
201
|
+
version: '1.28'
|
204
202
|
type: :development
|
205
203
|
prerelease: false
|
206
204
|
version_requirements: !ruby/object:Gem::Requirement
|
207
205
|
requirements:
|
208
206
|
- - "~>"
|
209
207
|
- !ruby/object:Gem::Version
|
210
|
-
version:
|
208
|
+
version: '1.28'
|
209
|
+
- !ruby/object:Gem::Dependency
|
210
|
+
name: rubocop-rails
|
211
|
+
requirement: !ruby/object:Gem::Requirement
|
212
|
+
requirements:
|
213
|
+
- - "~>"
|
214
|
+
- !ruby/object:Gem::Version
|
215
|
+
version: '2.14'
|
216
|
+
type: :development
|
217
|
+
prerelease: false
|
218
|
+
version_requirements: !ruby/object:Gem::Requirement
|
219
|
+
requirements:
|
220
|
+
- - "~>"
|
221
|
+
- !ruby/object:Gem::Version
|
222
|
+
version: '2.14'
|
211
223
|
- !ruby/object:Gem::Dependency
|
212
224
|
name: rubocop-rspec
|
213
225
|
requirement: !ruby/object:Gem::Requirement
|
214
226
|
requirements:
|
215
227
|
- - "~>"
|
216
228
|
- !ruby/object:Gem::Version
|
217
|
-
version: '
|
229
|
+
version: '2.10'
|
218
230
|
type: :development
|
219
231
|
prerelease: false
|
220
232
|
version_requirements: !ruby/object:Gem::Requirement
|
221
233
|
requirements:
|
222
234
|
- - "~>"
|
223
235
|
- !ruby/object:Gem::Version
|
224
|
-
version: '
|
236
|
+
version: '2.10'
|
225
237
|
- !ruby/object:Gem::Dependency
|
226
238
|
name: simplecov
|
227
239
|
requirement: !ruby/object:Gem::Requirement
|
228
240
|
requirements:
|
229
|
-
- - "
|
241
|
+
- - ">="
|
230
242
|
- !ruby/object:Gem::Version
|
231
|
-
version: '0.
|
243
|
+
version: '0.22'
|
232
244
|
type: :development
|
233
245
|
prerelease: false
|
234
246
|
version_requirements: !ruby/object:Gem::Requirement
|
235
247
|
requirements:
|
236
|
-
- - "
|
248
|
+
- - ">="
|
237
249
|
- !ruby/object:Gem::Version
|
238
|
-
version: '0.
|
250
|
+
version: '0.22'
|
239
251
|
- !ruby/object:Gem::Dependency
|
240
252
|
name: yard
|
241
253
|
requirement: !ruby/object:Gem::Requirement
|
242
254
|
requirements:
|
243
|
-
- - "
|
255
|
+
- - ">="
|
244
256
|
- !ruby/object:Gem::Version
|
245
|
-
version: 0.9.
|
257
|
+
version: 0.9.28
|
246
258
|
type: :development
|
247
259
|
prerelease: false
|
248
260
|
version_requirements: !ruby/object:Gem::Requirement
|
249
261
|
requirements:
|
250
|
-
- - "
|
262
|
+
- - ">="
|
251
263
|
- !ruby/object:Gem::Version
|
252
|
-
version: 0.9.
|
264
|
+
version: 0.9.28
|
253
265
|
- !ruby/object:Gem::Dependency
|
254
266
|
name: yard-activesupport-concern
|
255
267
|
requirement: !ruby/object:Gem::Requirement
|
256
268
|
requirements:
|
257
|
-
- - "
|
269
|
+
- - ">="
|
258
270
|
- !ruby/object:Gem::Version
|
259
271
|
version: 0.0.1
|
260
272
|
type: :development
|
261
273
|
prerelease: false
|
262
274
|
version_requirements: !ruby/object:Gem::Requirement
|
263
275
|
requirements:
|
264
|
-
- - "
|
276
|
+
- - ">="
|
265
277
|
- !ruby/object:Gem::Version
|
266
278
|
version: 0.0.1
|
267
279
|
description: This is a reusable alarm concern for Active Recordmodels. It adds support
|
268
280
|
for the automatic maintenanceof Active Job's which are scheduled for the givenalarms.
|
269
281
|
email:
|
270
|
-
- hermann.
|
282
|
+
- hermann.mayer92@gmail.com
|
271
283
|
executables: []
|
272
284
|
extensions: []
|
273
285
|
extra_rdoc_files: []
|
274
286
|
files:
|
275
287
|
- ".editorconfig"
|
276
288
|
- ".github/workflows/documentation.yml"
|
289
|
+
- ".github/workflows/release.yml"
|
277
290
|
- ".github/workflows/test.yml"
|
278
291
|
- ".gitignore"
|
279
292
|
- ".rspec"
|
@@ -283,7 +296,10 @@ files:
|
|
283
296
|
- Appraisals
|
284
297
|
- CHANGELOG.md
|
285
298
|
- CODE_OF_CONDUCT.md
|
299
|
+
- Dockerfile
|
300
|
+
- Envfile
|
286
301
|
- Gemfile
|
302
|
+
- Guardfile
|
287
303
|
- LICENSE
|
288
304
|
- Makefile
|
289
305
|
- README.md
|
@@ -291,20 +307,25 @@ files:
|
|
291
307
|
- alarmable.gemspec
|
292
308
|
- bin/console
|
293
309
|
- bin/setup
|
310
|
+
- config/docker/.bash_profile
|
311
|
+
- config/docker/.bashrc
|
312
|
+
- config/docker/.inputrc
|
294
313
|
- doc/assets/project.svg
|
295
314
|
- docker-compose.yml
|
296
|
-
- gemfiles/rails_4.gemfile
|
297
|
-
- gemfiles/rails_5.0.gemfile
|
298
|
-
- gemfiles/rails_5.1.gemfile
|
299
315
|
- gemfiles/rails_5.2.gemfile
|
300
316
|
- lib/alarmable.rb
|
301
317
|
- lib/alarmable/concern.rb
|
302
318
|
- lib/alarmable/version.rb
|
303
|
-
homepage:
|
319
|
+
homepage:
|
304
320
|
licenses:
|
305
321
|
- MIT
|
306
|
-
metadata:
|
307
|
-
|
322
|
+
metadata:
|
323
|
+
homepage_uri: https://github.com/hausgold/alarmable
|
324
|
+
source_code_uri: https://github.com/hausgold/alarmable
|
325
|
+
changelog_uri: https://github.com/hausgold/alarmable/blob/master/CHANGELOG.md
|
326
|
+
bug_tracker_uri: https://github.com/hausgold/alarmable/issues
|
327
|
+
documentation_uri: https://www.rubydoc.info/gems/alarmable
|
328
|
+
post_install_message:
|
308
329
|
rdoc_options: []
|
309
330
|
require_paths:
|
310
331
|
- lib
|
@@ -312,15 +333,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
312
333
|
requirements:
|
313
334
|
- - ">="
|
314
335
|
- !ruby/object:Gem::Version
|
315
|
-
version: '
|
336
|
+
version: '2.5'
|
316
337
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
317
338
|
requirements:
|
318
339
|
- - ">="
|
319
340
|
- !ruby/object:Gem::Version
|
320
341
|
version: '0'
|
321
342
|
requirements: []
|
322
|
-
rubygems_version: 3.
|
323
|
-
signing_key:
|
343
|
+
rubygems_version: 3.3.26
|
344
|
+
signing_key:
|
324
345
|
specification_version: 4
|
325
346
|
summary: A reusable alarm extension to Active Record models
|
326
347
|
test_files: []
|
data/gemfiles/rails_4.gemfile
DELETED
data/gemfiles/rails_5.0.gemfile
DELETED