konsierge-notifier 0.1.2
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 +7 -0
- data/.env.sample +7 -0
- data/.rspec +3 -0
- data/.rubocop.yml +64 -0
- data/CHANGELOG.md +5 -0
- data/README.md +15 -0
- data/Rakefile +12 -0
- data/exe/konsierge-notifier +4 -0
- data/konsierge-notifier.gemspec +45 -0
- data/lib/generators/install/konsierge_notifier.rb +24 -0
- data/lib/generators/install/templates/error_template.html.erb +8 -0
- data/lib/generators/install/templates/konsierge_notifier_telegram.rb +17 -0
- data/lib/generators/install/templates/template.html.erb +2 -0
- data/lib/generators/konsierge/notifier/mailer/install_generator.rb +15 -0
- data/lib/generators/konsierge/notifier/mailer/templates/README +18 -0
- data/lib/generators/konsierge/notifier/mailer/templates/initializer.rb +8 -0
- data/lib/konsierge/notifier/error_template.html.erb +8 -0
- data/lib/konsierge/notifier/template.html.erb +2 -0
- data/lib/konsierge/notifier.rb +98 -0
- data/sig/konsierge/notifier/mailer.rbs +31 -0
- data/sig/konsierge/notifier/telegram.rbs +30 -0
- data/sig/konsierge.rbs +3 -0
- metadata +206 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 3679299ae685f421a56aeb7158c38c02d54d2202b42912cb16389ec0c49c6453
|
4
|
+
data.tar.gz: 1f617cb829dc394371c9b123765c767171bc335b43345baadc43a30ad0d9ccdf
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 9ad9637bf1d6e037cbbfd1dd94ff5c1b3876a47c8028a6dfd75e453eb854e0925101fc9610477510e12e07e3995a1be6f75218ef4cf4a2d43c410da8afe51a31
|
7
|
+
data.tar.gz: 5f7db0f81d015207a1cee5d48828f7ea1745e3702d65a4eeec980163157d840bd8853ba40990ae489c40bfcaad80f649e2957138888faa6bdcd88199ca3033d5
|
data/.env.sample
ADDED
data/.rspec
ADDED
data/.rubocop.yml
ADDED
@@ -0,0 +1,64 @@
|
|
1
|
+
require:
|
2
|
+
- rubocop-performance
|
3
|
+
- rubocop-rspec
|
4
|
+
|
5
|
+
AllCops:
|
6
|
+
TargetRubyVersion: 2.7.4
|
7
|
+
SuggestExtensions: false
|
8
|
+
NewCops: enable
|
9
|
+
|
10
|
+
Gemspec/DevelopmentDependencies:
|
11
|
+
EnforcedStyle: gemspec
|
12
|
+
|
13
|
+
Style/Documentation:
|
14
|
+
Enabled: false
|
15
|
+
|
16
|
+
Layout/SpaceInsideHashLiteralBraces:
|
17
|
+
EnforcedStyle: no_space
|
18
|
+
|
19
|
+
Layout/HashAlignment:
|
20
|
+
EnforcedColonStyle: table
|
21
|
+
EnforcedHashRocketStyle: table
|
22
|
+
|
23
|
+
Style/OpenStructUse:
|
24
|
+
Enabled: false
|
25
|
+
|
26
|
+
Metrics/BlockLength:
|
27
|
+
Exclude:
|
28
|
+
- 'spec/**/*'
|
29
|
+
|
30
|
+
Lint/NonDeterministicRequireOrder:
|
31
|
+
Exclude:
|
32
|
+
- 'spec/**/*'
|
33
|
+
|
34
|
+
Style/StringLiterals:
|
35
|
+
Exclude:
|
36
|
+
- 'spec/**/*'
|
37
|
+
|
38
|
+
RSpec/NamedSubject:
|
39
|
+
Enabled: false
|
40
|
+
|
41
|
+
RSpec/NestedGroups:
|
42
|
+
Enabled: false
|
43
|
+
|
44
|
+
RSpec/VerifiedDoubles:
|
45
|
+
Enabled: false
|
46
|
+
|
47
|
+
RSpec/VerifiedDoubleReference:
|
48
|
+
Enabled: false
|
49
|
+
|
50
|
+
RSpec/MessageSpies:
|
51
|
+
Enabled: false
|
52
|
+
|
53
|
+
RSpec/ExampleLength:
|
54
|
+
Enabled: false
|
55
|
+
|
56
|
+
RSpec/NoExpectationExample:
|
57
|
+
Enabled: false
|
58
|
+
|
59
|
+
RSpec/MultipleMemoizedHelpers:
|
60
|
+
Enabled: false
|
61
|
+
|
62
|
+
RSpec/MultipleExpectations:
|
63
|
+
Exclude:
|
64
|
+
- 'spec/support/shared_examples/**/*'
|
data/CHANGELOG.md
ADDED
data/README.md
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
# Konsierge::Notifier
|
2
|
+
|
3
|
+
## Installation
|
4
|
+
|
5
|
+
## Usage
|
6
|
+
|
7
|
+
### Telegram
|
8
|
+
|
9
|
+
|
10
|
+
### Mailer
|
11
|
+
|
12
|
+
|
13
|
+
## Development
|
14
|
+
|
15
|
+
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
data/Rakefile
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'lib/konsierge/notifier'
|
4
|
+
|
5
|
+
Gem::Specification.new do |spec|
|
6
|
+
spec.name = 'konsierge-notifier'
|
7
|
+
spec.version = Konsierge::Notifier::VERSION
|
8
|
+
spec.author = 'David Rybolovlev'
|
9
|
+
spec.email = ['golifox911@gmail.com']
|
10
|
+
|
11
|
+
spec.summary = 'Notifier for Konsierge.'
|
12
|
+
spec.description = spec.summary
|
13
|
+
spec.required_ruby_version = '>= 2.7.4'
|
14
|
+
|
15
|
+
spec.metadata['source_code_uri'] = 'https://gitlab.konsierge.com/digitalbox/gem/konsierge-notifier'
|
16
|
+
|
17
|
+
spec.files = Dir.chdir(__dir__) do
|
18
|
+
`git ls-files -z`.split("\x0").reject do |f|
|
19
|
+
(File.expand_path(f) == __FILE__) ||
|
20
|
+
f.start_with?(*%w[bin/ spec/ features/ .git .circleci appveyor Gemfile])
|
21
|
+
end
|
22
|
+
end
|
23
|
+
spec.bindir = 'exe'
|
24
|
+
spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
|
25
|
+
spec.require_paths = ['lib']
|
26
|
+
|
27
|
+
spec.add_dependency 'dotenv', '~> 2.7'
|
28
|
+
|
29
|
+
# All notifiers
|
30
|
+
spec.add_dependency 'dry-configurable', '~> 1.0'
|
31
|
+
|
32
|
+
# Telegram notifier
|
33
|
+
spec.add_dependency 'telegram-bot', '~> 0.16.1'
|
34
|
+
|
35
|
+
# Development and test dependencies
|
36
|
+
spec.add_development_dependency 'bundler', '~> 2.0'
|
37
|
+
spec.add_development_dependency 'rspec', '~> 3.10'
|
38
|
+
spec.add_development_dependency 'rspec-mocks', '~> 3.10'
|
39
|
+
spec.add_development_dependency 'rubocop', '~> 1.60'
|
40
|
+
spec.add_development_dependency 'rubocop-performance', '~> 1.11'
|
41
|
+
spec.add_development_dependency 'rubocop-rspec', '~> 2.11'
|
42
|
+
spec.add_development_dependency 'simplecov', '~> 0.22'
|
43
|
+
|
44
|
+
spec.metadata['rubygems_mfa_required'] = 'true'
|
45
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# lib/generators/install/install_generator.rb
|
4
|
+
require 'rails/generators/base'
|
5
|
+
|
6
|
+
namespace 'konsierge-notifier'
|
7
|
+
|
8
|
+
module Generators
|
9
|
+
class KonsiergeNotifier < Rails::Generators::Base
|
10
|
+
def self.source_root
|
11
|
+
@source_root ||= File.expand_path(File.join(File.dirname(__FILE__), 'templates'))
|
12
|
+
end
|
13
|
+
|
14
|
+
desc 'Creates a Konsierge::Notifier initializer for your application'
|
15
|
+
|
16
|
+
def copy_initializer
|
17
|
+
template 'konsierge_notifier_telegram.rb', 'config/initializers/konsierge_notifier_telegram.rb'
|
18
|
+
|
19
|
+
# Code to copy the message and error_message erb templates
|
20
|
+
copy_file 'message_template.html.erb', 'lib/templates/konsierge_notifier/message.html.erb'
|
21
|
+
copy_file 'error_template.html.erb', 'lib/templates/konsierge_notifier/error.html.erb'
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,8 @@
|
|
1
|
+
<b><%= CGI.escape_html(app_name.to_s) %></b>
|
2
|
+
<% "\n" %>
|
3
|
+
<b>Error</b>: <%= CGI.escape_html(error.class.to_s) %> - <%= CGI.escape_html(error.message) %>
|
4
|
+
<% "\n" %>
|
5
|
+
<b>Source</b>: <%= CGI.escape_html(source) %>
|
6
|
+
<% "\n" %>
|
7
|
+
<b>Trace:</b>
|
8
|
+
<%= error.backtrace[0..2].flatten.map { |trace| "===> #{CGI.escape_html(trace)}" }.join("\n") %>
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'konsierge'
|
4
|
+
|
5
|
+
Telegram.bots_config = {
|
6
|
+
default: {
|
7
|
+
token: ENV.fetch('TELEGRAM_BOT_TOKEN', nil),
|
8
|
+
username: 'Konsierge notifier'
|
9
|
+
}
|
10
|
+
}
|
11
|
+
|
12
|
+
Konsierge::Notifier::Telegram.configure do |config|
|
13
|
+
config.app_name = Rails.application.class.module_parent_name
|
14
|
+
config.bot_enabled = ENV.fetch('TELEGRAM_BOT_ENABLED', false)
|
15
|
+
config.chat_id = ENV.fetch('TELEGRAM_CHANNEL_ID', nil)
|
16
|
+
config.logger = Rails.logger
|
17
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'rails/generators'
|
4
|
+
|
5
|
+
module KonsiergeSmtpMailer
|
6
|
+
class InstallGenerator < ::Rails::Generators::Base
|
7
|
+
source_root File.expand_path('templates', __dir__)
|
8
|
+
desc 'Installs KonsiergeSmtpMailer.'
|
9
|
+
|
10
|
+
def install
|
11
|
+
template 'initializer.rb', 'config/initializers/konsierge-smtp-mailer.rb'
|
12
|
+
readme 'README'
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
===============================================================================
|
2
|
+
|
3
|
+
There is a setup that you need to do before you can use KonsiergeSmtpMailer.
|
4
|
+
|
5
|
+
Step 1.
|
6
|
+
Go to config/initializers/konsierge-smtp-mailer.rb and configure
|
7
|
+
smtp_mailer_host and smtp_mailer_auth_key.
|
8
|
+
|
9
|
+
Step 2.
|
10
|
+
Set new mailer in environment files:
|
11
|
+
|
12
|
+
config.action_mailer.delivery_method = :konsierge_smtp_mailer
|
13
|
+
|
14
|
+
Step 3.
|
15
|
+
That's it, that's all. Enjoy!
|
16
|
+
|
17
|
+
===============================================================================
|
18
|
+
|
@@ -0,0 +1,8 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
ActionMailer::Base.add_delivery_method :konsierge_notifier, Konsierge::Notifier::Mailer
|
4
|
+
|
5
|
+
Konsierge::Notifier::Mailer.configure do |config|
|
6
|
+
config.smtp_mailer_host = ENV.fetch('KONSIERGE_SMTP_MAILER_HOST', nil)
|
7
|
+
config.smtp_mailer_auth_key = ENV.fetch('KONSIERGE_SMTP_MAILER_AUTH_KEY', nil)
|
8
|
+
end
|
@@ -0,0 +1,8 @@
|
|
1
|
+
<b><%= CGI.escape_html(app_name.to_s) %></b>
|
2
|
+
<% "\n" %>
|
3
|
+
<b>Error</b>: <%= CGI.escape_html(error.class.to_s) %> - <%= CGI.escape_html(error.message.to_s) %>
|
4
|
+
<% "\n" %>
|
5
|
+
<b>Source</b>: <%= CGI.escape_html(source.to_s) %>
|
6
|
+
<% "\n" %>
|
7
|
+
<b>Trace:</b>
|
8
|
+
<%= error.backtrace[0..2].flatten.map { |trace| "===> #{CGI.escape_html(trace.to_s)}" }.join("\n") %>
|
@@ -0,0 +1,98 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'dry-configurable'
|
4
|
+
require 'logger'
|
5
|
+
require 'telegram/bot'
|
6
|
+
|
7
|
+
module Konsierge
|
8
|
+
class Notifier
|
9
|
+
extend ::Dry::Configurable
|
10
|
+
|
11
|
+
setting :app_name
|
12
|
+
setting :chat_id, default: ENV.fetch('TELEGRAM_CHANNEL_ID', nil)
|
13
|
+
setting :bot_enabled, default: ENV.fetch('TELEGRAM_BOT_ENABLED', false)
|
14
|
+
setting :message_template_path, default: File.expand_path('notifier/template.html.erb', __dir__)
|
15
|
+
setting :error_template_path, default: File.expand_path('notifier/error_template.html.erb', __dir__)
|
16
|
+
setting :logger, default: Logger.new($stdout)
|
17
|
+
setting :parse_mode, default: 'HTML'
|
18
|
+
|
19
|
+
VERSION = '0.1.2'
|
20
|
+
|
21
|
+
TELEGRAM_CHAT_ID_NOT_SET = 'Telegram Chat ID is not set'
|
22
|
+
TELEGRAM_BOT_ERROR = 'TelegramBot Error: %s'
|
23
|
+
TELEGRAM_BOT_DISABLED = 'TelegramBot is disabled! Message not sent.'
|
24
|
+
PATH_OR_CHAT_ID_NOT_PROVIDED = 'Please, provide path and chat_id'
|
25
|
+
|
26
|
+
class << self
|
27
|
+
def send_message(text, chat_id: nil)
|
28
|
+
send_with_message_template(
|
29
|
+
path: config.message_template_path,
|
30
|
+
chat_id: chat_id,
|
31
|
+
app_name: config.app_name,
|
32
|
+
message: text
|
33
|
+
)
|
34
|
+
end
|
35
|
+
|
36
|
+
def report_error(error, source: nil, chat_id: nil)
|
37
|
+
send_with_message_template(
|
38
|
+
path: config.error_template_path,
|
39
|
+
chat_id: chat_id,
|
40
|
+
app_name: config.app_name,
|
41
|
+
error: error,
|
42
|
+
source: source
|
43
|
+
)
|
44
|
+
end
|
45
|
+
|
46
|
+
alias send_error report_error
|
47
|
+
|
48
|
+
private
|
49
|
+
|
50
|
+
def send_with_message_template(**options)
|
51
|
+
return log_disabled_bot_warning unless bot_enabled?
|
52
|
+
|
53
|
+
opts = sanitize_template_options!(options)
|
54
|
+
chat_id = check_chat_id!(opts[:chat_id])
|
55
|
+
|
56
|
+
template = ERB.new(File.read(opts[:path]))
|
57
|
+
|
58
|
+
template_params = opts.except(:path, :chat_id)
|
59
|
+
message = template.result_with_hash(template_params)
|
60
|
+
|
61
|
+
send_to_telegram(message, chat_id: chat_id)
|
62
|
+
end
|
63
|
+
|
64
|
+
def send_to_telegram(text, chat_id:)
|
65
|
+
::Telegram.bot.send_message(chat_id: chat_id, text: text, parse_mode: config.parse_mode)
|
66
|
+
|
67
|
+
true
|
68
|
+
rescue StandardError => e
|
69
|
+
config.logger.error(TELEGRAM_BOT_ERROR % e.message)
|
70
|
+
false
|
71
|
+
end
|
72
|
+
|
73
|
+
def sanitize_template_options!(options)
|
74
|
+
opts = options.dup
|
75
|
+
raise ArgumentError, PATH_OR_CHAT_ID_NOT_PROVIDED unless %i[path chat_id].all? { |key| opts.key?(key) }
|
76
|
+
|
77
|
+
opts
|
78
|
+
end
|
79
|
+
|
80
|
+
def check_chat_id!(chat_id)
|
81
|
+
chat_id ||= config.chat_id
|
82
|
+
|
83
|
+
raise TELEGRAM_CHAT_ID_NOT_SET unless chat_id
|
84
|
+
|
85
|
+
chat_id
|
86
|
+
end
|
87
|
+
|
88
|
+
def bot_enabled?
|
89
|
+
config.bot_enabled
|
90
|
+
end
|
91
|
+
|
92
|
+
def log_disabled_bot_warning
|
93
|
+
config.logger.warn(TELEGRAM_BOT_DISABLED)
|
94
|
+
false
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module Konsierge
|
2
|
+
module Notifier
|
3
|
+
class Mailer
|
4
|
+
@connection: ::Faraday::Connection
|
5
|
+
|
6
|
+
def initialize: (*untyped, **untyped) -> void
|
7
|
+
|
8
|
+
def configure: -> void
|
9
|
+
|
10
|
+
def config: -> ::Dry::Configurable::Config
|
11
|
+
|
12
|
+
def deliver!: (::Mail mail) -> void
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def build_payload: (::Mail mail) -> Hash[Symbol, Object]
|
17
|
+
|
18
|
+
def check_config!: -> void
|
19
|
+
|
20
|
+
def connection: -> ::Faraday::Connection
|
21
|
+
|
22
|
+
def determine_body: (::Mail mail) -> String
|
23
|
+
|
24
|
+
def process_attachments: (Array[untyped] attachments) -> Array[::Faraday::Multipart::FilePart]
|
25
|
+
|
26
|
+
def with_error_handle: -> void
|
27
|
+
|
28
|
+
def with_temp_file_deletion: -> void
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module Konsierge
|
2
|
+
module Notifier
|
3
|
+
class Telegram
|
4
|
+
TELEGRAM_CHAT_ID_NOT_SET: String
|
5
|
+
TELEGRAM_BOT_ERROR: String
|
6
|
+
TELEGRAM_BOT_DISABLED: String
|
7
|
+
PATH_OR_CHAT_ID_NOT_PROVIDED: String
|
8
|
+
|
9
|
+
def self.send_message: (String) -> bool
|
10
|
+
|
11
|
+
def self.report_error: (Exception, source?: String) -> bool
|
12
|
+
|
13
|
+
def self.send_error: (Exception, source?: String) -> bool
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
def self.send_with_message_template: (Hash[Symbol, String]) -> bool
|
18
|
+
|
19
|
+
def self.sanitize_template_options!: (Hash[Symbol, String]) -> Hash[Symbol, String]
|
20
|
+
|
21
|
+
def self.check_chat_id!: (String | NilClass) -> String
|
22
|
+
|
23
|
+
def self.send_to_telegram: (String, chat_id?: String) -> bool
|
24
|
+
|
25
|
+
def self.bot_enabled?: () -> bool
|
26
|
+
|
27
|
+
def self.log_disabled_bot_warning: () -> false
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
data/sig/konsierge.rbs
ADDED
metadata
ADDED
@@ -0,0 +1,206 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: konsierge-notifier
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.2
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- David Rybolovlev
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2025-02-21 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: dotenv
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '2.7'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '2.7'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: dry-configurable
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: telegram-bot
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 0.16.1
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 0.16.1
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: bundler
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '2.0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '2.0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rspec
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '3.10'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '3.10'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rspec-mocks
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '3.10'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '3.10'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rubocop
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '1.60'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '1.60'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: rubocop-performance
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '1.11'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '1.11'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: rubocop-rspec
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '2.11'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '2.11'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: simplecov
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - "~>"
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0.22'
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - "~>"
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0.22'
|
153
|
+
description: Notifier for Konsierge.
|
154
|
+
email:
|
155
|
+
- golifox911@gmail.com
|
156
|
+
executables:
|
157
|
+
- konsierge-notifier
|
158
|
+
extensions: []
|
159
|
+
extra_rdoc_files: []
|
160
|
+
files:
|
161
|
+
- ".env.sample"
|
162
|
+
- ".rspec"
|
163
|
+
- ".rubocop.yml"
|
164
|
+
- CHANGELOG.md
|
165
|
+
- README.md
|
166
|
+
- Rakefile
|
167
|
+
- exe/konsierge-notifier
|
168
|
+
- konsierge-notifier.gemspec
|
169
|
+
- lib/generators/install/konsierge_notifier.rb
|
170
|
+
- lib/generators/install/templates/error_template.html.erb
|
171
|
+
- lib/generators/install/templates/konsierge_notifier_telegram.rb
|
172
|
+
- lib/generators/install/templates/template.html.erb
|
173
|
+
- lib/generators/konsierge/notifier/mailer/install_generator.rb
|
174
|
+
- lib/generators/konsierge/notifier/mailer/templates/README
|
175
|
+
- lib/generators/konsierge/notifier/mailer/templates/initializer.rb
|
176
|
+
- lib/konsierge/notifier.rb
|
177
|
+
- lib/konsierge/notifier/error_template.html.erb
|
178
|
+
- lib/konsierge/notifier/template.html.erb
|
179
|
+
- sig/konsierge.rbs
|
180
|
+
- sig/konsierge/notifier/mailer.rbs
|
181
|
+
- sig/konsierge/notifier/telegram.rbs
|
182
|
+
homepage:
|
183
|
+
licenses: []
|
184
|
+
metadata:
|
185
|
+
source_code_uri: https://gitlab.konsierge.com/digitalbox/gem/konsierge-notifier
|
186
|
+
rubygems_mfa_required: 'true'
|
187
|
+
post_install_message:
|
188
|
+
rdoc_options: []
|
189
|
+
require_paths:
|
190
|
+
- lib
|
191
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
192
|
+
requirements:
|
193
|
+
- - ">="
|
194
|
+
- !ruby/object:Gem::Version
|
195
|
+
version: 2.7.4
|
196
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
197
|
+
requirements:
|
198
|
+
- - ">="
|
199
|
+
- !ruby/object:Gem::Version
|
200
|
+
version: '0'
|
201
|
+
requirements: []
|
202
|
+
rubygems_version: 3.1.6
|
203
|
+
signing_key:
|
204
|
+
specification_version: 4
|
205
|
+
summary: Notifier for Konsierge.
|
206
|
+
test_files: []
|