rubysmith 2.0.2 → 3.1.0
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
- checksums.yaml.gz.sig +0 -0
- data/README.adoc +30 -22
- data/lib/rubysmith/builder.rb +5 -5
- data/lib/rubysmith/builders/git_hub.rb +9 -0
- data/lib/rubysmith/cli/actions/config.rb +5 -7
- data/lib/rubysmith/cli/actions/container.rb +22 -0
- data/lib/rubysmith/cli/actions/import.rb +11 -0
- data/lib/rubysmith/cli/actions/publish.rb +2 -3
- data/lib/rubysmith/cli/parser.rb +8 -5
- data/lib/rubysmith/cli/parsers/build.rb +13 -13
- data/lib/rubysmith/cli/parsers/core.rb +5 -5
- data/lib/rubysmith/cli/shell.rb +8 -25
- data/lib/rubysmith/configuration/content.rb +4 -2
- data/lib/rubysmith/configuration/defaults.yml +3 -3
- data/lib/rubysmith/container.rb +3 -23
- data/lib/rubysmith/extensions/milestoner.rb +0 -1
- data/lib/rubysmith/import.rb +7 -0
- data/lib/rubysmith/templates/%project_name%/.github/FUNDING.yml.erb +1 -0
- data/lib/rubysmith/templates/%project_name%/Gemfile.erb +3 -6
- data/lib/rubysmith/templates/%project_name%/spec/spec_helper.rb.erb +1 -1
- data/rubysmith.gemspec +9 -6
- data.tar.gz.sig +0 -0
- metadata +56 -23
- 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: 76c37515f88d8baea764f0781f857dc37edf3fe5ae607957d04cc43bdabf5fa2
|
|
4
|
+
data.tar.gz: a102d5287ac1ea8eeba349a7b9d394fb9b59e6ac844730881d4b5c40468204ac
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 615396e6c2681e163103be22bc6e4ef5e2393786016ae5746b7323ff67e268e6d9b84c913a08f753c14c94930c1f6d277a33a78ad0357aa2ae5031ed36bf85e4
|
|
7
|
+
data.tar.gz: 072c81c1253073b146900a243318c3e184d6b0722af9ac2082766e4ecc8c485caef660f39fda596e5faff33c64efcfe60dd243f7c2a6d297ea0ad28c87c7b784
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
data/README.adoc
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
:gemsmith_link: link:https://www.alchemists.io/projects/gemsmith[Gemsmith]
|
|
2
|
+
|
|
1
3
|
:toc: macro
|
|
2
4
|
:toclevels: 5
|
|
3
5
|
:figure-caption!:
|
|
@@ -8,10 +10,10 @@ Rubysmith is a command line interface for smithing Ruby projects.
|
|
|
8
10
|
|
|
9
11
|
This gem is useful in situations in which you need something more sophisticated than a
|
|
10
12
|
link:https://bundler.io/guides/bundler_in_a_single_file_ruby_script.html[Bundler Inline] script but
|
|
11
|
-
less than a
|
|
12
|
-
|
|
13
|
-
for
|
|
14
|
-
|
|
13
|
+
less than a {gemsmith_link} gem. Rubysmith is the foundation of Gemsmith and provides much of the
|
|
14
|
+
same functionality as Gemsmith but is solely tailored for pure Ruby projects. Again, this is a great
|
|
15
|
+
tool for spiking quick Ruby implementations, sharing code snippets with others, or building full
|
|
16
|
+
blown Ruby projects for collaboration with others.
|
|
15
17
|
|
|
16
18
|
toc::[]
|
|
17
19
|
|
|
@@ -26,7 +28,6 @@ toc::[]
|
|
|
26
28
|
* Supports link:https://circleci.com[Circle CI].
|
|
27
29
|
* Supports link:https://orcid.org[Citations (ORCID)].
|
|
28
30
|
* Supports console script for local development.
|
|
29
|
-
* Supports link:https://rubygems.org/gems/dead_end[DeadEnd].
|
|
30
31
|
* Supports link:https://github.com/ruby/debug[Debug].
|
|
31
32
|
* Supports link:https://git-scm.com[Git].
|
|
32
33
|
* Supports link:https://github.com[GitHub].
|
|
@@ -98,8 +99,8 @@ BUILD OPTIONS:
|
|
|
98
99
|
--[no-]conduct Add code of conduct documentation. Default: true.
|
|
99
100
|
--[no-]console Add console script. Default: true.
|
|
100
101
|
--[no-]contributions Add contributions documentation. Default: true.
|
|
101
|
-
--[no-]dead_end Add Dead End gem. Default: true.
|
|
102
102
|
--[no-]debug Add Debug gem. Default: true.
|
|
103
|
+
--[no-]funding Add GitHub funding configuration. Default: false.
|
|
103
104
|
--[no-]git Add Git. Default: true.
|
|
104
105
|
--[no-]git_hub Add GitHub templates. Default: false.
|
|
105
106
|
--[no-]git-lint Add Git Lint gem. Default: true.
|
|
@@ -224,18 +225,18 @@ loaded.
|
|
|
224
225
|
The `--contributions` option allows you to link to contributing documentation so people know to
|
|
225
226
|
contribute back to your work.
|
|
226
227
|
|
|
227
|
-
==== DeadEnd
|
|
228
|
-
|
|
229
|
-
The `--dead_end` option allows you build your project with the
|
|
230
|
-
link:https://github.com/zombocom/dead_end[Dead End] gem for debugging purposes since Dead End will
|
|
231
|
-
show you where you are missing closing `end` statements.
|
|
232
|
-
|
|
233
228
|
==== Debug
|
|
234
229
|
|
|
235
230
|
The `--debug` option allows you add the link:https://github.com/ruby/debug[Debug] gem to your
|
|
236
231
|
project for debugging your code by setting breakpoints, remotely connecting to running code, and
|
|
237
232
|
much more.
|
|
238
233
|
|
|
234
|
+
==== Funding
|
|
235
|
+
|
|
236
|
+
The `--funding` option allows you add a link:https://github.com[GitHub] funding configuration to
|
|
237
|
+
your project so you can attract link:https://docs.github.com/en/sponsors[sponsors]. This option
|
|
238
|
+
doesn't require use of the `--git_hub` option but is encouraged.
|
|
239
|
+
|
|
239
240
|
==== Git
|
|
240
241
|
|
|
241
242
|
The `--git` option allows you add link:https://git-scm.com[Git] repository support.
|
|
@@ -364,12 +365,13 @@ variables. The default configuration is as follows:
|
|
|
364
365
|
:caliber: true
|
|
365
366
|
:circle_ci: false
|
|
366
367
|
:citation: true
|
|
368
|
+
:cli: false
|
|
367
369
|
:community: false
|
|
368
370
|
:conduct: true
|
|
369
371
|
:console: true
|
|
370
372
|
:contributions: true
|
|
371
|
-
:dead_end: true
|
|
372
373
|
:debug: true
|
|
374
|
+
:funding: false
|
|
373
375
|
:git: true
|
|
374
376
|
:git_hub: false
|
|
375
377
|
:git_lint: true
|
|
@@ -397,14 +399,13 @@ variables. The default configuration is as follows:
|
|
|
397
399
|
:extensions:
|
|
398
400
|
:milestoner:
|
|
399
401
|
:documentation:
|
|
400
|
-
:format: "
|
|
402
|
+
:format: "adoc"
|
|
401
403
|
:prefixes:
|
|
402
404
|
- Fixed
|
|
403
405
|
- Added
|
|
404
406
|
- Updated
|
|
405
407
|
- Removed
|
|
406
408
|
- Refactored
|
|
407
|
-
:sign: false
|
|
408
409
|
:pragmater:
|
|
409
410
|
:comments:
|
|
410
411
|
- "# frozen_string_literal: true"
|
|
@@ -429,13 +430,14 @@ variables. The default configuration is as follows:
|
|
|
429
430
|
:license:
|
|
430
431
|
:label: Hippocratic
|
|
431
432
|
:name: hippocratic
|
|
432
|
-
:version:
|
|
433
|
+
:version: 2.1
|
|
433
434
|
:project:
|
|
434
435
|
:url:
|
|
435
436
|
:community:
|
|
436
437
|
:conduct:
|
|
437
438
|
:contributions:
|
|
438
439
|
:download:
|
|
440
|
+
:funding:
|
|
439
441
|
:home:
|
|
440
442
|
:issues:
|
|
441
443
|
:license:
|
|
@@ -471,8 +473,11 @@ custom values as desired. The URL is the only value that can't be automatically
|
|
|
471
473
|
==== Build
|
|
472
474
|
|
|
473
475
|
All build options accept booleans values only and can be customized as desired. When changing your
|
|
474
|
-
build options, they will dynamically render when
|
|
475
|
-
these options
|
|
476
|
+
build options, they will dynamically render when displaying usage (i.e. `rubysmith --help`). All of
|
|
477
|
+
these options have been explained in greater detail in the _Usage_ section.
|
|
478
|
+
|
|
479
|
+
ℹ️ The `cli` option is provided to support the {gemsmith_link} gem but is not, currently, used by
|
|
480
|
+
this project.
|
|
476
481
|
|
|
477
482
|
==== Citations
|
|
478
483
|
|
|
@@ -503,7 +508,7 @@ Follow the above links to learn more about each extension's gem configuration.
|
|
|
503
508
|
==== GitHub
|
|
504
509
|
|
|
505
510
|
Your GitHub user is the handle you setup when creating your GitHub account. This information is used
|
|
506
|
-
for template and/or URL construction purposes.
|
|
511
|
+
for template, funding, and/or URL construction purposes.
|
|
507
512
|
|
|
508
513
|
==== License
|
|
509
514
|
|
|
@@ -517,8 +522,11 @@ license are available:
|
|
|
517
522
|
==== Project
|
|
518
523
|
|
|
519
524
|
There are two sub-categories within this section: URLs and version. The URLs allow you to link to
|
|
520
|
-
specific documentation related to your project. You'll
|
|
521
|
-
|
|
525
|
+
specific documentation related to your project. You'll want to customize these URLs since they are
|
|
526
|
+
used for documentation, citations, and general project information. Some of the URLs are also used
|
|
527
|
+
by the {gemsmith_link} gem.
|
|
528
|
+
|
|
529
|
+
You
|
|
522
530
|
can also use `%project_name%` as a placeholder anywhere in your URL and Rubysmith will ensure your
|
|
523
531
|
place holder is replaced with your project name when generating a new project. Example:
|
|
524
532
|
|
|
@@ -579,5 +587,5 @@ bundle exec rake
|
|
|
579
587
|
|
|
580
588
|
== Credits
|
|
581
589
|
|
|
582
|
-
* Built with
|
|
590
|
+
* Built with {gemsmith_link}.
|
|
583
591
|
* Engineered by link:https://www.alchemists.io/team/brooke_kuhlmann[Brooke Kuhlmann].
|
data/lib/rubysmith/builder.rb
CHANGED
|
@@ -7,16 +7,18 @@ require "logger"
|
|
|
7
7
|
module Rubysmith
|
|
8
8
|
# Provides common functionality necessary for all builders.
|
|
9
9
|
class Builder
|
|
10
|
+
include Import[:logger]
|
|
11
|
+
|
|
10
12
|
using Refinements::Pathnames
|
|
11
13
|
|
|
12
14
|
HELPERS = {inserter: Text::Inserter, renderer: Renderers::ERB, kernel: Open3}.freeze
|
|
13
15
|
|
|
14
16
|
def self.call(...) = new(...)
|
|
15
17
|
|
|
16
|
-
def initialize configuration, helpers: HELPERS,
|
|
18
|
+
def initialize configuration, helpers: HELPERS, **dependencies
|
|
19
|
+
super(**dependencies)
|
|
17
20
|
@configuration = configuration
|
|
18
21
|
@helpers = helpers
|
|
19
|
-
@container = container
|
|
20
22
|
end
|
|
21
23
|
|
|
22
24
|
def append content
|
|
@@ -93,7 +95,7 @@ module Rubysmith
|
|
|
93
95
|
|
|
94
96
|
private
|
|
95
97
|
|
|
96
|
-
attr_reader :configuration, :helpers
|
|
98
|
+
attr_reader :configuration, :helpers
|
|
97
99
|
|
|
98
100
|
def execute *command
|
|
99
101
|
kernel.capture2e(*command).then do |result, status|
|
|
@@ -107,8 +109,6 @@ module Rubysmith
|
|
|
107
109
|
|
|
108
110
|
def kernel = helpers.fetch(__method__)
|
|
109
111
|
|
|
110
|
-
def logger = container[__method__]
|
|
111
|
-
|
|
112
112
|
def relative_build_path = build_path.relative_path_from(configuration.target_root)
|
|
113
113
|
|
|
114
114
|
def build_path
|
|
@@ -16,6 +16,8 @@ module Rubysmith
|
|
|
16
16
|
end
|
|
17
17
|
|
|
18
18
|
def call
|
|
19
|
+
render_funding
|
|
20
|
+
|
|
19
21
|
return configuration unless configuration.build_git_hub
|
|
20
22
|
|
|
21
23
|
builder.call(with_issue_template).render
|
|
@@ -27,6 +29,13 @@ module Rubysmith
|
|
|
27
29
|
|
|
28
30
|
attr_reader :configuration, :builder
|
|
29
31
|
|
|
32
|
+
def render_funding
|
|
33
|
+
return unless configuration.build_funding
|
|
34
|
+
|
|
35
|
+
configuration.merge(template_path: "%project_name%/.github/FUNDING.yml.erb")
|
|
36
|
+
.then { |updated_configuration| builder.call(updated_configuration).render }
|
|
37
|
+
end
|
|
38
|
+
|
|
30
39
|
def with_issue_template
|
|
31
40
|
configuration.merge template_path: "%project_name%/.github/ISSUE_TEMPLATE.md.erb"
|
|
32
41
|
end
|
|
@@ -5,9 +5,11 @@ module Rubysmith
|
|
|
5
5
|
module Actions
|
|
6
6
|
# Handles the config action.
|
|
7
7
|
class Config
|
|
8
|
-
|
|
8
|
+
include Rubysmith::Import[:kernel, :logger]
|
|
9
|
+
|
|
10
|
+
def initialize client: Configuration::Loader::CLIENT, **dependencies
|
|
11
|
+
super(**dependencies)
|
|
9
12
|
@client = client
|
|
10
|
-
@container = container
|
|
11
13
|
end
|
|
12
14
|
|
|
13
15
|
def call selection
|
|
@@ -20,15 +22,11 @@ module Rubysmith
|
|
|
20
22
|
|
|
21
23
|
private
|
|
22
24
|
|
|
23
|
-
attr_reader :client
|
|
25
|
+
attr_reader :client
|
|
24
26
|
|
|
25
27
|
def edit = kernel.system("$EDITOR #{client.current}")
|
|
26
28
|
|
|
27
29
|
def view = kernel.system("cat #{client.current}")
|
|
28
|
-
|
|
29
|
-
def kernel = container[__method__]
|
|
30
|
-
|
|
31
|
-
def logger = container[__method__]
|
|
32
30
|
end
|
|
33
31
|
end
|
|
34
32
|
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "dry/container"
|
|
4
|
+
|
|
5
|
+
module Rubysmith
|
|
6
|
+
module CLI
|
|
7
|
+
module Actions
|
|
8
|
+
# Provides a single container with application and action specific dependencies.
|
|
9
|
+
module Container
|
|
10
|
+
extend Dry::Container::Mixin
|
|
11
|
+
|
|
12
|
+
config.registry = ->(container, key, value, _options) { container[key.to_s] = value }
|
|
13
|
+
|
|
14
|
+
merge Rubysmith::Container
|
|
15
|
+
|
|
16
|
+
register(:build) { Build.new }
|
|
17
|
+
register(:config) { Config.new }
|
|
18
|
+
register(:publish) { Publish.new }
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -5,16 +5,15 @@ module Rubysmith
|
|
|
5
5
|
module Actions
|
|
6
6
|
# Handles parsing of Command Line Interface (CLI) publish options.
|
|
7
7
|
class Publish
|
|
8
|
-
def initialize extension: Extensions::Milestoner
|
|
8
|
+
def initialize extension: Extensions::Milestoner
|
|
9
9
|
@extension = extension
|
|
10
|
-
@container = container
|
|
11
10
|
end
|
|
12
11
|
|
|
13
12
|
def call(configuration) = extension.call(configuration)
|
|
14
13
|
|
|
15
14
|
private
|
|
16
15
|
|
|
17
|
-
attr_reader :extension
|
|
16
|
+
attr_reader :extension
|
|
18
17
|
end
|
|
19
18
|
end
|
|
20
19
|
end
|
data/lib/rubysmith/cli/parser.rb
CHANGED
|
@@ -6,26 +6,29 @@ module Rubysmith
|
|
|
6
6
|
module CLI
|
|
7
7
|
# Assembles and parses all Command Line Interface (CLI) options.
|
|
8
8
|
class Parser
|
|
9
|
+
include Import[:configuration]
|
|
10
|
+
|
|
9
11
|
CLIENT = OptionParser.new nil, 40, " "
|
|
10
12
|
SECTIONS = [Parsers::Core, Parsers::Build].freeze # Order is important.
|
|
11
13
|
|
|
12
|
-
def initialize sections: SECTIONS, client: CLIENT,
|
|
14
|
+
def initialize sections: SECTIONS, client: CLIENT, **dependencies
|
|
15
|
+
super(**dependencies)
|
|
13
16
|
@sections = sections
|
|
14
17
|
@client = client
|
|
15
|
-
@
|
|
18
|
+
@configuration_duplicate = configuration.dup
|
|
16
19
|
end
|
|
17
20
|
|
|
18
21
|
def call arguments = []
|
|
19
|
-
sections.each { |section| section.call
|
|
22
|
+
sections.each { |section| section.call configuration_duplicate, client: }
|
|
20
23
|
client.parse arguments
|
|
21
|
-
|
|
24
|
+
configuration_duplicate.freeze
|
|
22
25
|
end
|
|
23
26
|
|
|
24
27
|
def to_s = client.to_s
|
|
25
28
|
|
|
26
29
|
private
|
|
27
30
|
|
|
28
|
-
attr_reader :sections, :client, :
|
|
31
|
+
attr_reader :sections, :client, :configuration_duplicate
|
|
29
32
|
end
|
|
30
33
|
end
|
|
31
34
|
end
|
|
@@ -7,16 +7,18 @@ module Rubysmith
|
|
|
7
7
|
module Parsers
|
|
8
8
|
# Handles parsing of Command Line Interface (CLI) build options.
|
|
9
9
|
class Build
|
|
10
|
+
include Import[:colorizer]
|
|
11
|
+
|
|
10
12
|
using Refinements::Structs
|
|
11
13
|
|
|
12
14
|
def self.call(...) = new(...).call
|
|
13
15
|
|
|
14
16
|
def initialize configuration = Container[:configuration],
|
|
15
17
|
client: Parser::CLIENT,
|
|
16
|
-
|
|
18
|
+
**dependencies
|
|
19
|
+
super(**dependencies)
|
|
17
20
|
@configuration = configuration
|
|
18
21
|
@client = client
|
|
19
|
-
@container = container
|
|
20
22
|
end
|
|
21
23
|
|
|
22
24
|
def call arguments = []
|
|
@@ -28,7 +30,7 @@ module Rubysmith
|
|
|
28
30
|
|
|
29
31
|
private
|
|
30
32
|
|
|
31
|
-
attr_reader :configuration, :client
|
|
33
|
+
attr_reader :configuration, :client
|
|
32
34
|
|
|
33
35
|
def collate = private_methods.sort.grep(/add_/).each { |method| __send__ method }
|
|
34
36
|
|
|
@@ -113,21 +115,21 @@ module Rubysmith
|
|
|
113
115
|
end
|
|
114
116
|
end
|
|
115
117
|
|
|
116
|
-
def
|
|
118
|
+
def add_debug
|
|
117
119
|
client.on(
|
|
118
|
-
"--[no-]
|
|
119
|
-
"Add
|
|
120
|
+
"--[no-]debug",
|
|
121
|
+
"Add Debug gem. #{default __method__}."
|
|
120
122
|
) do |value|
|
|
121
|
-
configuration.merge!
|
|
123
|
+
configuration.merge! build_debug: value
|
|
122
124
|
end
|
|
123
125
|
end
|
|
124
126
|
|
|
125
|
-
def
|
|
127
|
+
def add_funding
|
|
126
128
|
client.on(
|
|
127
|
-
"--[no-]
|
|
128
|
-
"Add
|
|
129
|
+
"--[no-]funding",
|
|
130
|
+
"Add GitHub funding configuration. #{default __method__}."
|
|
129
131
|
) do |value|
|
|
130
|
-
configuration.merge!
|
|
132
|
+
configuration.merge! build_funding: value
|
|
131
133
|
end
|
|
132
134
|
end
|
|
133
135
|
|
|
@@ -300,8 +302,6 @@ module Rubysmith
|
|
|
300
302
|
.then { |boolean| boolean ? colorizer.green(boolean) : colorizer.red(boolean) }
|
|
301
303
|
.then { |colored_boolean| "Default: #{colored_boolean}" }
|
|
302
304
|
end
|
|
303
|
-
|
|
304
|
-
def colorizer = container[__method__]
|
|
305
305
|
end
|
|
306
306
|
end
|
|
307
307
|
end
|
|
@@ -7,16 +7,18 @@ module Rubysmith
|
|
|
7
7
|
module Parsers
|
|
8
8
|
# Handles parsing of Command Line Interface (CLI) core options.
|
|
9
9
|
class Core
|
|
10
|
+
include Import[:specification]
|
|
11
|
+
|
|
10
12
|
using Refinements::Structs
|
|
11
13
|
|
|
12
14
|
def self.call(...) = new(...).call
|
|
13
15
|
|
|
14
16
|
def initialize configuration = Container[:configuration],
|
|
15
17
|
client: Parser::CLIENT,
|
|
16
|
-
|
|
18
|
+
**dependencies
|
|
19
|
+
super(**dependencies)
|
|
17
20
|
@configuration = configuration
|
|
18
21
|
@client = client
|
|
19
|
-
@container = container
|
|
20
22
|
end
|
|
21
23
|
|
|
22
24
|
def call arguments = []
|
|
@@ -29,7 +31,7 @@ module Rubysmith
|
|
|
29
31
|
|
|
30
32
|
private
|
|
31
33
|
|
|
32
|
-
attr_reader :configuration, :client
|
|
34
|
+
attr_reader :configuration, :client
|
|
33
35
|
|
|
34
36
|
def collate = private_methods.sort.grep(/add_/).each { |method| __send__ method }
|
|
35
37
|
|
|
@@ -65,8 +67,6 @@ module Rubysmith
|
|
|
65
67
|
configuration.merge! action_help: true
|
|
66
68
|
end
|
|
67
69
|
end
|
|
68
|
-
|
|
69
|
-
def specification = container[__method__]
|
|
70
70
|
end
|
|
71
71
|
end
|
|
72
72
|
end
|
data/lib/rubysmith/cli/shell.rb
CHANGED
|
@@ -6,16 +6,11 @@ module Rubysmith
|
|
|
6
6
|
module CLI
|
|
7
7
|
# The main Command Line Interface (CLI) object.
|
|
8
8
|
class Shell
|
|
9
|
-
|
|
10
|
-
config: Actions::Config.new,
|
|
11
|
-
build: Actions::Build.new,
|
|
12
|
-
publish: Actions::Publish.new
|
|
13
|
-
}.freeze
|
|
9
|
+
include Actions::Import[:config, :build, :publish, :specification, :logger]
|
|
14
10
|
|
|
15
|
-
def initialize parser: Parser.new,
|
|
11
|
+
def initialize parser: Parser.new, **dependencies
|
|
12
|
+
super(**dependencies)
|
|
16
13
|
@parser = parser
|
|
17
|
-
@actions = actions
|
|
18
|
-
@container = container
|
|
19
14
|
end
|
|
20
15
|
|
|
21
16
|
def call arguments = []
|
|
@@ -26,29 +21,17 @@ module Rubysmith
|
|
|
26
21
|
|
|
27
22
|
private
|
|
28
23
|
|
|
29
|
-
attr_reader :parser
|
|
24
|
+
attr_reader :parser
|
|
30
25
|
|
|
31
26
|
def perform configuration
|
|
32
27
|
case configuration
|
|
33
|
-
in action_config: Symbol => action then config action
|
|
34
|
-
in action_build: true then build configuration
|
|
35
|
-
in action_publish: true then publish configuration
|
|
28
|
+
in action_config: Symbol => action then config.call action
|
|
29
|
+
in action_build: true then build.call configuration
|
|
30
|
+
in action_publish: true then publish.call configuration
|
|
36
31
|
in action_version: true then logger.info { specification.labeled_version }
|
|
37
|
-
else
|
|
32
|
+
else logger.any { parser.to_s }
|
|
38
33
|
end
|
|
39
34
|
end
|
|
40
|
-
|
|
41
|
-
def config(action) = actions.fetch(__method__).call(action)
|
|
42
|
-
|
|
43
|
-
def build(configuration) = actions.fetch(__method__).call(configuration)
|
|
44
|
-
|
|
45
|
-
def publish(configuration) = actions.fetch(__method__).call(configuration)
|
|
46
|
-
|
|
47
|
-
def usage = logger.unknown(parser.to_s)
|
|
48
|
-
|
|
49
|
-
def specification = container[__method__]
|
|
50
|
-
|
|
51
|
-
def logger = container[__method__]
|
|
52
35
|
end
|
|
53
36
|
end
|
|
54
37
|
end
|
|
@@ -32,8 +32,8 @@ module Rubysmith
|
|
|
32
32
|
:build_conduct,
|
|
33
33
|
:build_console,
|
|
34
34
|
:build_contributions,
|
|
35
|
-
:build_dead_end,
|
|
36
35
|
:build_debug,
|
|
36
|
+
:build_funding,
|
|
37
37
|
:build_git,
|
|
38
38
|
:build_git_hub,
|
|
39
39
|
:build_git_lint,
|
|
@@ -58,7 +58,6 @@ module Rubysmith
|
|
|
58
58
|
:documentation_format,
|
|
59
59
|
:extensions_milestoner_documentation_format,
|
|
60
60
|
:extensions_milestoner_prefixes,
|
|
61
|
-
:extensions_milestoner_sign,
|
|
62
61
|
:extensions_pragmater_comments,
|
|
63
62
|
:extensions_pragmater_includes,
|
|
64
63
|
:extensions_tocer_includes,
|
|
@@ -73,6 +72,7 @@ module Rubysmith
|
|
|
73
72
|
:project_url_conduct,
|
|
74
73
|
:project_url_contributions,
|
|
75
74
|
:project_url_download,
|
|
75
|
+
:project_url_funding,
|
|
76
76
|
:project_url_home,
|
|
77
77
|
:project_url_issues,
|
|
78
78
|
:project_url_license,
|
|
@@ -131,6 +131,8 @@ module Rubysmith
|
|
|
131
131
|
|
|
132
132
|
def computed_project_url_download = format_url(__method__)
|
|
133
133
|
|
|
134
|
+
def computed_project_url_funding = format_url(__method__)
|
|
135
|
+
|
|
134
136
|
def computed_project_url_home = format_url(__method__)
|
|
135
137
|
|
|
136
138
|
def computed_project_url_issues = format_url(__method__)
|
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
:conduct: true
|
|
15
15
|
:console: true
|
|
16
16
|
:contributions: true
|
|
17
|
-
:dead_end: true
|
|
18
17
|
:debug: true
|
|
18
|
+
:funding: false
|
|
19
19
|
:git: true
|
|
20
20
|
:git_hub: false
|
|
21
21
|
:git_lint: true
|
|
@@ -43,14 +43,13 @@
|
|
|
43
43
|
:extensions:
|
|
44
44
|
:milestoner:
|
|
45
45
|
:documentation:
|
|
46
|
-
:format: "
|
|
46
|
+
:format: "adoc"
|
|
47
47
|
:prefixes:
|
|
48
48
|
- Fixed
|
|
49
49
|
- Added
|
|
50
50
|
- Updated
|
|
51
51
|
- Removed
|
|
52
52
|
- Refactored
|
|
53
|
-
:sign: false
|
|
54
53
|
:pragmater:
|
|
55
54
|
:comments:
|
|
56
55
|
- "# frozen_string_literal: true"
|
|
@@ -82,6 +81,7 @@
|
|
|
82
81
|
:conduct:
|
|
83
82
|
:contributions:
|
|
84
83
|
:download:
|
|
84
|
+
:funding:
|
|
85
85
|
:home:
|
|
86
86
|
:issues:
|
|
87
87
|
:license:
|
data/lib/rubysmith/container.rb
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require "cogger"
|
|
3
4
|
require "dry-container"
|
|
4
|
-
require "logger"
|
|
5
5
|
require "pastel"
|
|
6
6
|
require "spek"
|
|
7
7
|
|
|
@@ -10,30 +10,10 @@ module Rubysmith
|
|
|
10
10
|
module Container
|
|
11
11
|
extend Dry::Container::Mixin
|
|
12
12
|
|
|
13
|
+
register(:colorizer) { Pastel.new enabled: $stdout.tty? }
|
|
13
14
|
register(:configuration) { Configuration::Loader.call }
|
|
14
15
|
register(:specification) { Spek::Loader.call "#{__dir__}/../../rubysmith.gemspec" }
|
|
15
|
-
register(:colorizer) { Pastel.new enabled: $stdout.tty? }
|
|
16
16
|
register(:kernel) { Kernel }
|
|
17
|
-
|
|
18
|
-
register :log_colors do
|
|
19
|
-
{
|
|
20
|
-
"DEBUG" => self[:colorizer].white.detach,
|
|
21
|
-
"INFO" => self[:colorizer].green.detach,
|
|
22
|
-
"WARN" => self[:colorizer].yellow.detach,
|
|
23
|
-
"ERROR" => self[:colorizer].red.detach,
|
|
24
|
-
"FATAL" => self[:colorizer].white.bold.on_red.detach,
|
|
25
|
-
"ANY" => self[:colorizer].white.bold.detach
|
|
26
|
-
}
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
register :logger do
|
|
30
|
-
Logger.new $stdout,
|
|
31
|
-
level: Logger.const_get(ENV.fetch("LOG_LEVEL", "INFO")),
|
|
32
|
-
formatter: (
|
|
33
|
-
lambda do |severity, _at, _name, message|
|
|
34
|
-
self[:log_colors][severity].call "#{message}\n"
|
|
35
|
-
end
|
|
36
|
-
)
|
|
37
|
-
end
|
|
17
|
+
register(:logger) { Cogger::Client.new }
|
|
38
18
|
end
|
|
39
19
|
end
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
github: [<%= configuration.git_hub_user %>]
|
|
@@ -14,13 +14,10 @@ group :code_quality do
|
|
|
14
14
|
gem "bundler-leak", "~> 0.2"
|
|
15
15
|
<% end %>
|
|
16
16
|
<% if configuration.build_caliber %>
|
|
17
|
-
gem "caliber", "~> 0.
|
|
18
|
-
<% end %>
|
|
19
|
-
<% if configuration.build_dead_end %>
|
|
20
|
-
gem "dead_end", "~> 3.1"
|
|
17
|
+
gem "caliber", "~> 0.7"
|
|
21
18
|
<% end %>
|
|
22
19
|
<% if configuration.build_git && configuration.build_git_lint %>
|
|
23
|
-
gem "git-lint", "~>
|
|
20
|
+
gem "git-lint", "~> 4.0"
|
|
24
21
|
<% end %>
|
|
25
22
|
<% if configuration.build_reek %>
|
|
26
23
|
gem "reek", "~> 6.1"
|
|
@@ -59,6 +56,6 @@ group :tools do
|
|
|
59
56
|
gem "amazing_print", "~> 1.4"
|
|
60
57
|
<% end %>
|
|
61
58
|
<% if configuration.build_debug %>
|
|
62
|
-
gem "debug", "~> 1.
|
|
59
|
+
gem "debug", "~> 1.5"
|
|
63
60
|
<% end %>
|
|
64
61
|
end
|
|
@@ -25,7 +25,7 @@ RSpec.configure do |config|
|
|
|
25
25
|
config.disable_monkey_patching!
|
|
26
26
|
config.example_status_persistence_file_path = "./tmp/rspec-examples.txt"
|
|
27
27
|
config.filter_run_when_matching :focus
|
|
28
|
-
config.formatter = ENV
|
|
28
|
+
config.formatter = ENV.fetch("CI", false) == "true" ? :progress : :documentation
|
|
29
29
|
config.order = :random
|
|
30
30
|
config.shared_context_metadata_behavior = :apply_to_host_groups
|
|
31
31
|
config.warnings = true
|
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 = "
|
|
5
|
+
spec.version = "3.1.0"
|
|
6
6
|
spec.authors = ["Brooke Kuhlmann"]
|
|
7
7
|
spec.email = ["brooke@alchemists.io"]
|
|
8
8
|
spec.homepage = "https://github.com/bkuhlmann/rubysmith"
|
|
@@ -13,6 +13,7 @@ Gem::Specification.new do |spec|
|
|
|
13
13
|
"bug_tracker_uri" => "https://github.com/bkuhlmann/rubysmith/issues",
|
|
14
14
|
"changelog_uri" => "https://www.alchemists.io/projects/rubysmith/versions",
|
|
15
15
|
"documentation_uri" => "https://www.alchemists.io/projects/rubysmith",
|
|
16
|
+
"funding_uri" => "https://github.com/sponsors/bkuhlmann",
|
|
16
17
|
"label" => "Rubysmith",
|
|
17
18
|
"rubygems_mfa_required" => "true",
|
|
18
19
|
"source_code_uri" => "https://github.com/bkuhlmann/rubysmith"
|
|
@@ -22,16 +23,18 @@ Gem::Specification.new do |spec|
|
|
|
22
23
|
spec.cert_chain = [Gem.default_cert_path]
|
|
23
24
|
|
|
24
25
|
spec.required_ruby_version = "~> 3.1"
|
|
26
|
+
spec.add_dependency "auto_injector", "~> 0.4"
|
|
27
|
+
spec.add_dependency "cogger", "~> 0.0"
|
|
25
28
|
spec.add_dependency "dry-container", "~> 0.9"
|
|
26
|
-
spec.add_dependency "git_plus", "~> 1.
|
|
27
|
-
spec.add_dependency "milestoner", "~>
|
|
29
|
+
spec.add_dependency "git_plus", "~> 1.3"
|
|
30
|
+
spec.add_dependency "milestoner", "~> 14.0"
|
|
28
31
|
spec.add_dependency "pastel", "~> 0.8"
|
|
29
|
-
spec.add_dependency "pragmater", "~>
|
|
32
|
+
spec.add_dependency "pragmater", "~> 11.0"
|
|
30
33
|
spec.add_dependency "refinements", "~> 9.2"
|
|
31
|
-
spec.add_dependency "rubocop", "~> 1.
|
|
34
|
+
spec.add_dependency "rubocop", "~> 1.27"
|
|
32
35
|
spec.add_dependency "runcom", "~> 8.2"
|
|
33
36
|
spec.add_dependency "spek", "~> 0.2"
|
|
34
|
-
spec.add_dependency "tocer", "~>
|
|
37
|
+
spec.add_dependency "tocer", "~> 14.0"
|
|
35
38
|
spec.add_dependency "zeitwerk", "~> 2.5"
|
|
36
39
|
|
|
37
40
|
spec.bindir = "exe"
|
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:
|
|
4
|
+
version: 3.1.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Brooke Kuhlmann
|
|
@@ -10,9 +10,9 @@ bindir: exe
|
|
|
10
10
|
cert_chain:
|
|
11
11
|
- |
|
|
12
12
|
-----BEGIN CERTIFICATE-----
|
|
13
|
-
MIIC/
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
MIIC/jCCAeagAwIBAgIBBTANBgkqhkiG9w0BAQsFADAlMSMwIQYDVQQDDBpicm9v
|
|
14
|
+
a2UvREM9YWxjaGVtaXN0cy9EQz1pbzAeFw0yMjAzMTkxNzI0MzJaFw0yMzAzMTkx
|
|
15
|
+
NzI0MzJaMCUxIzAhBgNVBAMMGmJyb29rZS9EQz1hbGNoZW1pc3RzL0RDPWlvMIIB
|
|
16
16
|
IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA6l1qpXTiomH1RfMRloyw7MiE
|
|
17
17
|
xyVx/x8Yc3EupdH7uhNaTXQGyORN6aOY//1QXXMHIZ9tW74nZLhesWMSUMYy0XhB
|
|
18
18
|
brs+KkurHnc9FnEJAbG7ebGvl/ncqZt72nQvaxpDxvuCBHgJAz+8i5wl6FhLw+oT
|
|
@@ -20,16 +20,44 @@ cert_chain:
|
|
|
20
20
|
D5vkU0YlAm1r98BymuJlcQ1qdkVEI1d48ph4kcS0S0nv1RiuyVb6TCAR3Nu3VaVq
|
|
21
21
|
3fPzZKJLZBx67UvXdbdicWPiUR75elI4PXpLIic3xytaF52ZJYyKZCNZJhNwfQID
|
|
22
22
|
AQABozkwNzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQU0nzow9vc
|
|
23
|
-
2CdikiiE3fJhP/
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
23
|
+
2CdikiiE3fJhP/gY4ggwDQYJKoZIhvcNAQELBQADggEBAJbbNyWzFjqUNVPPCUCo
|
|
24
|
+
IMrhDa9xf1xkORXNYYbmXgoxRy/KyNbUr+jgEEoWJAm9GXlcqxxWAUI6pK/i4/Qi
|
|
25
|
+
X6rPFEFmeObDOHNvuqy8Hd6AYsu+kP94U/KJhe9wnWGMmGoNKJNU3EkW3jM/osSl
|
|
26
|
+
+JRxiH5t4WtnDiVyoYl5nYC02rYdjJkG6VMxDymXTqn7u6HhYgZkGujq1UPar8x2
|
|
27
|
+
hNIWJblDKKSu7hA2d6+kUthuYo13o1sg1Da/AEDg0hoZSUvhqDEF5Hy232qb3pDt
|
|
28
|
+
CxDe2+VuChj4I1nvIHdu+E6XoEVlanUPKmSg6nddhkKn2gC45Kyzh6FZqnzH/CRp
|
|
29
|
+
RFE=
|
|
30
30
|
-----END CERTIFICATE-----
|
|
31
|
-
date: 2022-
|
|
31
|
+
date: 2022-04-30 00:00:00.000000000 Z
|
|
32
32
|
dependencies:
|
|
33
|
+
- !ruby/object:Gem::Dependency
|
|
34
|
+
name: auto_injector
|
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
|
36
|
+
requirements:
|
|
37
|
+
- - "~>"
|
|
38
|
+
- !ruby/object:Gem::Version
|
|
39
|
+
version: '0.4'
|
|
40
|
+
type: :runtime
|
|
41
|
+
prerelease: false
|
|
42
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
43
|
+
requirements:
|
|
44
|
+
- - "~>"
|
|
45
|
+
- !ruby/object:Gem::Version
|
|
46
|
+
version: '0.4'
|
|
47
|
+
- !ruby/object:Gem::Dependency
|
|
48
|
+
name: cogger
|
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
|
50
|
+
requirements:
|
|
51
|
+
- - "~>"
|
|
52
|
+
- !ruby/object:Gem::Version
|
|
53
|
+
version: '0.0'
|
|
54
|
+
type: :runtime
|
|
55
|
+
prerelease: false
|
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
57
|
+
requirements:
|
|
58
|
+
- - "~>"
|
|
59
|
+
- !ruby/object:Gem::Version
|
|
60
|
+
version: '0.0'
|
|
33
61
|
- !ruby/object:Gem::Dependency
|
|
34
62
|
name: dry-container
|
|
35
63
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -50,28 +78,28 @@ dependencies:
|
|
|
50
78
|
requirements:
|
|
51
79
|
- - "~>"
|
|
52
80
|
- !ruby/object:Gem::Version
|
|
53
|
-
version: '1.
|
|
81
|
+
version: '1.3'
|
|
54
82
|
type: :runtime
|
|
55
83
|
prerelease: false
|
|
56
84
|
version_requirements: !ruby/object:Gem::Requirement
|
|
57
85
|
requirements:
|
|
58
86
|
- - "~>"
|
|
59
87
|
- !ruby/object:Gem::Version
|
|
60
|
-
version: '1.
|
|
88
|
+
version: '1.3'
|
|
61
89
|
- !ruby/object:Gem::Dependency
|
|
62
90
|
name: milestoner
|
|
63
91
|
requirement: !ruby/object:Gem::Requirement
|
|
64
92
|
requirements:
|
|
65
93
|
- - "~>"
|
|
66
94
|
- !ruby/object:Gem::Version
|
|
67
|
-
version: '
|
|
95
|
+
version: '14.0'
|
|
68
96
|
type: :runtime
|
|
69
97
|
prerelease: false
|
|
70
98
|
version_requirements: !ruby/object:Gem::Requirement
|
|
71
99
|
requirements:
|
|
72
100
|
- - "~>"
|
|
73
101
|
- !ruby/object:Gem::Version
|
|
74
|
-
version: '
|
|
102
|
+
version: '14.0'
|
|
75
103
|
- !ruby/object:Gem::Dependency
|
|
76
104
|
name: pastel
|
|
77
105
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -92,14 +120,14 @@ dependencies:
|
|
|
92
120
|
requirements:
|
|
93
121
|
- - "~>"
|
|
94
122
|
- !ruby/object:Gem::Version
|
|
95
|
-
version: '
|
|
123
|
+
version: '11.0'
|
|
96
124
|
type: :runtime
|
|
97
125
|
prerelease: false
|
|
98
126
|
version_requirements: !ruby/object:Gem::Requirement
|
|
99
127
|
requirements:
|
|
100
128
|
- - "~>"
|
|
101
129
|
- !ruby/object:Gem::Version
|
|
102
|
-
version: '
|
|
130
|
+
version: '11.0'
|
|
103
131
|
- !ruby/object:Gem::Dependency
|
|
104
132
|
name: refinements
|
|
105
133
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -120,14 +148,14 @@ dependencies:
|
|
|
120
148
|
requirements:
|
|
121
149
|
- - "~>"
|
|
122
150
|
- !ruby/object:Gem::Version
|
|
123
|
-
version: '1.
|
|
151
|
+
version: '1.27'
|
|
124
152
|
type: :runtime
|
|
125
153
|
prerelease: false
|
|
126
154
|
version_requirements: !ruby/object:Gem::Requirement
|
|
127
155
|
requirements:
|
|
128
156
|
- - "~>"
|
|
129
157
|
- !ruby/object:Gem::Version
|
|
130
|
-
version: '1.
|
|
158
|
+
version: '1.27'
|
|
131
159
|
- !ruby/object:Gem::Dependency
|
|
132
160
|
name: runcom
|
|
133
161
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -162,14 +190,14 @@ dependencies:
|
|
|
162
190
|
requirements:
|
|
163
191
|
- - "~>"
|
|
164
192
|
- !ruby/object:Gem::Version
|
|
165
|
-
version: '
|
|
193
|
+
version: '14.0'
|
|
166
194
|
type: :runtime
|
|
167
195
|
prerelease: false
|
|
168
196
|
version_requirements: !ruby/object:Gem::Requirement
|
|
169
197
|
requirements:
|
|
170
198
|
- - "~>"
|
|
171
199
|
- !ruby/object:Gem::Version
|
|
172
|
-
version: '
|
|
200
|
+
version: '14.0'
|
|
173
201
|
- !ruby/object:Gem::Dependency
|
|
174
202
|
name: zeitwerk
|
|
175
203
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -221,6 +249,8 @@ files:
|
|
|
221
249
|
- lib/rubysmith/builders/version.rb
|
|
222
250
|
- lib/rubysmith/cli/actions/build.rb
|
|
223
251
|
- lib/rubysmith/cli/actions/config.rb
|
|
252
|
+
- lib/rubysmith/cli/actions/container.rb
|
|
253
|
+
- lib/rubysmith/cli/actions/import.rb
|
|
224
254
|
- lib/rubysmith/cli/actions/publish.rb
|
|
225
255
|
- lib/rubysmith/cli/parser.rb
|
|
226
256
|
- lib/rubysmith/cli/parsers/build.rb
|
|
@@ -239,10 +269,12 @@ files:
|
|
|
239
269
|
- lib/rubysmith/extensions/pragmater.rb
|
|
240
270
|
- lib/rubysmith/extensions/rubocop.rb
|
|
241
271
|
- lib/rubysmith/extensions/tocer.rb
|
|
272
|
+
- lib/rubysmith/import.rb
|
|
242
273
|
- lib/rubysmith/pathway.rb
|
|
243
274
|
- lib/rubysmith/renderers/erb.rb
|
|
244
275
|
- lib/rubysmith/renderers/namespace.rb
|
|
245
276
|
- lib/rubysmith/templates/%project_name%/.circleci/config.yml.erb
|
|
277
|
+
- lib/rubysmith/templates/%project_name%/.github/FUNDING.yml.erb
|
|
246
278
|
- lib/rubysmith/templates/%project_name%/.github/ISSUE_TEMPLATE.md.erb
|
|
247
279
|
- lib/rubysmith/templates/%project_name%/.github/PULL_REQUEST_TEMPLATE.md.erb
|
|
248
280
|
- lib/rubysmith/templates/%project_name%/.gitignore.erb
|
|
@@ -279,6 +311,7 @@ metadata:
|
|
|
279
311
|
bug_tracker_uri: https://github.com/bkuhlmann/rubysmith/issues
|
|
280
312
|
changelog_uri: https://www.alchemists.io/projects/rubysmith/versions
|
|
281
313
|
documentation_uri: https://www.alchemists.io/projects/rubysmith
|
|
314
|
+
funding_uri: https://github.com/sponsors/bkuhlmann
|
|
282
315
|
label: Rubysmith
|
|
283
316
|
rubygems_mfa_required: 'true'
|
|
284
317
|
source_code_uri: https://github.com/bkuhlmann/rubysmith
|
|
@@ -297,7 +330,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
297
330
|
- !ruby/object:Gem::Version
|
|
298
331
|
version: '0'
|
|
299
332
|
requirements: []
|
|
300
|
-
rubygems_version: 3.3.
|
|
333
|
+
rubygems_version: 3.3.12
|
|
301
334
|
signing_key:
|
|
302
335
|
specification_version: 4
|
|
303
336
|
summary: A command line interface for smithing Ruby projects.
|
metadata.gz.sig
CHANGED
|
Binary file
|