rubysmith 4.9.0 → 5.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (69) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/README.adoc +91 -117
  4. data/lib/rubysmith/builders/core.rb +0 -1
  5. data/lib/rubysmith/cli/actions/amazing_print.rb +25 -0
  6. data/lib/rubysmith/cli/actions/caliber.rb +25 -0
  7. data/lib/rubysmith/cli/actions/circle_ci.rb +25 -0
  8. data/lib/rubysmith/cli/actions/citation.rb +25 -0
  9. data/lib/rubysmith/cli/actions/community.rb +25 -0
  10. data/lib/rubysmith/cli/actions/conduct.rb +25 -0
  11. data/lib/rubysmith/cli/actions/console.rb +25 -0
  12. data/lib/rubysmith/cli/actions/contributions.rb +25 -0
  13. data/lib/rubysmith/cli/actions/debug.rb +25 -0
  14. data/lib/rubysmith/cli/actions/funding.rb +25 -0
  15. data/lib/rubysmith/cli/actions/git.rb +25 -0
  16. data/lib/rubysmith/cli/actions/git_hub.rb +25 -0
  17. data/lib/rubysmith/cli/actions/git_hub_ci.rb +25 -0
  18. data/lib/rubysmith/cli/actions/git_lint.rb +25 -0
  19. data/lib/rubysmith/cli/actions/guard.rb +25 -0
  20. data/lib/rubysmith/cli/actions/license.rb +25 -0
  21. data/lib/rubysmith/cli/actions/maximum.rb +25 -0
  22. data/lib/rubysmith/cli/actions/minimum.rb +25 -0
  23. data/lib/rubysmith/cli/actions/name.rb +23 -0
  24. data/lib/rubysmith/cli/actions/publish.rb +16 -4
  25. data/lib/rubysmith/cli/actions/rake.rb +25 -0
  26. data/lib/rubysmith/cli/actions/readme.rb +25 -0
  27. data/lib/rubysmith/cli/actions/reek.rb +25 -0
  28. data/lib/rubysmith/cli/actions/refinements.rb +25 -0
  29. data/lib/rubysmith/cli/actions/rspec.rb +25 -0
  30. data/lib/rubysmith/cli/actions/security.rb +25 -0
  31. data/lib/rubysmith/cli/actions/setup.rb +25 -0
  32. data/lib/rubysmith/cli/actions/simple_cov.rb +25 -0
  33. data/lib/rubysmith/cli/actions/versions.rb +25 -0
  34. data/lib/rubysmith/cli/actions/yard.rb +25 -0
  35. data/lib/rubysmith/cli/actions/zeitwerk.rb +25 -0
  36. data/lib/rubysmith/cli/{actions → commands}/build.rb +45 -7
  37. data/lib/rubysmith/cli/shell.rb +20 -18
  38. data/lib/rubysmith/configuration/contract.rb +78 -0
  39. data/lib/rubysmith/configuration/defaults.yml +52 -73
  40. data/lib/rubysmith/configuration/{content.rb → model.rb} +8 -22
  41. data/lib/rubysmith/configuration/transformers/current_time.rb +18 -0
  42. data/lib/rubysmith/configuration/transformers/git_email.rb +19 -0
  43. data/lib/rubysmith/configuration/transformers/git_hub_user.rb +19 -0
  44. data/lib/rubysmith/configuration/transformers/git_user.rb +24 -0
  45. data/lib/rubysmith/configuration/transformers/target_root.rb +18 -0
  46. data/lib/rubysmith/configuration/transformers/template_root.rb +22 -0
  47. data/lib/rubysmith/container.rb +21 -3
  48. data/lib/rubysmith/extensions/milestoner.rb +1 -1
  49. data/lib/rubysmith/extensions/pragmater.rb +8 -8
  50. data/lib/rubysmith/extensions/tocer.rb +8 -8
  51. data/lib/rubysmith/pathway.rb +1 -0
  52. data/lib/rubysmith/templates/%project_name%/Gemfile.erb +4 -4
  53. data/rubysmith.gemspec +16 -13
  54. data.tar.gz.sig +0 -0
  55. metadata +112 -46
  56. metadata.gz.sig +0 -0
  57. data/lib/rubysmith/cli/actions/config.rb +0 -33
  58. data/lib/rubysmith/cli/actions/container.rb +0 -20
  59. data/lib/rubysmith/cli/actions/import.rb +0 -11
  60. data/lib/rubysmith/cli/parser.rb +0 -35
  61. data/lib/rubysmith/cli/parsers/build.rb +0 -307
  62. data/lib/rubysmith/cli/parsers/core.rb +0 -72
  63. data/lib/rubysmith/configuration/enhancers/container.rb +0 -20
  64. data/lib/rubysmith/configuration/enhancers/current_time.rb +0 -14
  65. data/lib/rubysmith/configuration/enhancers/git_email.rb +0 -21
  66. data/lib/rubysmith/configuration/enhancers/git_hub_user.rb +0 -21
  67. data/lib/rubysmith/configuration/enhancers/git_user.rb +0 -25
  68. data/lib/rubysmith/configuration/enhancers/template_root.rb +0 -12
  69. data/lib/rubysmith/configuration/loader.rb +0 -44
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 595a6ea4d274a07490a2ef71eccfe8f678c2c349546e5f596d95d23921ba7ff3
4
- data.tar.gz: b35e376c6136530a72b9dfc3a43b5ee24ed2b08d209113bb2de8fb44c736e07d
3
+ metadata.gz: 0dbc9d9406cccf11b2508d5c27370906bf7f13b18e8506638ddc29a9ce003df4
4
+ data.tar.gz: 64beedf46aea4a1768e98790c9c3e96acca2d274fe12805721588338584fb390
5
5
  SHA512:
