rubysmith 4.9.0 → 5.0.1

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.
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