rumble 0.7.0 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.0pdd.yml +20 -0
- data/.github/workflows/actionlint.yml +42 -0
- data/.github/workflows/codecov.yml +30 -9
- data/.github/workflows/copyrights.yml +31 -0
- data/.github/workflows/markdown-lint.yml +39 -0
- data/.github/workflows/pdd.yml +35 -0
- data/.github/workflows/rake.yml +28 -8
- data/.github/workflows/xcop.yml +31 -0
- data/.github/workflows/yamllint.yml +35 -0
- data/.gitignore +2 -1
- data/.rubocop.yml +28 -1
- data/.rultor.yml +24 -7
- data/.simplecov +1 -1
- data/Gemfile +17 -1
- data/Gemfile.lock +314 -0
- data/LICENSE.txt +1 -1
- data/README.md +13 -12
- data/Rakefile +6 -17
- data/bin/rumble +25 -35
- data/cucumber.yml +20 -0
- data/features/step_definitions/steps.rb +2 -2
- data/features/support/env.rb +1 -1
- data/lib/rumble/cli.rb +10 -9
- data/lib/rumble/version.rb +3 -3
- data/lib/rumble.rb +2 -2
- data/logo.svg +1 -1
- data/renovate.json +6 -0
- data/rumble.gemspec +11 -17
- data/test/test__helper.rb +4 -6
- data/test/test_rumble.rb +126 -4
- metadata +44 -122
- data/.github/ISSUE_TEMPLATE.md +0 -12
- data/.github/PULL_REQUEST_TEMPLATE.md +0 -11
data/rumble.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
# Copyright (c) 2018-
|
3
|
+
# Copyright (c) 2018-2025 Yegor Bugayenko
|
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
|
@@ -27,7 +27,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
27
27
|
require_relative 'lib/rumble/version'
|
28
28
|
Gem::Specification.new do |s|
|
29
29
|
s.required_rubygems_version = Gem::Requirement.new('>= 0') if s.respond_to? :required_rubygems_version=
|
30
|
-
s.required_ruby_version = '>=
|
30
|
+
s.required_ruby_version = '>= 3.0'
|
31
31
|
s.name = 'rumble'
|
32
32
|
s.version = Rumble::VERSION
|
33
33
|
s.license = 'MIT'
|
@@ -40,20 +40,14 @@ Gem::Specification.new do |s|
|
|
40
40
|
s.executables = s.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
41
41
|
s.rdoc_options = ['--charset=UTF-8']
|
42
42
|
s.extra_rdoc_files = ['README.md', 'LICENSE.txt']
|
43
|
-
s.
|
44
|
-
s.
|
45
|
-
s.
|
46
|
-
s.
|
47
|
-
s.
|
48
|
-
s.
|
49
|
-
s.
|
50
|
-
s.
|
51
|
-
s.
|
52
|
-
s.add_development_dependency 'minitest', '5.16.1'
|
53
|
-
s.add_development_dependency 'rake', '13.0.6'
|
54
|
-
s.add_development_dependency 'rdoc', '6.4.0'
|
55
|
-
s.add_development_dependency 'rspec-rails', '5.1.2'
|
56
|
-
s.add_development_dependency 'rubocop', '1.31.1'
|
57
|
-
s.add_development_dependency 'rubocop-rspec', '2.11.1'
|
43
|
+
s.add_dependency 'liquid', '5.5.0'
|
44
|
+
s.add_dependency 'mail', '2.8.1'
|
45
|
+
s.add_dependency 'net-smtp', '0.5.0'
|
46
|
+
s.add_dependency 'net-smtp-proxy', '2.0.0'
|
47
|
+
s.add_dependency 'openssl', '~>3.0'
|
48
|
+
s.add_dependency 'rainbow', '3.1.1'
|
49
|
+
s.add_dependency 'redcarpet', '3.6.0'
|
50
|
+
s.add_dependency 'slop', '4.10.1'
|
51
|
+
s.add_dependency 'uuidtools', '2.2.0'
|
58
52
|
s.metadata['rubygems_mfa_required'] = 'true'
|
59
53
|
end
|
data/test/test__helper.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
# Copyright (c) 2018-
|
3
|
+
# Copyright (c) 2018-2025 Yegor Bugayenko
|
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
|
@@ -24,10 +24,8 @@ $stdout.sync = true
|
|
24
24
|
|
25
25
|
require 'simplecov'
|
26
26
|
SimpleCov.start
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
end
|
27
|
+
|
28
|
+
require 'simplecov-cobertura'
|
29
|
+
SimpleCov.formatter = SimpleCov::Formatter::CoberturaFormatter
|
31
30
|
|
32
31
|
require 'minitest/autorun'
|
33
|
-
require_relative '../lib/rumble'
|
data/test/test_rumble.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
# Copyright (c) 2018-
|
3
|
+
# Copyright (c) 2018-2025 Yegor Bugayenko
|
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
|
@@ -21,18 +21,22 @@
|
|
21
21
|
# SOFTWARE.
|
22
22
|
|
23
23
|
require 'minitest/autorun'
|
24
|
-
require '
|
24
|
+
require 'os'
|
25
|
+
require 'qbash'
|
26
|
+
require 'random-port'
|
27
|
+
require 'shellwords'
|
25
28
|
require 'slop'
|
29
|
+
require 'tmpdir'
|
26
30
|
require_relative '../lib/rumble'
|
27
31
|
require_relative '../lib/rumble/cli'
|
28
32
|
|
29
33
|
# Rumble main module test.
|
30
34
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
31
|
-
# Copyright:: Copyright (c) 2018-
|
35
|
+
# Copyright:: Copyright (c) 2018-2025 Yegor Bugayenko
|
32
36
|
# License:: MIT
|
33
37
|
class TestRumble < Minitest::Test
|
34
38
|
def test_basic
|
35
|
-
Dir.mktmpdir
|
39
|
+
Dir.mktmpdir do |dir|
|
36
40
|
letter = File.join(dir, 'letter.liquid')
|
37
41
|
File.write(letter, 'Hi {{first}}, how are you?')
|
38
42
|
Rumble::CLI.new(
|
@@ -44,4 +48,122 @@ class TestRumble < Minitest::Test
|
|
44
48
|
).send
|
45
49
|
end
|
46
50
|
end
|
51
|
+
|
52
|
+
def test_with_mailhog
|
53
|
+
skip('Works only on Ubuntu') if OS.mac? || OS.windows?
|
54
|
+
Dir.mktmpdir do |home|
|
55
|
+
flag = File.join(home, 'sent.txt')
|
56
|
+
letter = File.join(home, 'letter.liquid')
|
57
|
+
File.write(letter, 'Hi!')
|
58
|
+
host = 'localhost'
|
59
|
+
RandomPort::Pool::SINGLETON.acquire(2) do |smtp, http|
|
60
|
+
daemon("#{docker} run --rm -p #{smtp}:1025 -p #{http}:8025 mailhog/mailhog", flag)
|
61
|
+
wait_for(host, http)
|
62
|
+
qbash(
|
63
|
+
[
|
64
|
+
Shellwords.escape(File.join(__dir__, '../bin/rumble')),
|
65
|
+
'--method=smtp',
|
66
|
+
'--port', smtp,
|
67
|
+
'--host', host,
|
68
|
+
'--user=foo', '--password=foo',
|
69
|
+
'--subject', 'testing',
|
70
|
+
'--test', 'to@example.com',
|
71
|
+
'--from', Shellwords.escape('tester <from@example.com>'),
|
72
|
+
'--letter', Shellwords.escape(letter)
|
73
|
+
]
|
74
|
+
)
|
75
|
+
FileUtils.touch(flag)
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
def test_with_mailhog_with_tls
|
81
|
+
skip('Works only on Ubuntu') if OS.mac? || OS.windows?
|
82
|
+
Dir.mktmpdir do |home|
|
83
|
+
flag = File.join(home, 'sent.txt')
|
84
|
+
letter = File.join(home, 'letter.liquid')
|
85
|
+
File.write(letter, 'Hi!')
|
86
|
+
host = 'localhost'
|
87
|
+
certs = File.join(home, 'certs')
|
88
|
+
FileUtils.mkdir_p(certs)
|
89
|
+
qbash("openssl genrsa -out #{Shellwords.escape(File.join(certs, 'key.pem'))} 2048", log: $stdout)
|
90
|
+
qbash(
|
91
|
+
[
|
92
|
+
'openssl req -x509 -new -nodes',
|
93
|
+
"-key #{Shellwords.escape(File.join(certs, 'key.pem'))}",
|
94
|
+
'-sha256 -days 1024',
|
95
|
+
"-out #{Shellwords.escape(File.join(certs, 'cert.pem'))}",
|
96
|
+
'-subj "/C=US/ST=State/L=City/O=Organization/CN=localhost"'
|
97
|
+
],
|
98
|
+
log: $stdout
|
99
|
+
)
|
100
|
+
RandomPort::Pool::SINGLETON.acquire(2) do |smtp, http|
|
101
|
+
daemon(
|
102
|
+
[
|
103
|
+
"#{docker} run --rm",
|
104
|
+
"-p #{smtp}:1025",
|
105
|
+
"-p #{http}:8025",
|
106
|
+
"-v #{Shellwords.escape(certs)}:/etc/certs",
|
107
|
+
'-e MH_TLS_BIND_ADDR=:1025',
|
108
|
+
'-e MH_STORAGE=maildir',
|
109
|
+
'-e MH_MAILDIR_PATH=/tmp/mailhog',
|
110
|
+
'-e MH_TLS_CERT_FILE=/etc/certs/cert.pem',
|
111
|
+
'-e MH_TLS_PRIV_KEY=/etc/certs/key.pem',
|
112
|
+
'mailhog/mailhog'
|
113
|
+
],
|
114
|
+
flag
|
115
|
+
)
|
116
|
+
wait_for(host, http)
|
117
|
+
qbash(
|
118
|
+
[
|
119
|
+
Shellwords.escape(File.join(__dir__, '../bin/rumble')),
|
120
|
+
'--method=smtp',
|
121
|
+
'--port', smtp,
|
122
|
+
'--host', host,
|
123
|
+
'--tls',
|
124
|
+
'--user=foo', '--password=foo',
|
125
|
+
'--subject', 'testing',
|
126
|
+
'--test', 'to@example.com',
|
127
|
+
'--from', Shellwords.escape('tester <from@example.com>'),
|
128
|
+
'--letter', Shellwords.escape(letter)
|
129
|
+
]
|
130
|
+
)
|
131
|
+
FileUtils.touch(flag)
|
132
|
+
end
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
136
|
+
private
|
137
|
+
|
138
|
+
def docker
|
139
|
+
if ENV['DOCKER_SUDO'] == 'true'
|
140
|
+
'sudo docker'
|
141
|
+
else
|
142
|
+
'docker'
|
143
|
+
end
|
144
|
+
end
|
145
|
+
|
146
|
+
def wait_for(host, port)
|
147
|
+
start = Time.now
|
148
|
+
loop do
|
149
|
+
TCPSocket.new(host, port).close
|
150
|
+
break
|
151
|
+
rescue Errno::ECONNREFUSED => e
|
152
|
+
sleep(1)
|
153
|
+
puts "Waiting for mailhog at #{host}:#{port}: #{e.message}"
|
154
|
+
raise e if Time.now - start > 120
|
155
|
+
retry
|
156
|
+
end
|
157
|
+
end
|
158
|
+
|
159
|
+
def daemon(cmd, flag)
|
160
|
+
Thread.new do
|
161
|
+
qbash(cmd, log: $stdout) do |pid|
|
162
|
+
loop do
|
163
|
+
break if File.exist?(flag)
|
164
|
+
end
|
165
|
+
Process.kill('KILL', pid)
|
166
|
+
end
|
167
|
+
end
|
168
|
+
end
|
47
169
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rumble
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yegor Bugayenko
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2025-02-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: liquid
|
@@ -16,210 +16,126 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 5.
|
19
|
+
version: 5.5.0
|
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: 5.
|
26
|
+
version: 5.5.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: mail
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - '='
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 2.
|
33
|
+
version: 2.8.1
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - '='
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 2.
|
40
|
+
version: 2.8.1
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name: net-smtp
|
42
|
+
name: net-smtp
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - '='
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: 0.5.0
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - '='
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
54
|
+
version: 0.5.0
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: net-smtp-proxy
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - '='
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: 2.0.0
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - '='
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
68
|
+
version: 2.0.0
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
70
|
+
name: openssl
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: 3.
|
75
|
+
version: '3.0'
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: 3.
|
82
|
+
version: '3.0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
84
|
+
name: rainbow
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
87
|
- - '='
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version:
|
89
|
+
version: 3.1.1
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - '='
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version:
|
96
|
+
version: 3.1.1
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
98
|
+
name: redcarpet
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
101
|
- - '='
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version:
|
103
|
+
version: 3.6.0
|
104
104
|
type: :runtime
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
108
|
- - '='
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version:
|
111
|
-
- !ruby/object:Gem::Dependency
|
112
|
-
name: codecov
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
114
|
-
requirements:
|
115
|
-
- - '='
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: 0.6.0
|
118
|
-
type: :development
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
requirements:
|
122
|
-
- - '='
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
version: 0.6.0
|
125
|
-
- !ruby/object:Gem::Dependency
|
126
|
-
name: cucumber
|
127
|
-
requirement: !ruby/object:Gem::Requirement
|
128
|
-
requirements:
|
129
|
-
- - '='
|
130
|
-
- !ruby/object:Gem::Version
|
131
|
-
version: 8.0.0
|
132
|
-
type: :development
|
133
|
-
prerelease: false
|
134
|
-
version_requirements: !ruby/object:Gem::Requirement
|
135
|
-
requirements:
|
136
|
-
- - '='
|
137
|
-
- !ruby/object:Gem::Version
|
138
|
-
version: 8.0.0
|
139
|
-
- !ruby/object:Gem::Dependency
|
140
|
-
name: minitest
|
141
|
-
requirement: !ruby/object:Gem::Requirement
|
142
|
-
requirements:
|
143
|
-
- - '='
|
144
|
-
- !ruby/object:Gem::Version
|
145
|
-
version: 5.16.1
|
146
|
-
type: :development
|
147
|
-
prerelease: false
|
148
|
-
version_requirements: !ruby/object:Gem::Requirement
|
149
|
-
requirements:
|
150
|
-
- - '='
|
151
|
-
- !ruby/object:Gem::Version
|
152
|
-
version: 5.16.1
|
153
|
-
- !ruby/object:Gem::Dependency
|
154
|
-
name: rake
|
155
|
-
requirement: !ruby/object:Gem::Requirement
|
156
|
-
requirements:
|
157
|
-
- - '='
|
158
|
-
- !ruby/object:Gem::Version
|
159
|
-
version: 13.0.6
|
160
|
-
type: :development
|
161
|
-
prerelease: false
|
162
|
-
version_requirements: !ruby/object:Gem::Requirement
|
163
|
-
requirements:
|
164
|
-
- - '='
|
165
|
-
- !ruby/object:Gem::Version
|
166
|
-
version: 13.0.6
|
110
|
+
version: 3.6.0
|
167
111
|
- !ruby/object:Gem::Dependency
|
168
|
-
name:
|
169
|
-
requirement: !ruby/object:Gem::Requirement
|
170
|
-
requirements:
|
171
|
-
- - '='
|
172
|
-
- !ruby/object:Gem::Version
|
173
|
-
version: 6.4.0
|
174
|
-
type: :development
|
175
|
-
prerelease: false
|
176
|
-
version_requirements: !ruby/object:Gem::Requirement
|
177
|
-
requirements:
|
178
|
-
- - '='
|
179
|
-
- !ruby/object:Gem::Version
|
180
|
-
version: 6.4.0
|
181
|
-
- !ruby/object:Gem::Dependency
|
182
|
-
name: rspec-rails
|
183
|
-
requirement: !ruby/object:Gem::Requirement
|
184
|
-
requirements:
|
185
|
-
- - '='
|
186
|
-
- !ruby/object:Gem::Version
|
187
|
-
version: 5.1.2
|
188
|
-
type: :development
|
189
|
-
prerelease: false
|
190
|
-
version_requirements: !ruby/object:Gem::Requirement
|
191
|
-
requirements:
|
192
|
-
- - '='
|
193
|
-
- !ruby/object:Gem::Version
|
194
|
-
version: 5.1.2
|
195
|
-
- !ruby/object:Gem::Dependency
|
196
|
-
name: rubocop
|
112
|
+
name: slop
|
197
113
|
requirement: !ruby/object:Gem::Requirement
|
198
114
|
requirements:
|
199
115
|
- - '='
|
200
116
|
- !ruby/object:Gem::Version
|
201
|
-
version:
|
202
|
-
type: :
|
117
|
+
version: 4.10.1
|
118
|
+
type: :runtime
|
203
119
|
prerelease: false
|
204
120
|
version_requirements: !ruby/object:Gem::Requirement
|
205
121
|
requirements:
|
206
122
|
- - '='
|
207
123
|
- !ruby/object:Gem::Version
|
208
|
-
version:
|
124
|
+
version: 4.10.1
|
209
125
|
- !ruby/object:Gem::Dependency
|
210
|
-
name:
|
126
|
+
name: uuidtools
|
211
127
|
requirement: !ruby/object:Gem::Requirement
|
212
128
|
requirements:
|
213
129
|
- - '='
|
214
130
|
- !ruby/object:Gem::Version
|
215
|
-
version: 2.
|
216
|
-
type: :
|
131
|
+
version: 2.2.0
|
132
|
+
type: :runtime
|
217
133
|
prerelease: false
|
218
134
|
version_requirements: !ruby/object:Gem::Requirement
|
219
135
|
requirements:
|
220
136
|
- - '='
|
221
137
|
- !ruby/object:Gem::Version
|
222
|
-
version: 2.
|
138
|
+
version: 2.2.0
|
223
139
|
description: Sends newsletters to recipients
|
224
140
|
email: yegor256@gmail.com
|
225
141
|
executables:
|
@@ -231,16 +147,21 @@ extra_rdoc_files:
|
|
231
147
|
files:
|
232
148
|
- ".0pdd.yml"
|
233
149
|
- ".gitattributes"
|
234
|
-
- ".github/
|
235
|
-
- ".github/PULL_REQUEST_TEMPLATE.md"
|
150
|
+
- ".github/workflows/actionlint.yml"
|
236
151
|
- ".github/workflows/codecov.yml"
|
152
|
+
- ".github/workflows/copyrights.yml"
|
153
|
+
- ".github/workflows/markdown-lint.yml"
|
154
|
+
- ".github/workflows/pdd.yml"
|
237
155
|
- ".github/workflows/rake.yml"
|
156
|
+
- ".github/workflows/xcop.yml"
|
157
|
+
- ".github/workflows/yamllint.yml"
|
238
158
|
- ".gitignore"
|
239
159
|
- ".pdd"
|
240
160
|
- ".rubocop.yml"
|
241
161
|
- ".rultor.yml"
|
242
162
|
- ".simplecov"
|
243
163
|
- Gemfile
|
164
|
+
- Gemfile.lock
|
244
165
|
- LICENSE.txt
|
245
166
|
- README.md
|
246
167
|
- Rakefile
|
@@ -254,6 +175,7 @@ files:
|
|
254
175
|
- lib/rumble/cli.rb
|
255
176
|
- lib/rumble/version.rb
|
256
177
|
- logo.svg
|
178
|
+
- renovate.json
|
257
179
|
- rumble.gemspec
|
258
180
|
- test/test__helper.rb
|
259
181
|
- test/test_rumble.rb
|
@@ -262,7 +184,7 @@ licenses:
|
|
262
184
|
- MIT
|
263
185
|
metadata:
|
264
186
|
rubygems_mfa_required: 'true'
|
265
|
-
post_install_message:
|
187
|
+
post_install_message:
|
266
188
|
rdoc_options:
|
267
189
|
- "--charset=UTF-8"
|
268
190
|
require_paths:
|
@@ -271,15 +193,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
271
193
|
requirements:
|
272
194
|
- - ">="
|
273
195
|
- !ruby/object:Gem::Version
|
274
|
-
version: '
|
196
|
+
version: '3.0'
|
275
197
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
276
198
|
requirements:
|
277
199
|
- - ">="
|
278
200
|
- !ruby/object:Gem::Version
|
279
201
|
version: '0'
|
280
202
|
requirements: []
|
281
|
-
rubygems_version: 3.
|
282
|
-
signing_key:
|
203
|
+
rubygems_version: 3.4.10
|
204
|
+
signing_key:
|
283
205
|
specification_version: 4
|
284
206
|
summary: Command Line Newsletter Sending Tool
|
285
207
|
test_files: []
|
data/.github/ISSUE_TEMPLATE.md
DELETED
@@ -1,12 +0,0 @@
|
|
1
|
-
Make sure the title of the issue explains the problem you are having. Also, the description of the issue must clearly explain what is broken, not what you want us to implement. Go through this checklist and make sure you answer "YES" to all points:
|
2
|
-
|
3
|
-
- You have all pre-requisites listed in README.md installed
|
4
|
-
- You are sure that you are not reporting a duplicate (search all issues)
|
5
|
-
- You say "is broken" or "doesn't work" in the title
|
6
|
-
- You tell us what you are trying to do
|
7
|
-
- You explain the results you are getting
|
8
|
-
- You suggest an alternative result you would like to see
|
9
|
-
|
10
|
-
This article will help you understand what we are looking for: http://www.yegor256.com/2014/11/24/principles-of-bug-tracking.html
|
11
|
-
|
12
|
-
Thank you for your contribution!
|
@@ -1,11 +0,0 @@
|
|
1
|
-
Many thanks for your contribution, we truly appreciate it. We will appreciate it even more, if you make sure that you can say "YES" to each point in this short checklist:
|
2
|
-
|
3
|
-
- You made a small amount of changes (less than 100 lines, less than 10 files)
|
4
|
-
- You made changes related to only one bug (create separate PRs for separate problems)
|
5
|
-
- You are ready to defend your changes (there will be a code review)
|
6
|
-
- You don't touch what you don't understand
|
7
|
-
- You ran the build locally and it passed
|
8
|
-
|
9
|
-
This article will help you understand what we are looking for: http://www.yegor256.com/2015/02/09/serious-code-reviewer.html
|
10
|
-
|
11
|
-
Thank you for your contribution!
|