6
- metadata.gz: 26b2e0dbd086305663ecadaa39d9b392c0a46cb005ef649e0a34f404f9b582cb12b54d6f7c68bc156c6abf191b71c56101123b53f3d12f71d4c6cf45e9a967c8
7
- data.tar.gz: '059af4e5cf18b71606c7fca70ac435fce856705044fea089408090be2b26df54e39ad04775fbf76ca9419627d626abf25d2a67ab014f228c4370f36422b70250'
6
+ metadata.gz: 3e22613cee83158a67415a51e128603d5bea8ad9fb052c679520669c01e933fbd14c850efaddb0a30144ccca4515f7a96c45104b503e975b44f344fb2bbfd64f
7
+ data.tar.gz: 5054c72f1a820e90cf414aa110246bb0d404737f13c61ea2117818474ff42316ea40217e8f19fd113316e994a67ed6878be64abcf444165a8216b49b8eda9ceb
checksums.yaml.gz.sig CHANGED
Binary file
data/README.adoc CHANGED
@@ -77,43 +77,19 @@ gem install rubysmith
77
77
  From the command line, type: `rubysmith --help`
78
78
 
79
79
  ....
80
- USAGE:
81
- -b, --build NAME [options] Build new project.
82
- -c, --config ACTION Manage gem configuration: edit or view.
83
- -h, --help Show this message.
84
- -p, --publish VERSION Publish project.
85
- -v, --version Show gem version.
86
-
87
- BUILD OPTIONS:
88
- --[no-]amazing_print Add Amazing Print gem. Default: true.
89
- --[no-]caliber Add Caliber gem. Default: true.
90
- --[no-]circle_ci Add Circle CI configuration and badge. Default: false.
91
- --[no-]citation Add citation documentation. Default: true.
92
- --[no-]community Add community documentation. Default: false.
93
- --[no-]conduct Add code of conduct documentation. Default: true.
94
- --[no-]console Add console script. Default: true.
95
- --[no-]contributions Add contributions documentation. Default: true.
96
- --[no-]debug Add Debug gem. Default: true.
97
- --[no-]funding Add GitHub funding configuration. Default: false.
98
- --[no-]git Add Git. Default: true.
99
- --[no-]git_hub Add GitHub templates. Default: false.
100
- --[no-]git_hub_ci Add GitHub templates. Default: false.
101
- --[no-]git-lint Add Git Lint gem. Default: true.
102
- --[no-]guard Add Guard gem. Default: true.
103
- --[no-]license Add license documentation. Default: true.
104
- --max Use maximum/enabled options. Default: false.
105
- --min Use minimum/disabled options. Default: false.
106
- --[no-]rake Add Rake gem. Default: true.
107
- --[no-]readme Add readme documentation. Default: true.
108
- --[no-]reek Add Reek gem. Default: true.
109
- --[no-]refinements Add Refinements gem. Default: true.
110
- --[no-]rspec Add RSpec gem. Default: true.
111
- --[no-]security Add security. Default: true.
112
- --[no-]setup Add setup script. Default: true.
113
- --[no-]simple_cov Add SimpleCov gem. Default: true.
114
- --[no-]versions Add version history. Default: true.
115
- --[no-]yard Add Yard gem. Default: false.
116
- --[no-]zeitwerk Add Zeitwerk gem. Default: true.
80
+ USAGE
81
+ rubysmith [OPTIONS]
82
+ rubysmith COMMAND [OPTIONS]
83
+
84
+ OPTIONS
85
+ -p, --publish VERSION Publish project.
86
+ -v, --version Show version.
87
+ -h, --help [COMMAND] Show this message.
88
+
89
+ COMMANDS
90
+ config Manage configuration.
91
+ Path is dynamic per current directory.
92
+ build Build new project.
117
93
  ....
