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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data/README.adoc +21 -43
- data/lib/rubysmith/container.rb +10 -13
- data/lib/rubysmith/import.rb +1 -1
- data/lib/rubysmith/templates/%project_name%/.github/workflows/ci.yml.erb +2 -2
- data/lib/rubysmith/templates/%project_name%/Gemfile.erb +2 -2
- data/lib/rubysmith/templates/%project_name%/bin/setup.erb +16 -6
- data/rubysmith.gemspec +9 -9
- data.tar.gz.sig +0 -0
- metadata +20 -20
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b8971c91c536a34ae73babda51a1958dd8676e64f66c7886fd9df251da52e79f
|
4
|
+
data.tar.gz: 2373c1ae9db556f3018aa8cd760deef877e55e28e1a7e79ad48381c0b29460d1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
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
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
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
|
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` -
|
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
|
427
|
-
|
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
|
-
|
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
|
-
|
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
|
|
data/lib/rubysmith/container.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require "cogger"
|
4
|
-
require "
|
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
|
13
|
+
extend Containable
|
14
14
|
|
15
|
-
register :configuration
|
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
|
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
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
register(:
|
36
|
-
register(:
|
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
|
data/lib/rubysmith/import.rb
CHANGED
@@ -9,7 +9,7 @@ jobs:
|
|
9
9
|
|
10
10
|
steps:
|
11
11
|
- name: Checkout
|
12
|
-
uses: actions/checkout@
|
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@
|
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.
|
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.
|
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
|
1
|
+
#! /usr/bin/env ruby
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
3
|
+
<% if configuration.build_debug %>
|
4
|
+
require "debug"
|
5
|
+
<% end %>
|
6
|
+
require "fileutils"
|
7
|
+
require "pathname"
|
7
8
|
|
8
|
-
|
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.
|
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 "
|
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.
|
30
|
+
spec.add_dependency "etcher", "~> 1.3"
|
31
31
|
spec.add_dependency "gitt", "~> 3.2"
|
32
|
-
spec.add_dependency "infusible", "~> 3.
|
33
|
-
spec.add_dependency "milestoner", "~> 17.
|
34
|
-
spec.add_dependency "pragmater", "~> 14.
|
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.
|
36
|
+
spec.add_dependency "rubocop", "~> 1.63"
|
37
37
|
spec.add_dependency "runcom", "~> 11.0"
|
38
|
-
spec.add_dependency "sod", "~> 0.
|
38
|
+
spec.add_dependency "sod", "~> 0.8"
|
39
39
|
spec.add_dependency "spek", "~> 3.0"
|
40
|
-
spec.add_dependency "tocer", "~> 17.
|
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
|
+
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-
|
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:
|
55
|
+
name: containable
|
56
56
|
requirement: !ruby/object:Gem::Requirement
|
57
57
|
requirements:
|
58
58
|
- - "~>"
|
59
59
|
- !ruby/object:Gem::Version
|
60
|
-
version: '0.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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
|