gemsmith 19.3.0 → 19.5.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 +13 -13
- data/gemsmith.gemspec +5 -5
- data/lib/gemsmith/cli/actions/build.rb +2 -2
- data/lib/gemsmith/cli/actions/config.rb +2 -3
- data/lib/gemsmith/cli/actions/edit.rb +2 -3
- data/lib/gemsmith/cli/actions/install.rb +2 -3
- data/lib/gemsmith/cli/actions/publish.rb +2 -3
- data/lib/gemsmith/cli/actions/view.rb +2 -3
- data/lib/gemsmith/cli/parser.rb +2 -3
- data/lib/gemsmith/cli/parsers/build.rb +2 -6
- data/lib/gemsmith/cli/parsers/core.rb +2 -5
- data/lib/gemsmith/cli/shell.rb +4 -4
- data/lib/gemsmith/templates/%project_name%/lib/%project_path%/cli/actions/config.rb.erb +2 -3
- data/lib/gemsmith/templates/%project_name%/lib/%project_path%/cli/parser.rb.erb +2 -3
- data/lib/gemsmith/templates/%project_name%/lib/%project_path%/cli/parsers/core.rb.erb +2 -5
- data/lib/gemsmith/templates/%project_name%/lib/%project_path%/cli/shell.rb.erb +4 -4
- data/lib/gemsmith/tools/installer.rb +2 -3
- data/lib/gemsmith/tools/pusher.rb +2 -3
- data/lib/gemsmith/tools/versioner.rb +6 -6
- data.tar.gz.sig +0 -0
- metadata +8 -8
- 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: ffd5500f891b0e13dc29d9e4dcf429bef926fc44567dd2f16604e63ade605d00
|
4
|
+
data.tar.gz: 91b7f4d82ad89e38825ee5ad079abf80ddbd0c743d6774ea2b3fc2a35e3e91a9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9226c54c0e691d3fbaaab5f0320fcae0ff7944da2718d5c25a1f4879593eba2789c1562b6dd687ac8c4a327e36d994306e47382319513c847a8b182117a864b0
|
7
|
+
data.tar.gz: 40a9175aaa33cc56b11eca2b6dc6f7cd9f3bc3d06417e8d2c44ac8ab823f5c4df1b07983cb8b0bb5cb084c474fff2b5bf488a2216f74cdef419b9708e38f833f
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/README.adoc
CHANGED
@@ -14,7 +14,7 @@ toc::[]
|
|
14
14
|
|
15
15
|
== Features
|
16
16
|
|
17
|
-
* Supports all link:https://
|
17
|
+
* Supports all link:https://alchemists.io/projects/rubysmith[Rubysmith] features.
|
18
18
|
* Supports basic gem skeletons or more advanced Command Line Interface (CLI) skeletons.
|
19
19
|
* Supports gem building, installing for local development, and publishing.
|
20
20
|
* Supports the editing and viewing of installed gems.
|
@@ -89,7 +89,7 @@ BUILD OPTIONS:
|
|
89
89
|
The core functionality of this gem centers around the `--build` command and associated flags. The
|
90
90
|
build options allow you to further customize the kind of gem you want to build. Most build options
|
91
91
|
are enabled by default. For detailed documentation on all supported flags, see the
|
92
|
-
link:https://
|
92
|
+
link:https://alchemists.io/projects/rubysmith/#_build[Rubysmith] documentation.
|
93
93
|
|
94
94
|
The build option which is unique to Gemsmith is the `--cli` option. This allows you to build a gem
|
95
95
|
which has a Command Line Interface (CLI). There are multiple ways a CLI can be built in Ruby but
|
@@ -149,7 +149,7 @@ gemsmith --publish demo
|
|
149
149
|
----
|
150
150
|
|
151
151
|
Security is important which requires a GPG key for signing your Git tags and
|
152
|
-
link:https://
|
152
|
+
link:https://alchemists.io/articles/ruby_gems_multi_factor_authentication/[RubyGems Multi-Factor
|
153
153
|
Authentication] for publishing to RubyGems. Both of which are enabled by default. You'll want to
|
154
154
|
read through the linked article which delves into how Gemsmith automatically makes use of your
|
155
155
|
YubiKey to authenticate with RubyGems. Spending the time to set this up will allow Gemsmith to use
|
@@ -197,11 +197,11 @@ This gem can be configured via a global configuration:
|
|
197
197
|
$HOME/.config/gemsmith/configuration.yml
|
198
198
|
....
|
199
199
|
|
200
|
-
It can also be configured via link:https://
|
200
|
+
It can also be configured via link:https://alchemists.io/projects/xdg[XDG] environment
|
201
201
|
variables.
|
202
202
|
|
203
203
|
The default configuration is everything provided in the
|
204
|
-
link:https://
|
204
|
+
link:https://alchemists.io/projects/rubysmith/#_configuration[Rubysmith] with the addition of
|
205
205
|
the following:
|
206
206
|
|
207
207
|
[source,yaml]
|
@@ -499,7 +499,7 @@ The above will ensure the following:
|
|
499
499
|
branch will a new version be automatically published.
|
500
500
|
|
501
501
|
This entire workflow is explained in my
|
502
|
-
link:https://
|
502
|
+
link:https://alchemists.io/talks/ruby_git_hub_packages[talk] on this exact subject too.
|
503
503
|
|
504
504
|
== Development
|
505
505
|
|
@@ -528,18 +528,18 @@ To test, run:
|
|
528
528
|
bin/rake
|
529
529
|
----
|
530
530
|
|
531
|
-
== link:https://
|
531
|
+
== link:https://alchemists.io/policies/license[License]
|
532
532
|
|
533
|
-
== link:https://
|
533
|
+
== link:https://alchemists.io/policies/security[Security]
|
534
534
|
|
535
|
-
== link:https://
|
535
|
+
== link:https://alchemists.io/policies/code_of_conduct[Code of Conduct]
|
536
536
|
|
537
|
-
== link:https://
|
537
|
+
== link:https://alchemists.io/policies/contributions[Contributions]
|
538
538
|
|
539
|
-
== link:https://
|
539
|
+
== link:https://alchemists.io/projects/gemsmith/versions[Versions]
|
540
540
|
|
541
|
-
== link:https://
|
541
|
+
== link:https://alchemists.io/community[Community]
|
542
542
|
|
543
543
|
== Credits
|
544
544
|
|
545
|
-
Engineered by link:https://
|
545
|
+
Engineered by link:https://alchemists.io/team/brooke_kuhlmann[Brooke Kuhlmann].
|
data/gemsmith.gemspec
CHANGED
@@ -2,17 +2,17 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |spec|
|
4
4
|
spec.name = "gemsmith"
|
5
|
-
spec.version = "19.
|
5
|
+
spec.version = "19.5.0"
|
6
6
|
spec.authors = ["Brooke Kuhlmann"]
|
7
7
|
spec.email = ["brooke@alchemists.io"]
|
8
|
-
spec.homepage = "https://
|
8
|
+
spec.homepage = "https://alchemists.io/projects/gemsmith"
|
9
9
|
spec.summary = "A command line interface for smithing Ruby gems."
|
10
10
|
spec.license = "Hippocratic-2.1"
|
11
11
|
|
12
12
|
spec.metadata = {
|
13
13
|
"bug_tracker_uri" => "https://github.com/bkuhlmann/gemsmith/issues",
|
14
|
-
"changelog_uri" => "https://
|
15
|
-
"documentation_uri" => "https://
|
14
|
+
"changelog_uri" => "https://alchemists.io/projects/gemsmith/versions",
|
15
|
+
"documentation_uri" => "https://alchemists.io/projects/gemsmith",
|
16
16
|
"funding_uri" => "https://github.com/sponsors/bkuhlmann",
|
17
17
|
"label" => "Gemsmith",
|
18
18
|
"rubygems_mfa_required" => "true",
|
@@ -30,7 +30,7 @@ Gem::Specification.new do |spec|
|
|
30
30
|
spec.add_dependency "infusible", "~> 1.0"
|
31
31
|
spec.add_dependency "milestoner", "~> 15.2"
|
32
32
|
spec.add_dependency "refinements", "~> 10.0"
|
33
|
-
spec.add_dependency "rubysmith", "~> 4.
|
33
|
+
spec.add_dependency "rubysmith", "~> 4.6"
|
34
34
|
spec.add_dependency "runcom", "~> 9.0"
|
35
35
|
spec.add_dependency "spek", "~> 1.0"
|
36
36
|
spec.add_dependency "versionaire", "~> 11.0"
|
@@ -7,9 +7,8 @@ module Gemsmith
|
|
7
7
|
class Config
|
8
8
|
include Gemsmith::Import[:kernel, :logger]
|
9
9
|
|
10
|
-
def initialize
|
11
|
-
super(**
|
12
|
-
|
10
|
+
def initialize(client: Configuration::Loader::CLIENT, **)
|
11
|
+
super(**)
|
13
12
|
@client = client
|
14
13
|
end
|
15
14
|
|
@@ -11,9 +11,8 @@ module Gemsmith
|
|
11
11
|
include Gemsmith::Import[:kernel, :logger]
|
12
12
|
include Dry::Monads[:result]
|
13
13
|
|
14
|
-
def initialize
|
15
|
-
super(**
|
16
|
-
|
14
|
+
def initialize(picker: Spek::Picker, editor: Tools::Editor.new, **)
|
15
|
+
super(**)
|
17
16
|
@picker = picker
|
18
17
|
@editor = editor
|
19
18
|
end
|
@@ -11,9 +11,8 @@ module Gemsmith
|
|
11
11
|
include Gemsmith::Import[:logger]
|
12
12
|
include Dry::Monads[:result]
|
13
13
|
|
14
|
-
def initialize
|
15
|
-
super(**
|
16
|
-
|
14
|
+
def initialize(installer: Tools::Installer.new, loader: Spek::Loader, **)
|
15
|
+
super(**)
|
17
16
|
@installer = installer
|
18
17
|
@loader = loader
|
19
18
|
end
|
@@ -11,9 +11,8 @@ module Gemsmith
|
|
11
11
|
include Gemsmith::Import[:logger]
|
12
12
|
include Dry::Monads[:result]
|
13
13
|
|
14
|
-
def initialize
|
15
|
-
super(**
|
16
|
-
|
14
|
+
def initialize(publisher: Tools::Publisher.new, loader: Spek::Loader, **)
|
15
|
+
super(**)
|
17
16
|
@publisher = publisher
|
18
17
|
@loader = loader
|
19
18
|
end
|
@@ -11,9 +11,8 @@ module Gemsmith
|
|
11
11
|
include Gemsmith::Import[:kernel, :logger]
|
12
12
|
include Dry::Monads[:result]
|
13
13
|
|
14
|
-
def initialize
|
15
|
-
super(**
|
16
|
-
|
14
|
+
def initialize(picker: Spek::Picker, viewer: Tools::Viewer.new, **)
|
15
|
+
super(**)
|
17
16
|
@picker = picker
|
18
17
|
@viewer = viewer
|
19
18
|
end
|
data/lib/gemsmith/cli/parser.rb
CHANGED
@@ -14,9 +14,8 @@ module Gemsmith
|
|
14
14
|
# Order is important.
|
15
15
|
SECTIONS = [Parsers::Core, Rubysmith::CLI::Parsers::Build, Parsers::Build].freeze
|
16
16
|
|
17
|
-
def initialize
|
18
|
-
super(**
|
19
|
-
|
17
|
+
def initialize(sections: SECTIONS, client: CLIENT, **)
|
18
|
+
super(**)
|
20
19
|
@sections = sections
|
21
20
|
@client = client
|
22
21
|
@configuration_duplicate = configuration.dup
|
@@ -14,12 +14,8 @@ module Gemsmith
|
|
14
14
|
|
15
15
|
def self.call(...) = new(...).call
|
16
16
|
|
17
|
-
def initialize
|
18
|
-
|
19
|
-
**dependencies
|
20
|
-
|
21
|
-
super(**dependencies)
|
22
|
-
|
17
|
+
def initialize(configuration = Container[:configuration], client: Parser::CLIENT, **)
|
18
|
+
super(**)
|
23
19
|
@configuration = configuration
|
24
20
|
@client = client
|
25
21
|
end
|
@@ -15,11 +15,8 @@ module Gemsmith
|
|
15
15
|
|
16
16
|
def self.call(...) = new(...).call
|
17
17
|
|
18
|
-
def initialize
|
19
|
-
|
20
|
-
**dependencies
|
21
|
-
super(**dependencies)
|
22
|
-
|
18
|
+
def initialize(configuration = Container[:configuration], client: Parser::CLIENT, **)
|
19
|
+
super(**)
|
23
20
|
@configuration = configuration
|
24
21
|
@client = client
|
25
22
|
end
|
data/lib/gemsmith/cli/shell.rb
CHANGED
@@ -17,13 +17,13 @@ module Gemsmith
|
|
17
17
|
:logger
|
18
18
|
]
|
19
19
|
|
20
|
-
def initialize
|
21
|
-
super(**
|
20
|
+
def initialize(parser: Parser.new, **)
|
21
|
+
super(**)
|
22
22
|
@parser = parser
|
23
23
|
end
|
24
24
|
|
25
25
|
def call arguments = Core::EMPTY_ARRAY
|
26
|
-
|
26
|
+
act_on parser.call(arguments)
|
27
27
|
rescue OptionParser::ParseError => error
|
28
28
|
logger.error { error.message }
|
29
29
|
end
|
@@ -32,7 +32,7 @@ module Gemsmith
|
|
32
32
|
|
33
33
|
attr_reader :parser
|
34
34
|
|
35
|
-
def
|
35
|
+
def act_on configuration
|
36
36
|
case configuration
|
37
37
|
in action_config: Symbol => action then config.call action
|
38
38
|
in action_build: true then build.call configuration
|
@@ -5,9 +5,8 @@
|
|
5
5
|
class Config
|
6
6
|
include <%= configuration.project_class %>::Import[:kernel, :logger]
|
7
7
|
|
8
|
-
def initialize
|
9
|
-
super(**
|
10
|
-
|
8
|
+
def initialize(client: Configuration::Loader::CLIENT, **)
|
9
|
+
super(**)
|
11
10
|
@client = client
|
12
11
|
end
|
13
12
|
|
@@ -12,9 +12,8 @@ require "optparse"
|
|
12
12
|
# Order is important.
|
13
13
|
SECTIONS = [Parsers::Core].freeze
|
14
14
|
|
15
|
-
def initialize
|
16
|
-
super(**
|
17
|
-
|
15
|
+
def initialize(sections: SECTIONS, client: CLIENT, **)
|
16
|
+
super(**)
|
18
17
|
@sections = sections
|
19
18
|
@client = client
|
20
19
|
@configuration_duplicate = configuration.dup
|
@@ -12,11 +12,8 @@ require "refinements/structs"
|
|
12
12
|
|
13
13
|
def self.call(...) = new(...).call
|
14
14
|
|
15
|
-
def initialize
|
16
|
-
|
17
|
-
**dependencies
|
18
|
-
|
19
|
-
super(**dependencies)
|
15
|
+
def initialize(configuration = Container[:configuration], client: Parser::CLIENT, **)
|
16
|
+
super(**)
|
20
17
|
@configuration = configuration
|
21
18
|
@client = client
|
22
19
|
end
|
@@ -6,13 +6,13 @@ require "core"
|
|
6
6
|
class Shell
|
7
7
|
include Actions::Import[:config, :specification, :logger]
|
8
8
|
|
9
|
-
def initialize
|
10
|
-
super(**
|
9
|
+
def initialize(parser: Parser.new, **)
|
10
|
+
super(**)
|
11
11
|
@parser = parser
|
12
12
|
end
|
13
13
|
|
14
14
|
def call arguments = Core::EMPTY_ARRAY
|
15
|
-
|
15
|
+
act_on parser.call(arguments)
|
16
16
|
rescue OptionParser::ParseError => error
|
17
17
|
logger.error { error.message }
|
18
18
|
end
|
@@ -21,7 +21,7 @@ require "core"
|
|
21
21
|
|
22
22
|
attr_reader :parser
|
23
23
|
|
24
|
-
def
|
24
|
+
def act_on configuration
|
25
25
|
case configuration
|
26
26
|
in action_config: Symbol => action then config.call action
|
27
27
|
in action_version: true then logger.info { specification.labeled_version }
|
@@ -10,9 +10,8 @@ module Gemsmith
|
|
10
10
|
include Import[:executor, :logger]
|
11
11
|
include Dry::Monads[:result]
|
12
12
|
|
13
|
-
def initialize
|
14
|
-
super(**
|
15
|
-
|
13
|
+
def initialize(command: Gem::CommandManager.new, **)
|
14
|
+
super(**)
|
16
15
|
@command = command
|
17
16
|
end
|
18
17
|
|
@@ -10,12 +10,12 @@ module Gemsmith
|
|
10
10
|
include Import[:configuration]
|
11
11
|
include Dry::Monads[:result]
|
12
12
|
|
13
|
-
def initialize
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
13
|
+
def initialize(
|
14
|
+
client: Milestoner::Tags::Publisher.new,
|
15
|
+
content: Milestoner::Configuration::Content,
|
16
|
+
**
|
17
|
+
)
|
18
|
+
super(**)
|
19
19
|
@client = client
|
20
20
|
@content = content
|
21
21
|
end
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gemsmith
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 19.
|
4
|
+
version: 19.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brooke Kuhlmann
|
@@ -28,7 +28,7 @@ cert_chain:
|
|
28
28
|
CxDe2+VuChj4I1nvIHdu+E6XoEVlanUPKmSg6nddhkKn2gC45Kyzh6FZqnzH/CRp
|
29
29
|
RFE=
|
30
30
|
-----END CERTIFICATE-----
|
31
|
-
date: 2023-
|
31
|
+
date: 2023-02-19 00:00:00.000000000 Z
|
32
32
|
dependencies:
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: cogger
|
@@ -134,14 +134,14 @@ dependencies:
|
|
134
134
|
requirements:
|
135
135
|
- - "~>"
|
136
136
|
- !ruby/object:Gem::Version
|
137
|
-
version: '4.
|
137
|
+
version: '4.6'
|
138
138
|
type: :runtime
|
139
139
|
prerelease: false
|
140
140
|
version_requirements: !ruby/object:Gem::Requirement
|
141
141
|
requirements:
|
142
142
|
- - "~>"
|
143
143
|
- !ruby/object:Gem::Version
|
144
|
-
version: '4.
|
144
|
+
version: '4.6'
|
145
145
|
- !ruby/object:Gem::Dependency
|
146
146
|
name: runcom
|
147
147
|
requirement: !ruby/object:Gem::Requirement
|
@@ -267,13 +267,13 @@ files:
|
|
267
267
|
- lib/gemsmith/tools/validator.rb
|
268
268
|
- lib/gemsmith/tools/versioner.rb
|
269
269
|
- lib/gemsmith/tools/viewer.rb
|
270
|
-
homepage: https://
|
270
|
+
homepage: https://alchemists.io/projects/gemsmith
|
271
271
|
licenses:
|
272
272
|
- Hippocratic-2.1
|
273
273
|
metadata:
|
274
274
|
bug_tracker_uri: https://github.com/bkuhlmann/gemsmith/issues
|
275
|
-
changelog_uri: https://
|
276
|
-
documentation_uri: https://
|
275
|
+
changelog_uri: https://alchemists.io/projects/gemsmith/versions
|
276
|
+
documentation_uri: https://alchemists.io/projects/gemsmith
|
277
277
|
funding_uri: https://github.com/sponsors/bkuhlmann
|
278
278
|
label: Gemsmith
|
279
279
|
rubygems_mfa_required: 'true'
|
@@ -293,7 +293,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
293
293
|
- !ruby/object:Gem::Version
|
294
294
|
version: '0'
|
295
295
|
requirements: []
|
296
|
-
rubygems_version: 3.4.
|
296
|
+
rubygems_version: 3.4.7
|
297
297
|
signing_key:
|
298
298
|
specification_version: 4
|
299
299
|
summary: A command line interface for smithing Ruby gems.
|
metadata.gz.sig
CHANGED
Binary file
|