118
94
 
119
95
  ==== Build
@@ -124,7 +100,7 @@ Most build options are enabled by default. Example:
124
100
 
125
101
  [source,bash]
126
102
  ----
127
- rubysmith --build demo
103
+ rubysmith build --name demo
128
104
  ----
129
105
 
130
106
  Running the above will generate a new `demo` Ruby project. Should you wish to disable specific
@@ -132,7 +108,7 @@ options, you can use `--no-*` prefixes. Example:
132
108
 
133
109
  [source,bash]
134
110
  ----
135
- rubysmith --build demo --no-debug --no-guard
111
+ rubysmith build --name demo --no-debug --no-guard
136
112
  ----
137
113
 
138
114
  With the above example, both Debug and Guard support would have been disabled when building the
@@ -141,7 +117,7 @@ project with bare minimum of options. Example:
141
117
 
142
118
  [source,bash]
143
119
  ----
144
- rubysmith --build demo --min
120
+ rubysmith build --name demo --min
145
121
  ----
146
122
 
147
123
  The above is essentially the same as building with _all_ options disabled. This is handy in situations where you need to quickly script something up for sharing with others yet still want to avoid using a {bundler_inline_link} script so gem dependencies are not installed each time the code is run.
@@ -151,8 +127,8 @@ example, where both minimum and maximum options are used in conjunction with oth
151
127
 
152
128
  [source,bash]
153
129
  ----
154
- rubysmith --build demo --min --zeitwerk
155
- rubysmith --build demo --max --no-debug
130
+ rubysmith build --name demo --min --zeitwerk
131
+ rubysmith build --name demo --max --no-debug
156
132
  ----
157
133
 
158
134
  With the above examples, the first line will _disable_ all options except Zeitwerk while the second
@@ -344,60 +320,61 @@ variables. The default configuration is as follows:
344
320
  [source,yaml]
345
321
  ----
346
322
  :author:
