lolcommits 0.17.2 → 0.17.3
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/{build.yml → ci.yml} +29 -24
- data/.gitignore +2 -0
- data/.quickhook/pre-commit/ruby-lint +3 -0
- data/.rubocop.yml +309 -9
- data/CHANGELOG.md +45 -234
- data/CODE_OF_CONDUCT.md +10 -12
- data/Gemfile +4 -2
- data/README.md +14 -26
- data/Rakefile +11 -48
- data/bin/cucumber +25 -0
- data/bin/lolcommits +2 -12
- data/bin/rubocop +25 -0
- data/features/step_definitions/lolcommits_steps.rb +0 -2
- data/features/support/env.rb +1 -3
- data/features/support/path_helpers.rb +2 -4
- data/lib/core_ext/mercurial-ruby/changed_file.rb +1 -3
- data/lib/core_ext/mercurial-ruby/command.rb +2 -4
- data/lib/core_ext/mercurial-ruby/config_file.rb +0 -2
- data/lib/core_ext/mercurial-ruby/repository.rb +0 -2
- data/lib/core_ext/mercurial-ruby/shell.rb +1 -3
- data/lib/lolcommits/animated_gif.rb +12 -7
- data/lib/lolcommits/backends/git_info.rb +6 -8
- data/lib/lolcommits/backends/installation_git.rb +8 -10
- data/lib/lolcommits/backends/installation_mercurial.rb +8 -10
- data/lib/lolcommits/backends/mercurial_info.rb +9 -11
- data/lib/lolcommits/capturer/capture_cygwin.rb +0 -2
- data/lib/lolcommits/capturer/capture_fake.rb +2 -4
- data/lib/lolcommits/capturer/capture_linux.rb +4 -6
- data/lib/lolcommits/capturer/capture_linux_video.rb +1 -3
- data/lib/lolcommits/capturer/capture_mac.rb +2 -4
- data/lib/lolcommits/capturer/capture_mac_video.rb +1 -3
- data/lib/lolcommits/capturer/capture_windows.rb +2 -4
- data/lib/lolcommits/capturer/capture_windows_video.rb +5 -7
- data/lib/lolcommits/capturer.rb +9 -12
- data/lib/lolcommits/cli/fatals.rb +11 -16
- data/lib/lolcommits/cli/launcher.rb +1 -3
- data/lib/lolcommits/cli/process_runner.rb +2 -4
- data/lib/lolcommits/cli/timelapse_gif.rb +7 -9
- data/lib/lolcommits/cli.rb +6 -6
- data/lib/lolcommits/configuration.rb +32 -36
- data/lib/lolcommits/gem_plugin.rb +5 -7
- data/lib/lolcommits/installation.rb +5 -7
- data/lib/lolcommits/platform.rb +14 -18
- data/lib/lolcommits/plugin/base.rb +4 -8
- data/lib/lolcommits/plugin/configuration_helper.rb +4 -6
- data/lib/lolcommits/plugin_manager.rb +1 -3
- data/lib/lolcommits/runner.rb +16 -21
- data/lib/lolcommits/test_helpers/fake_io.rb +0 -2
- data/lib/lolcommits/test_helpers/git_repo.rb +3 -5
- data/lib/lolcommits/vcs_info.rb +2 -4
- data/lib/lolcommits/version.rb +1 -3
- data/lib/lolcommits.rb +26 -30
- data/lolcommits.gemspec +23 -24
- data/test/permissions_test.rb +7 -9
- data/test/test_helper.rb +2 -4
- metadata +62 -53
- data/.gitattributes +0 -1
- data/.github/workflows/push_gem.yml +0 -25
- data/.rubocop_todo.yml +0 -97
- data/.travis.yml +0 -45
- data/bin/console +0 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8d8e9cff0aadf2b23edaba08d06365120f9df98f30b8fab33e045c77366e5f6b
|
4
|
+
data.tar.gz: a89d150bc79d4f06a9d4a1b0f56bae48d82f4f743546dba98058d56950709899
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 80656983ff03c1ad1bfbdb624dd2393b403e2fdc3bfc7ac2d0898eebc377433cf98b64a3d3a97b08d0197662e00942419a07fbb5d5ce53f154db58ba59c16af3
|
7
|
+
data.tar.gz: cbd743c08d7cbb9d34b2bcaeb1e787ea274c41d64efd7f670333861e69363b7ac0bc810e0a6bba4f8cfdf80ed9dbfd9edd069a4730e9d33f5508405e73bf5635
|
@@ -1,46 +1,51 @@
|
|
1
|
-
name:
|
1
|
+
name: CI
|
2
2
|
|
3
3
|
on:
|
4
4
|
push:
|
5
|
-
branches:
|
5
|
+
branches:
|
6
|
+
- main
|
6
7
|
pull_request:
|
7
|
-
branches:
|
8
|
-
|
9
|
-
permissions:
|
10
|
-
contents: read
|
11
|
-
|
8
|
+
branches:
|
9
|
+
- main
|
12
10
|
jobs:
|
13
|
-
|
11
|
+
rubocop:
|
12
|
+
name: RuboCop
|
14
13
|
runs-on: ubuntu-latest
|
15
14
|
steps:
|
16
15
|
- uses: actions/checkout@v4
|
17
|
-
- name:
|
16
|
+
- name: Setup Ruby and install rubocop
|
18
17
|
uses: ruby/setup-ruby@v1
|
19
18
|
with:
|
20
|
-
ruby-version:
|
19
|
+
ruby-version: 3.4
|
21
20
|
bundler-cache: true
|
22
|
-
- name: Run
|
23
|
-
run:
|
24
|
-
|
21
|
+
- name: Run rubocop
|
22
|
+
run: bin/rubocop --parallel
|
23
|
+
tests:
|
24
|
+
name: Unit tests
|
25
25
|
runs-on: ubuntu-latest
|
26
26
|
steps:
|
27
27
|
- uses: actions/checkout@v4
|
28
|
-
- name: Set up Ruby
|
28
|
+
- name: Set up Ruby and install gems
|
29
29
|
uses: ruby/setup-ruby@v1
|
30
30
|
with:
|
31
|
-
ruby-version:
|
31
|
+
ruby-version: 3.4
|
32
32
|
bundler-cache: true
|
33
|
-
- name: Run
|
34
|
-
run: bundle exec rake
|
33
|
+
- name: Run tests
|
34
|
+
run: bundle exec rake test
|
35
35
|
features:
|
36
|
+
name: ${{ format('Features (Ruby {0})', matrix.ruby-version) }}
|
36
37
|
runs-on: ubuntu-latest
|
37
38
|
strategy:
|
38
39
|
fail-fast: false
|
39
40
|
matrix:
|
40
|
-
ruby-version:
|
41
|
+
ruby-version:
|
42
|
+
- "3.1"
|
43
|
+
- "3.2"
|
44
|
+
- "3.3"
|
45
|
+
- "3.4"
|
41
46
|
steps:
|
42
47
|
- uses: actions/checkout@v4
|
43
|
-
- name: Set up Ruby
|
48
|
+
- name: Set up Ruby and install gems
|
44
49
|
uses: ruby/setup-ruby@v1
|
45
50
|
with:
|
46
51
|
ruby-version: ${{ matrix.ruby-version }}
|
@@ -53,12 +58,12 @@ jobs:
|
|
53
58
|
uses: FedericoCarboni/setup-ffmpeg@v3
|
54
59
|
- name: Set up mplayer
|
55
60
|
run: sudo apt-get install -y mplayer
|
56
|
-
- name: Configure
|
61
|
+
- name: Configure Git
|
57
62
|
run: |
|
58
|
-
git config user.name $NAME
|
59
|
-
git config user.email $EMAIL
|
63
|
+
git config --global user.name $NAME
|
64
|
+
git config --global user.email $EMAIL
|
60
65
|
env:
|
61
66
|
NAME: "George Costanza"
|
62
67
|
EMAIL: "george.costanza@vandelay.com"
|
63
|
-
- name: Run
|
64
|
-
run:
|
68
|
+
- name: Run features
|
69
|
+
run: bin/cucumber --publish-quiet -f progress
|
data/.gitignore
CHANGED
data/.rubocop.yml
CHANGED
@@ -1,20 +1,320 @@
|
|
1
|
+
require:
|
2
|
+
- rubocop-performance
|
3
|
+
|
1
4
|
AllCops:
|
2
|
-
SuggestExtensions: false
|
3
5
|
NewCops: enable
|
4
6
|
Exclude:
|
5
|
-
- 'vendor
|
6
|
-
- '
|
7
|
-
|
8
|
-
|
9
|
-
|
7
|
+
- 'vendor/**/*'
|
8
|
+
- 'tmp/**/*'
|
9
|
+
TargetRubyVersion: 3.1
|
10
|
+
SuggestExtensions: false
|
11
|
+
|
12
|
+
Naming/InclusiveLanguage:
|
13
|
+
Enabled: true
|
14
|
+
CheckStrings: true
|
15
|
+
FlaggedTerms:
|
16
|
+
' a offense':
|
17
|
+
Suggestions:
|
18
|
+
- an offense
|
19
|
+
auto-correct:
|
20
|
+
Suggestions:
|
21
|
+
- autocorrect
|
22
|
+
auto_correct:
|
23
|
+
Suggestions:
|
24
|
+
- autocorrect
|
25
|
+
behaviour:
|
26
|
+
Suggestions:
|
27
|
+
- behavior
|
28
|
+
offence:
|
29
|
+
Suggestions:
|
30
|
+
- offense
|
31
|
+
|
32
|
+
Naming/PredicateName:
|
33
|
+
# Method define macros for dynamically generated method.
|
34
|
+
MethodDefinitionMacros:
|
35
|
+
- define_method
|
36
|
+
- define_singleton_method
|
37
|
+
- def_node_matcher
|
38
|
+
- def_node_search
|
39
|
+
|
40
|
+
Layout/HashAlignment:
|
41
|
+
EnforcedHashRocketStyle:
|
42
|
+
- key
|
43
|
+
- table
|
44
|
+
EnforcedColonStyle:
|
45
|
+
- key
|
46
|
+
- table
|
47
|
+
|
48
|
+
Layout/EndOfLine:
|
49
|
+
EnforcedStyle: lf
|
50
|
+
|
51
|
+
Layout/ClassStructure:
|
52
|
+
Enabled: true
|
53
|
+
Categories:
|
54
|
+
module_inclusion:
|
55
|
+
- include
|
56
|
+
- prepend
|
57
|
+
- extend
|
58
|
+
ExpectedOrder:
|
59
|
+
- module_inclusion
|
60
|
+
- constants
|
61
|
+
- public_class_methods
|
62
|
+
- initializer
|
63
|
+
- instance_methods
|
64
|
+
- protected_methods
|
65
|
+
- private_methods
|
66
|
+
|
67
|
+
Layout/RedundantLineBreak:
|
68
|
+
Enabled: true
|
69
|
+
|
70
|
+
Lint/UselessAccessModifier:
|
71
|
+
MethodCreatingMethods:
|
72
|
+
- 'def_matcher'
|
73
|
+
- 'def_node_matcher'
|
10
74
|
|
11
|
-
|
75
|
+
Metrics/BlockLength:
|
76
|
+
Exclude:
|
77
|
+
- 'Rakefile'
|
78
|
+
- '**/*.rake'
|
79
|
+
- '*.gemspec'
|
80
|
+
|
81
|
+
Performance/DeletePrefix:
|
82
|
+
SafeMultiline: false
|
83
|
+
|
84
|
+
Performance/DeleteSuffix:
|
85
|
+
SafeMultiline: false
|
86
|
+
|
87
|
+
inherit_mode:
|
88
|
+
merge:
|
89
|
+
- Exclude
|
90
|
+
|
91
|
+
# All cops except your using extensions are disabled by default.
|
92
|
+
Bundler:
|
93
|
+
Enabled: false
|
94
|
+
Layout:
|
95
|
+
Enabled: false
|
96
|
+
Lint:
|
97
|
+
Enabled: false
|
98
|
+
Metrics:
|
99
|
+
Enabled: false
|
100
|
+
Naming:
|
101
|
+
Enabled: false
|
102
|
+
Performance:
|
103
|
+
Enabled: false
|
104
|
+
Exclude:
|
105
|
+
- "test/**/*"
|
106
|
+
Security:
|
107
|
+
Enabled: false
|
108
|
+
Style:
|
12
109
|
Enabled: false
|
13
110
|
|
14
|
-
|
111
|
+
# Align `when` with `end`.
|
112
|
+
Layout/CaseIndentation:
|
113
|
+
Enabled: true
|
114
|
+
EnforcedStyle: end
|
115
|
+
|
116
|
+
# Align comments with method definitions.
|
117
|
+
Layout/CommentIndentation:
|
118
|
+
Enabled: true
|
119
|
+
|
120
|
+
Layout/ElseAlignment:
|
121
|
+
Enabled: true
|
122
|
+
|
123
|
+
Layout/EmptyLineAfterMagicComment:
|
124
|
+
Enabled: true
|
125
|
+
|
126
|
+
Layout/EmptyLinesAroundBlockBody:
|
127
|
+
Enabled: true
|
128
|
+
|
129
|
+
# In a regular class definition, no empty lines around the body.
|
130
|
+
Layout/EmptyLinesAroundClassBody:
|
131
|
+
Enabled: true
|
132
|
+
|
133
|
+
# In a regular method definition, no empty lines around the body.
|
134
|
+
Layout/EmptyLinesAroundMethodBody:
|
135
|
+
Enabled: true
|
136
|
+
|
137
|
+
# In a regular module definition, no empty lines around the body.
|
138
|
+
Layout/EmptyLinesAroundModuleBody:
|
139
|
+
Enabled: true
|
140
|
+
|
141
|
+
# Align `end` with the matching keyword or starting expression except for
|
142
|
+
# assignments, where it should be aligned with the LHS.
|
143
|
+
Layout/EndAlignment:
|
144
|
+
Enabled: true
|
145
|
+
EnforcedStyleAlignWith: variable
|
146
|
+
|
147
|
+
# Method definitions after `private` or `protected` isolated calls need one
|
148
|
+
# extra level of indentation.
|
149
|
+
#
|
150
|
+
# We break this rule in context, though, e.g. for private-only concerns,
|
151
|
+
# so we leave it disabled.
|
152
|
+
Layout/IndentationConsistency:
|
15
153
|
Enabled: false
|
154
|
+
EnforcedStyle: indented_internal_methods
|
155
|
+
|
156
|
+
# Detect hard tabs, no hard tabs.
|
157
|
+
Layout/IndentationStyle:
|
158
|
+
Enabled: true
|
159
|
+
|
160
|
+
# Two spaces, no tabs (for indentation).
|
161
|
+
#
|
162
|
+
# Doesn't behave properly with private-only concerns, so it's disabled.
|
163
|
+
Layout/IndentationWidth:
|
164
|
+
Enabled: false
|
165
|
+
|
166
|
+
Layout/LeadingCommentSpace:
|
167
|
+
Enabled: true
|
16
168
|
|
169
|
+
Layout/SpaceAfterColon:
|
170
|
+
Enabled: true
|
171
|
+
|
172
|
+
Layout/SpaceAfterComma:
|
173
|
+
Enabled: true
|
174
|
+
|
175
|
+
Layout/SpaceAroundEqualsInParameterDefault:
|
176
|
+
Enabled: true
|
177
|
+
|
178
|
+
Layout/SpaceAroundKeyword:
|
179
|
+
Enabled: true
|
180
|
+
|
181
|
+
# Use `foo {}` not `foo{}`.
|
182
|
+
Layout/SpaceBeforeBlockBraces:
|
183
|
+
Enabled: true
|
184
|
+
|
185
|
+
Layout/SpaceBeforeComma:
|
186
|
+
Enabled: true
|
187
|
+
|
188
|
+
Layout/SpaceBeforeFirstArg:
|
189
|
+
Enabled: true
|
190
|
+
|
191
|
+
# Use `->(x, y) { x + y }` not `-> (x, y) { x + y }`
|
192
|
+
Layout/SpaceInLambdaLiteral:
|
193
|
+
Enabled: true
|
194
|
+
|
195
|
+
# Use `[ a, [ b, c ] ]` not `[a, [b, c]]`
|
196
|
+
# Use `[]` not `[ ]`
|
197
|
+
Layout/SpaceInsideArrayLiteralBrackets:
|
198
|
+
Enabled: true
|
199
|
+
EnforcedStyle: space
|
200
|
+
EnforcedStyleForEmptyBrackets: no_space
|
201
|
+
|
202
|
+
# Use `%w[ a b ]` not `%w[ a b ]`.
|
203
|
+
Layout/SpaceInsideArrayPercentLiteral:
|
204
|
+
Enabled: true
|
205
|
+
|
206
|
+
# Use `foo { bar }` not `foo {bar}`.
|
207
|
+
# Use `foo { }` not `foo {}`.
|
208
|
+
Layout/SpaceInsideBlockBraces:
|
209
|
+
Enabled: true
|
210
|
+
EnforcedStyleForEmptyBraces: space
|
211
|
+
|
212
|
+
# Use `{ a: 1 }` not `{a:1}`.
|
213
|
+
# Use `{}` not `{ }`.
|
214
|
+
Layout/SpaceInsideHashLiteralBraces:
|
215
|
+
Enabled: true
|
216
|
+
EnforcedStyle: space
|
217
|
+
EnforcedStyleForEmptyBraces: no_space
|
218
|
+
|
219
|
+
# Use `foo(bar)` not `foo( bar )`
|
220
|
+
Layout/SpaceInsideParens:
|
221
|
+
Enabled: true
|
222
|
+
|
223
|
+
# Requiring a space is not yet supported as of 0.59.2
|
224
|
+
# Use `%w[ foo ]` not `%w[foo]`
|
17
225
|
Layout/SpaceInsidePercentLiteralDelimiters:
|
18
226
|
Enabled: false
|
227
|
+
#EnforcedStyle: space
|
228
|
+
|
229
|
+
# Use `hash[:key]` not `hash[ :key ]`
|
230
|
+
Layout/SpaceInsideReferenceBrackets:
|
231
|
+
Enabled: true
|
232
|
+
|
233
|
+
# Blank lines should not have any spaces.
|
234
|
+
Layout/TrailingEmptyLines:
|
235
|
+
Enabled: true
|
236
|
+
|
237
|
+
# No trailing whitespace.
|
238
|
+
Layout/TrailingWhitespace:
|
239
|
+
Enabled: true
|
240
|
+
|
241
|
+
Lint/RedundantStringCoercion:
|
242
|
+
Enabled: true
|
243
|
+
|
244
|
+
# Use my_method(my_arg) not my_method( my_arg ) or my_method my_arg.
|
245
|
+
Lint/RequireParentheses:
|
246
|
+
Enabled: true
|
247
|
+
|
248
|
+
Lint/UriEscapeUnescape:
|
249
|
+
Enabled: true
|
250
|
+
|
251
|
+
Performance/FlatMap:
|
252
|
+
Enabled: true
|
253
|
+
|
254
|
+
# We generally prefer &&/|| but like low-precedence and/or in context
|
255
|
+
Style/AndOr:
|
256
|
+
Enabled: false
|
257
|
+
|
258
|
+
# Prefer Foo.method over Foo::method
|
259
|
+
Style/ColonMethodCall:
|
260
|
+
Enabled: true
|
261
|
+
|
262
|
+
Style/DefWithParentheses:
|
263
|
+
Enabled: true
|
264
|
+
|
265
|
+
# Use Ruby >= 1.9 syntax for hashes. Prefer { a: :b } over { :a => :b }.
|
266
|
+
Style/HashSyntax:
|
267
|
+
Enabled: true
|
268
|
+
EnforcedShorthandSyntax: either
|
269
|
+
|
270
|
+
# Defining a method with parameters needs parentheses.
|
271
|
+
Style/MethodDefParentheses:
|
272
|
+
Enabled: true
|
273
|
+
|
274
|
+
Style/ParenthesesAroundCondition:
|
275
|
+
Enabled: true
|
276
|
+
|
277
|
+
Style/PercentLiteralDelimiters:
|
278
|
+
Enabled: true
|
279
|
+
PreferredDelimiters:
|
280
|
+
default: "()"
|
281
|
+
"%i": "[]"
|
282
|
+
"%I": "[]"
|
283
|
+
"%r": "{}"
|
284
|
+
"%w": "[]"
|
285
|
+
"%W": "[]"
|
286
|
+
|
287
|
+
# Use quotes for string literals when they are enough.
|
288
|
+
Style/RedundantPercentQ:
|
289
|
+
Enabled: false
|
290
|
+
|
291
|
+
Style/RedundantReturn:
|
292
|
+
Enabled: true
|
293
|
+
AllowMultipleReturnValues: true
|
294
|
+
|
295
|
+
Style/Semicolon:
|
296
|
+
Enabled: true
|
297
|
+
AllowAsExpressionSeparator: true
|
298
|
+
|
299
|
+
Style/StabbyLambdaParentheses:
|
300
|
+
Enabled: true
|
301
|
+
|
302
|
+
# Use `"foo"` not `'foo'` unless escaping is required
|
303
|
+
Style/StringLiterals:
|
304
|
+
Enabled: true
|
305
|
+
EnforcedStyle: double_quotes
|
306
|
+
Include:
|
307
|
+
- "app/**/*"
|
308
|
+
- "config/**/*"
|
309
|
+
- "lib/**/*"
|
310
|
+
- "test/**/*"
|
311
|
+
- "Gemfile"
|
312
|
+
|
313
|
+
Style/TrailingCommaInArrayLiteral:
|
314
|
+
Enabled: true
|
315
|
+
|
316
|
+
Style/TrailingCommaInHashLiteral:
|
317
|
+
Enabled: true
|
19
318
|
|
20
|
-
|
319
|
+
Gemspec/DevelopmentDependencies:
|
320
|
+
EnforcedStyle: gemspec
|