rubysmith 6.4.0 → 6.6.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8af3a3ababec03c016b0944fa74a88bce4b1ddf6a757e364fff53dd879271c63
4
- data.tar.gz: 53b6e85dc47ac759bfebb6356be1184cdcf99489a3938a1a1c382acecc74214c
3
+ metadata.gz: b8971c91c536a34ae73babda51a1958dd8676e64f66c7886fd9df251da52e79f
4
+ data.tar.gz: 2373c1ae9db556f3018aa8cd760deef877e55e28e1a7e79ad48381c0b29460d1
5
5
  SHA512:
6
- metadata.gz: 5766a9d55e3a2772524acae8c6293f6249a14ae794cae5ef8b4c52625d6c9db56c23b8b82ec8bb96ed812152ae6943fb9f9ec132af3bd24a58bbf32a01a9205c
7
- data.tar.gz: 885ab2480f8d708cd0466676b49ac3fe83b68d7ec9f3468b3e39d06dcb41e7e93611de76e5ce20211ef758047c4878c079eae1dd083b42cefb4d31e56409f941
6
+ metadata.gz: 4da5c0307b7351af83bf0da75e9661753d0b7e8eb8c03cc2556cd1ff479d6d90aa35a726d8639102c4626e691da9f8d87fbe6ec9ea011e0dd1cb3c33cf4a496a
7
+ data.tar.gz: 966e676b749c20a54f9d3a1d6eb8de766781002f47ba4412a05965cc8f0cb13f829822dde333445cf8a563fcc5c80ea14da25627cbb625f02065528b059dd137
checksums.yaml.gz.sig CHANGED
Binary file
data/README.adoc CHANGED
@@ -1,10 +1,10 @@
1
- :gemsmith_link: link:https://alchemists.io/projects/gemsmith[Gemsmith]
2
- :bundler_inline_link: link:https://alchemists.io/articles/ruby_bundler_inline[Bundler Inline]
3
-
4
1
  :toc: macro
5
2
  :toclevels: 5
6
3
  :figure-caption!:
7
4
 
5
+ :gemsmith_link: link:https://alchemists.io/projects/gemsmith[Gemsmith]
6
+ :bundler_inline_link: link:https://alchemists.io/articles/ruby_bundler_inline[Bundler Inline]
7
+
8
8
  = Rubysmith
9
9
 
10
10
  Rubysmith is a command line interface for smithing Ruby projects.
@@ -298,7 +298,7 @@ variables. The default configuration is as follows:
298
298
 
299
299
  [source,yaml]
300
300
  ----
301
- :author:
301
+ author:
302
302
  email:
303
303
  family_name:
304
304
  given_name:
@@ -361,21 +361,18 @@ project:
361
361
  version: 0.0.0
362
362
  ----
363
363
 
364
- By customizing your configuration, you can change Rubysmith's default behavior when building
365
- projects. This is a great way to define your own specialized settings other than what is provide for
366
- you by default. This is also a handy way to provide additional information needed for some of the
367
- build options. I'll walk you through each section of the configuration so you can learn more.
364
+ By customizing your configuration, you can change Rubysmith's default behavior when building projects. This is a great way to define your own specialized settings other than what is provide for you by default. This is also a handy way to provide additional information needed for some of the build options. The next sections will walk you through each configuration so you can learn more.
368
365
 
369
366
  ==== Author
370
367
 
371
368
  Author information is used when generating project documentation and is recommended you fill this
372
369
  information in before building a project. Example:
373
370
 
374
- :author:
375
- :email: jsmith@example.com
376
- :family_name: Smith
377
- :given_name: Jill
378
- :url: https://www.exmaple.com/team/jsmith
371
+ author:
372
+ email: jsmith@example.com
373
+ family_name: Smith
374
+ given_name: Jill
375
+ url: https://www.exmaple.com/team/jsmith
379
376
 
380
377
  If your global link:https://git-scm.com[Git] configuration is properly configured, your given name;
381
378
  family name; and email will be used by default. Should you not want to defer to Git, you can supply
@@ -383,9 +380,7 @@ custom values as desired. The URL is the only value that can't be automatically
383
380
 
384
381
  ==== Build
385
382
 