347
- :email:
348
- :family_name:
349
- :given_name:
350
- :url:
351
- :build:
352
- :amazing_print: true
353
- :caliber: true
354
- :circle_ci: false
355
- :citation: true
356
- :cli: false
357
- :community: false
358
- :conduct: true
359
- :console: true
360
- :contributions: true
361
- :debug: true
362
- :funding: false
363
- :git: true
364
- :git_hub: false
365
- :git_lint: true
366
- :guard: true
367
- :license: true
368
- :maximum: false
369
- :minimum: false
370
- :rake: true
371
- :readme: true
372
- :reek: true
373
- :refinements: true
374
- :rspec: true
375
- :security: true
376
- :setup: true
377
- :simple_cov: true
378
- :versions: true
379
- :yard: false
380
- :zeitwerk: true
381
- :citation:
382
- :affiliation:
383
- :message: Please use the following metadata when citing this project in your work.
384
- :orcid:
385
- :documentation:
386
- :format: "adoc"
387
- :extensions:
388
- :milestoner:
389
- :documentation:
390
- :format: "adoc"
391
- :prefixes:
323
+ email:
324
+ family_name:
325
+ given_name:
326
+ url:
327
+ build:
328
+ amazing_print: true
329
+ caliber: true
330
+ circle_ci: false
331
+ citation: true
332
+ cli: false
333
+ community: false
334
+ conduct: true
335
+ console: true
336
+ contributions: true
337
+ debug: true
338
+ funding: false
339
+ git: true
340
+ git_hub: false
341
+ git_hub_ci: false
342
+ git_lint: true
343
+ guard: true
344
+ license: true
345
+ maximum: false
346
+ minimum: false
347
+ rake: true
348
+ readme: true
349
+ reek: true
350
+ refinements: true
351
+ rspec: true
352
+ security: true
353
+ setup: true
354
+ simple_cov: true
355
+ versions: true
356
+ yard: false
357
+ zeitwerk: true
358
+ citation:
359
+ affiliation:
360
+ message: Please use the following metadata when citing this project in your work.
361
+ orcid:
362
+ documentation:
363
+ format: "adoc"
364
+ extensions:
365
+ milestoner:
366
+ documentation:
367
+ format: "adoc"
368
+ prefixes:
392
369
  - Fixed
393
370
  - Added
394
371
  - Updated
395
372
  - Removed
396
373
  - Refactored
397
- :pragmater:
398
- :comments:
374
+ pragmater:
375
+ comments:
399
376
  - "# frozen_string_literal: true"
400
- :includes:
377
+ patterns:
401
378
  - "**/*.rake"
402
379
  - "**/*.rb"
403
380
  - "*.gemspec"
@@ -409,35 +386,32 @@ variables. The default configuration is as follows:
409
386
  - Gemfile
410
387
  - Guardfile
411
388
  - Rakefile
412
- :tocer:
413
- :includes:
389
+ tocer:
390
+ label: "## Table of Contents"
391
+ patterns:
414
392
  - "README.md"
415
- :label: "## Table of Contents"
416
- :git_hub:
417
- :user:
418
- :license:
419
- :label: Hippocratic
420
- :name: hippocratic
421
- :version: 2.1
422
- :project:
423
- :url:
424
- :community:
425
- :conduct:
426
- :contributions:
427
- :download:
428
- :funding:
429
- :home:
430
- :issues:
431
- :license:
432
- :security:
433
- :source:
434
- :versions:
435
- :version: 0.0.0
393
+ git_hub:
394
+ user:
395
+ license:
396
+ label: Hippocratic
397
+ name: hippocratic
398
+ version: "2.1"
399
+ project:
400
+ url:
401
+ community:
402
+ conduct:
403
+ contributions:
404
+ download:
405
+ funding:
406
+ home:
407
+ issues:
408
+ license:
409
+ security:
410
+ source:
411
+ versions:
412
+ version: 0.0.0
436
413
  ----
437
414
 
438
- Feel free to take this default configuration, modify, and save as your own custom
439
- `configuration.yml`.
440
-
441
415
  By customizing your configuration, you can change Rubysmith's default behavior when building
442
416
  projects. This is a great way to define your own specialized settings other than what is provide for
443
417
  you by default. This is also a handy way to provide additional information needed for some of the
@@ -523,7 +497,7 @@ place holder is replaced with your project name when generating a new project. E
523
497
  https://www.example.com/%project_name%
