gemsmith 19.3.0 → 19.5.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 +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
|