386
- All build options accept booleans values only and can be customized as desired. When changing your
387
- build options, they will dynamically render when displaying usage (i.e. `rubysmith --help`). All of
388
- these options have been explained in greater detail in the _Usage_ section.
383
+ All build options only accept booleans values and can be customized as desired. When changing your build options, they will dynamically render when displaying usage (i.e. `rubysmith --help`). All of these options have been explained in greater detail in the _Usage_ section.
389
384
 
390
385
  ℹ️ The `cli` option is provided to support the {gemsmith_link} gem but is not, currently, used by
391
386
  this project.
@@ -402,33 +397,21 @@ Use this section to define the kind of documentation you want generated for your
402
397
  following options are available:
403
398
 
404
399
  * `adoc` - Uses link:https://asciidoctor.org[ASCII Doc] format.
405
- * `md` - Use link:https://asciidoctor.org[Markdown] format.
406
-
407
- ==== Extensions
408
-
409
- Extensions are additional tooling which can be configured specifically for Rubysmith. The following
410
- extensions are currently supported and will override each extensions global configuration should you
411
- be using them individually for other purposes:
412
-
413
- * link:https://alchemists.io/projects/milestoner[Milestoner]
414
- * link:https://alchemists.io/projects/pragmater[Pragmater]
415
- * link:https://alchemists.io/projects/tocer[Tocer]
416
-
417
- Follow the above links to learn more about each extension's gem configuration.
400
+ * `md` - Uses link:https://asciidoctor.org[Markdown] format.
418
401
 
419
402
  ==== GitHub
420
403
 
421
- Your GitHub user is the handle you setup when creating your GitHub account. This information is used
422
- for template, funding, and/or URL construction purposes.
404
+ Your GitHub user is the handle you setup when creating your GitHub account (i.e. `+https://github.com/<your_handle>+`). This information is used for template, funding, and/or URL construction purposes.
423
405
 
424
406
  ==== License
425
407
 
426
- Use this section to define the license you want to use for your project. The following kinds of
427
- license are available:
408
+ Use this section to define the license you want to use for your project. The following are available:
409
+
410
+ * `apache`: Uses the link:https://www.apache.org/licenses/LICENSE-2.0[Apache] license.
411
+ * `hippocratic`: Uses the link:https://firstdonoharm.dev[Hippocratic] license.
412
+ * `mit`: Uses the link:https://mit-license.org[MIT] license.
428
413
 
429
- * *Apache*: Use `apache` as the name and then supply the appropriate label and version.
430
- * *Hippocratic*: Use `hippocratic` as the name and then supply the appropriate label and version.
431
- * *MIT*: Use `mit` as the name and then supply the appropriate label and version.
414
+ When picking a license, you can also supply the appropriate label and version in addition to the name.
432
415
 
433
416
  ==== Project
434
417
 
@@ -437,9 +420,7 @@ specific documentation related to your project. You'll want to customize these U
437
420
  used for documentation, citations, and general project information. Some of the URLs are also used
438
421
  by the {gemsmith_link} gem.
439
422
 
440
- You
441
- can also use `%project_name%` as a placeholder anywhere in your URL and Rubysmith will ensure your
442
- place holder is replaced with your project name when generating a new project. Example:
423
+ One powerful feature of this configuration is that you can use `%project_name%` as a placeholder _anywhere_ in your URLs and Rubysmith will ensure your place holder is replaced with your project name when generating a new project. Example:
443
424
 
444
425
  ....
445
426
  # Configuration
@@ -452,10 +433,7 @@ rubysmith build --name demo
452
433
  https://www.example.com/demo
453
434
  ....
454
435
 
455
- As for the `version` key, this defines the default version of newly created projects. `0.0.0` is the
456
- default but you can use a higher version number like `0.1.0` or even `1.0.0` if you are super
457
- confident in your work. That said, the lower the number is better when building your initial
458
- project.
436
+ As for the `version` key, this defines the default version of newly created projects. `0.0.0` is the default but you can use a higher version number like `0.1.0` or even `1.0.0` if you are super confident in your work. That said, a lower the number is recommended when building your initial project which is why `0.0.0` is the default.
459
437
 
460
438
  == Development
461
439
 
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "cogger"
4
- require "dry-container"
4
+ require "containable"
5
5
  require "etcher"
6
6
  require "gitt"
7
7
  require "runcom"
@@ -10,14 +10,14 @@ require "spek"
10
10
  module Rubysmith
11
11
  # Provides a global gem container for injection into other objects.
12
12
  module Container
13
- extend Dry::Container::Mixin
13
+ extend Containable
14
14
 