524
498
 
525
499
  # Command
526
- rubysmith --build demo
500
+ rubysmith build --name demo
527
501
 
528
502
  # Actual (computed result)
529
503
  https://www.example.com/demo
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "core"
4
3
  require "refinements/strings"
5
4
  require "refinements/structs"
6
5
 
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "refinements/structs"
4
+ require "sod"
5
+
6
+ module Rubysmith
7
+ module CLI
8
+ module Actions
9
+ # Stores Amazing Print flag.
10
+ class AmazingPrint < Sod::Action
11
+ include Import[:input]
12
+
13
+ using ::Refinements::Structs
14
+
15
+ description "Add Amazing Print gem."
16
+
17
+ on "--[no-]amazing_print"
18
+
19
+ default { Container[:configuration].build_amazing_print }
20
+
21
+ def call(value = default) = input.merge!(build_amazing_print: value)
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "refinements/structs"
4
+ require "sod"
5
+
6
+ module Rubysmith
7
+ module CLI
8
+ module Actions
9
+ # Stores Caliber flag.
10
+ class Caliber < Sod::Action
11
+ include Import[:input]
12
+
13
+ using ::Refinements::Structs
14
+
15
+ description "Add Caliber gem."
16
+
17
+ on "--[no-]caliber"
18
+
19
+ default { Container[:configuration].build_caliber }
20
+
21
+ def call(value = default) = input.merge!(build_caliber: value)
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "refinements/structs"
4
+ require "sod"
5
+
6
+ module Rubysmith
7
+ module CLI
8
+ module Actions
9
+ # Stores Circle CI flag.
10
+ class CircleCI < Sod::Action
11
+ include Import[:input]
12
+
13
+ using ::Refinements::Structs
14
+
15
+ description "Add Circle CI configuration."
16
+
17
+ on "--[no-]circle_ci"
18
+
19
+ default { Container[:configuration].build_circle_ci }
20
+
21
+ def call(value = default) = input.merge!(build_circle_ci: value)
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "refinements/structs"
4
+ require "sod"
5
+
6
+ module Rubysmith
7
+ module CLI
8
+ module Actions
9
+ # Stores citation flag.
10
+ class Citation < Sod::Action
11
+ include Import[:input]
12
+
13
+ using ::Refinements::Structs
14
+
15
+ description "Add citation documentation."
16
+
17
+ on "--[no-]citation"
18
+
19
+ default { Container[:configuration].build_citation }
20
+
21
+ def call(value = default) = input.merge!(build_citation: value)
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "refinements/structs"
4
+ require "sod"
5
+
6
+ module Rubysmith
7
+ module CLI
8
+ module Actions
9
+ # Stores community flag.
10
+ class Community < Sod::Action
11
+ include Import[:input]
12
+
13
+ using ::Refinements::Structs
14
+
15
+ description "Add community documentation."
16
+
17
+ on "--[no-]community"
18
+
19
+ default { Container[:configuration].build_community }
20
+
21
+ def call(value = default) = input.merge!(build_community: value)
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "refinements/structs"
4
+ require "sod"
5
+
6
+ module Rubysmith
7
+ module CLI
8
+ module Actions
9
+ # Stores conduct flag.
10
+ class Conduct < Sod::Action
11
+ include Import[:input]
12
+
13
+ using ::Refinements::Structs
14
+
15
+ description "Add code of conduct documentation."
16
+
17
+ on "--[no-]conduct"
18
+
19
+ default { Container[:configuration].build_conduct }
20
+
21
+ def call(value = default) = input.merge!(build_conduct: value)
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "refinements/structs"
4
+ require "sod"
5
+
6
+ module Rubysmith
7
+ module CLI
8
+ module Actions
9
+ # Stores console flag.
10
+ class Console < Sod::Action
11
+ include Import[:input]
12
+
13
+ using ::Refinements::Structs
14
+
15
+ description "Add console script."
16
+
17
+ on "--[no-]console"
18
+
19
+ default { Container[:configuration].build_console }
20
+
21
+ def call(value = default) = input.merge!(build_console: value)
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "refinements/structs"
4
+ require "sod"
5
+
6
+ module Rubysmith
7
+ module CLI
8
+ module Actions
9
+ # Stores contributions flag.
10
+ class Contributions < Sod::Action
11
+ include Import[:input]
12
+
13
+ using ::Refinements::Structs
14
+
15
+ description "Add contributions documentation."
16
+
17
+ on "--[no-]contributions"
18
+
19
+ default { Container[:configuration].build_contributions }
20
+
21
+ def call(value = default) = input.merge!(build_contributions: value)
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "refinements/structs"
4
+ require "sod"
5
+
6
+ module Rubysmith
7
+ module CLI
8
+ module Actions
9
+ # Stores Debug flag.
10
+ class Debug < Sod::Action
11
+ include Import[:input]
12
+
13
+ using ::Refinements::Structs
14
+
15
+ description "Add Debug gem."
16
+
17
+ on "--[no-]debug"
18
+
19
+ default { Container[:configuration].build_debug }
20
+
21
+ def call(value = default) = input.merge!(build_debug: value)
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "refinements/structs"
4
+ require "sod"
5
+
6
+ module Rubysmith
7
+ module CLI
8
+ module Actions
9
+ # Stores funding flag.
10
+ class Funding < Sod::Action
11
+ include Import[:input]
12
+
13
+ using ::Refinements::Structs
14
+
15
+ description "Add GitHub funding configuration."
16
+
17
+ on "--[no-]funding"
18
+
19
+ default { Container[:configuration].build_funding }
20
+
21
+ def call(value = default) = input.merge!(build_funding: value)
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "refinements/structs"
4
+ require "sod"
5
+
6
+ module Rubysmith
7
+ module CLI
8
+ module Actions
9
+ # Stores Git flag.
10
+ class Git < Sod::Action
11
+ include Import[:input]
12
+
13
+ using ::Refinements::Structs
14
+
15
+ description "Add Git repository."
16
+
17
+ on "--[no-]git"
18
+
19
+ default { Container[:configuration].build_git }
20
+
21
+ def call(value = default) = input.merge!(build_git: value)
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "refinements/structs"
4
+ require "sod"
5
+
6
+ module Rubysmith
7
+ module CLI
8
+ module Actions
9
+ # Stores GitHub flag.
10
+ class GitHub < Sod::Action
11
+ include Import[:input]
12
+
13
+ using ::Refinements::Structs
14
+
15
+ description "Add GitHub templates."
16
+
17
+ on "--[no-]git_hub"
18
+
19
+ default { Container[:configuration].build_git_hub }
20
+
21
+ def call(value = default) = input.merge!(build_git_hub: value)
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "refinements/structs"
4
+ require "sod"
5
+
6
+ module Rubysmith
7
+ module CLI
8
+ module Actions
9
+ # Stores GitHub CI flag.
10
+ class GitHubCI < Sod::Action
11
+ include Import[:input]
12
+
13
+ using ::Refinements::Structs
14
+
15
+ description "Add GitHub continuous integration."
16
+
17
+ on "--[no-]git_hub_ci"
18
+
19
+ default { Container[:configuration].build_git_hub_ci }
20
+
21
+ def call(value = default) = input.merge!(build_git_hub_ci: value)
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "refinements/structs"
4
+ require "sod"
5
+
6
+ module Rubysmith
7
+ module CLI
8
+ module Actions
9
+ # Stores Git Lint flag.
10
+ class GitLint < Sod::Action
11
+ include Import[:input]
12
+
13
+ using ::Refinements::Structs
14
+
15
+ description "Add Git Lint gem."
16
+
17
+ on "--[no-]git-lint"
18
+
19
+ default { Container[:configuration].build_git_lint }
20
+
21
+ def call(value = default) = input.merge!(build_git_lint: value)
22
+ end
23
+ end
24
+ end
25
+ end