15
- register :configuration, memoize: true do
15
+ register :configuration do
16
16
  self[:defaults].add_loader(Etcher::Loaders::YAML.new(self[:xdg_config].active))
17
17
  .then { |registry| Etcher.call registry }
18
18
  end
19
19
 
20
- register :defaults, memoize: true do
20
+ register :defaults do
21
21
  Etcher::Registry.new(contract: Configuration::Contract, model: Configuration::Model)
22
22
  .add_loader(Etcher::Loaders::YAML.new(self[:defaults_path]))
23
23
  .add_transformer(Configuration::Transformers::CurrentTime)
@@ -28,15 +28,12 @@ module Rubysmith
28
28
  .add_transformer(Configuration::Transformers::TargetRoot)
29
29
  end
30
30
 
31
- register :specification, memoize: true do
32
- Spek::Loader.call "#{__dir__}/../../rubysmith.gemspec"
33
- end
34
-
35
- register(:input, memoize: true) { self[:configuration].dup }
36
- register(:defaults_path, memoize: true) { Pathname(__dir__).join("configuration/defaults.yml") }
37
- register(:xdg_config, memoize: true) { Runcom::Config.new "rubysmith/configuration.yml" }
38
- register(:git, memoize: true) { Gitt::Repository.new }
39
- register(:logger, memoize: true) { Cogger.new id: :rubysmith }
31
+ register(:specification) { Spek::Loader.call "#{__dir__}/../../rubysmith.gemspec" }
32
+ register(:input) { self[:configuration].dup }
33
+ register(:defaults_path) { Pathname(__dir__).join("configuration/defaults.yml") }
34
+ register(:xdg_config) { Runcom::Config.new "rubysmith/configuration.yml" }
35
+ register(:git) { Gitt::Repository.new }
36
+ register(:logger) { Cogger.new id: :rubysmith }
40
37
  register :kernel, Kernel
41
38
  end
42
39
  end
@@ -3,5 +3,5 @@
3
3
  require "infusible"
4
4
 
5
5
  module Rubysmith
6
- Import = Infusible.with Container
6
+ Import = Infusible[Container]
7
7
  end
@@ -9,7 +9,7 @@ jobs:
9
9
 
10
10
  steps:
11
11
  - name: Checkout
12
- uses: actions/checkout@v3
12
+ uses: actions/checkout@v4
13
13
 
14
14
  - name: Ruby Setup
15
15
  uses: ruby/setup-ruby@v1
@@ -21,7 +21,7 @@ jobs:
21
21
 
22
22
  <% if configuration.build_simple_cov %>
23
23
  - name: SimpleCov Report
24
- uses: actions/upload-artifact@v3
24
+ uses: actions/upload-artifact@v4
25
25
  with:
26
26
  name: coverage
27
27
  path: coverage
@@ -14,7 +14,7 @@ group :quality do
14
14
  gem "caliber", "~> 0.51"
15
15
  <% end %>
16
16
  <% if configuration.build_git && configuration.build_git_lint %>
17
- gem "git-lint", "~> 7.1"
17
+ gem "git-lint", "~> 7.3"
18
18
  <% end %>
19
19
  <% if configuration.build_reek %>
20
20
  gem "reek", "~> 6.3", require: false
@@ -26,7 +26,7 @@ end
26
26
 
27
27
  group :development do
28
28
  <% if configuration.build_rake %>
29
- gem "rake", "~> 13.1"
29
+ gem "rake", "~> 13.2"
30
30
  <% end %>
31
31
  <% if configuration.markdown? %>
32
32
  gem "tocer", "~> 17.0"
@@ -1,8 +1,18 @@
1
- #! /usr/bin/env bash
1
+ #! /usr/bin/env ruby
2
2
 
3
- set -o nounset
4
- set -o errexit
5
- set -o pipefail
6
- IFS=$'\n\t'
3
+ <% if configuration.build_debug %>
4
+ require "debug"
5
+ <% end %>
6
+ require "fileutils"
7
+ require "pathname"
7
8
 
8
- bundle install
9
+ APP_ROOT = Pathname(__dir__).join("..").expand_path
10
+
11
+ Runner = lambda do |*arguments, kernel: Kernel|
12
+ kernel.system(*arguments) || kernel.abort("\nERROR: Command #{arguments.inspect} failed.")
13
+ end
14
+
15
+ FileUtils.chdir APP_ROOT do
16
+ puts "Installing dependencies..."
17
+ Runner.call "bundle install"
18
+ end
data/rubysmith.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |spec|
4
4
  spec.name = "rubysmith"
5
- spec.version = "6.4.0"
5
+ spec.version = "6.6.0"
6
6
  spec.authors = ["Brooke Kuhlmann"]
7
7
  spec.email = ["brooke@alchemists.io"]
8
8
  spec.homepage = "https://alchemists.io/projects/rubysmith"
@@ -24,20 +24,20 @@ Gem::Specification.new do |spec|
24
24
 
25
25
  spec.required_ruby_version = "~> 3.3"
26
26
  spec.add_dependency "cogger", "~> 0.16"
27
- spec.add_dependency "dry-container", "~> 0.11"
27
+ spec.add_dependency "containable", "~> 0.0"
28
28
  spec.add_dependency "dry-monads", "~> 1.6"
29
29
  spec.add_dependency "dry-schema", "~> 1.13"
30
- spec.add_dependency "etcher", "~> 1.0"
30
+ spec.add_dependency "etcher", "~> 1.3"
31
31
  spec.add_dependency "gitt", "~> 3.2"
32
- spec.add_dependency "infusible", "~> 3.4"
33
- spec.add_dependency "milestoner", "~> 17.4"
34
- spec.add_dependency "pragmater", "~> 14.1"
32
+ spec.add_dependency "infusible", "~> 3.5"
33
+ spec.add_dependency "milestoner", "~> 17.6"
34
+ spec.add_dependency "pragmater", "~> 14.4"
35
35
  spec.add_dependency "refinements", "~> 12.1"
36
- spec.add_dependency "rubocop", "~> 1.59"
36
+ spec.add_dependency "rubocop", "~> 1.63"
37
37
  spec.add_dependency "runcom", "~> 11.0"
38
- spec.add_dependency "sod", "~> 0.4"
38
+ spec.add_dependency "sod", "~> 0.8"
39
39
  spec.add_dependency "spek", "~> 3.0"
40
- spec.add_dependency "tocer", "~> 17.0"
40
+ spec.add_dependency "tocer", "~> 17.3"
41
41
  spec.add_dependency "tone", "~> 1.0"
42
42
  spec.add_dependency "zeitwerk", "~> 2.6"
43
43
 
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubysmith
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.4.0
4
+ version: 6.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brooke Kuhlmann
@@ -35,7 +35,7 @@ cert_chain:
35
35
  3n5C8/6Zh9DYTkpcwPSuIfAga6wf4nXc9m6JAw8AuMLaiWN/r/2s4zJsUHYERJEu
36
36
  gZGm4JqtuSg8pYjPeIJxS960owq+SfuC+jxqmRA54BisFCv/0VOJi7tiJVY=
37
37
  -----END CERTIFICATE-----
38
- date: 2024-03-09 00:00:00.000000000 Z
38
+ date: 2024-04-21 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: cogger
@@ -52,19 +52,19 @@ dependencies:
52
52
  - !ruby/object:Gem::Version
53
53
  version: '0.16'
54
54
  - !ruby/object:Gem::Dependency
55
- name: dry-container
55
+ name: containable
56
56
  requirement: !ruby/object:Gem::Requirement
57
57
  requirements:
58
58
  - - "~>"
59
59
  - !ruby/object:Gem::Version
60
- version: '0.11'
60
+ version: '0.0'
61
61
  type: :runtime
62
62
  prerelease: false
63
63
  version_requirements: !ruby/object:Gem::Requirement
64
64
  requirements:
65
65
  - - "~>"
66
66
  - !ruby/object:Gem::Version
67
- version: '0.11'
67
+ version: '0.0'
68
68
  - !ruby/object:Gem::Dependency
69
69
  name: dry-monads
70
70
  requirement: !ruby/object:Gem::Requirement
@@ -99,14 +99,14 @@ dependencies:
99
99
  requirements:
100
100
  - - "~>"
101
101
  - !ruby/object:Gem::Version
102
- version: '1.0'
102
+ version: '1.3'
103
103
  type: :runtime
104
104
  prerelease: false
105
105
  version_requirements: !ruby/object:Gem::Requirement
106
106
  requirements:
107
107
  - - "~>"
108
108
  - !ruby/object:Gem::Version
109
- version: '1.0'
109
+ version: '1.3'
110
110
  - !ruby/object:Gem::Dependency
111
111
  name: gitt
112
112
  requirement: !ruby/object:Gem::Requirement
@@ -127,42 +127,42 @@ dependencies:
127
127
  requirements:
128
128
  - - "~>"
129
129
  - !ruby/object:Gem::Version
130
- version: '3.4'
130
+ version: '3.5'
131
131
  type: :runtime
132
132
  prerelease: false
133
133
  version_requirements: !ruby/object:Gem::Requirement
134
134
  requirements:
135
135
  - - "~>"
136
136
  - !ruby/object:Gem::Version
137
- version: '3.4'
137
+ version: '3.5'
138
138
  - !ruby/object:Gem::Dependency
139
139
  name: milestoner
140
140
  requirement: !ruby/object:Gem::Requirement
141
141
  requirements:
142
142
  - - "~>"
143
143
  - !ruby/object:Gem::Version
144
- version: '17.4'
144
+ version: '17.6'
145
145
  type: :runtime
146
146
  prerelease: false
147
147
  version_requirements: !ruby/object:Gem::Requirement
148
148
  requirements:
149
149
  - - "~>"
150
150
  - !ruby/object:Gem::Version
151
- version: '17.4'
151
+ version: '17.6'
152
152
  - !ruby/object:Gem::Dependency
153
153
  name: pragmater
154
154
  requirement: !ruby/object:Gem::Requirement
155
155
  requirements:
156
156
  - - "~>"
157
157
  - !ruby/object:Gem::Version
158
- version: '14.1'
158
+ version: '14.4'
159
159
  type: :runtime
160
160
  prerelease: false
161
161
  version_requirements: !ruby/object:Gem::Requirement
162
162
  requirements:
163
163
  - - "~>"
164
164
  - !ruby/object:Gem::Version
165
- version: '14.1'
165
+ version: '14.4'
166
166
  - !ruby/object:Gem::Dependency
167
167
  name: refinements
168
168
  requirement: !ruby/object:Gem::Requirement
@@ -183,14 +183,14 @@ dependencies:
183
183
  requirements:
184
184
  - - "~>"
185
185
  - !ruby/object:Gem::Version
186
- version: '1.59'
186
+ version: '1.63'
187
187
  type: :runtime
188
188
  prerelease: false
189
189
  version_requirements: !ruby/object:Gem::Requirement
190
190
  requirements:
191
191
  - - "~>"
192
192
  - !ruby/object:Gem::Version
193
- version: '1.59'
193
+ version: '1.63'
194
194
  - !ruby/object:Gem::Dependency
195
195
  name: runcom
196
196
  requirement: !ruby/object:Gem::Requirement
@@ -211,14 +211,14 @@ dependencies:
211
211
  requirements:
212
212
  - - "~>"
213
213
  - !ruby/object:Gem::Version
214
- version: '0.4'
214
+ version: '0.8'
215
215
  type: :runtime
216
216
  prerelease: false
217
217
  version_requirements: !ruby/object:Gem::Requirement
218
218
  requirements:
219
219
  - - "~>"
220
220
  - !ruby/object:Gem::Version
221
- version: '0.4'
221
+ version: '0.8'
222
222
  - !ruby/object:Gem::Dependency
223
223
  name: spek
224
224
  requirement: !ruby/object:Gem::Requirement
@@ -239,14 +239,14 @@ dependencies:
239
239
  requirements:
240
240
  - - "~>"
241
241
  - !ruby/object:Gem::Version
242
- version: '17.0'
242
+ version: '17.3'
243
243
  type: :runtime
244
244
  prerelease: false
245
245
  version_requirements: !ruby/object:Gem::Requirement
246
246
  requirements:
247
247
  - - "~>"
248
248
  - !ruby/object:Gem::Version
249
- version: '17.0'
249
+ version: '17.3'
250
250
  - !ruby/object:Gem::Dependency
251
251
  name: tone
252
252
  requirement: !ruby/object:Gem::Requirement
@@ -426,7 +426,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
426
426
  - !ruby/object:Gem::Version
427
427
  version: '0'
428
428
  requirements: []
429
- rubygems_version: 3.5.6
429
+ rubygems_version: 3.5.9
430
430
  signing_key:
431
431
  specification_version: 4
432
432
  summary: A command line interface for smithing Ruby projects.
metadata.gz.sig CHANGED
Binary file