gemsmith 16.1.0 → 16.2.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 +3 -1
- data/README.adoc +10 -15
- data/gemsmith.gemspec +2 -2
- data/lib/gemsmith/templates/%project_name%/%project_name%.gemspec.erb +3 -0
- data/lib/gemsmith/templates/%project_name%/lib/%project_path%/cli/parsers/core.rb.erb +8 -3
- data/lib/gemsmith/templates/%project_name%/lib/%project_path%/cli/shell.rb.erb +3 -1
- data/lib/gemsmith/templates/%project_name%/lib/%project_path%/container.rb.erb +2 -0
- data.tar.gz.sig +0 -0
- metadata +4 -4
- 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: ac0feae9681ea0c70f0057b6f147ad41055cc6b590455c820c6f262d3f480ad2
|
4
|
+
data.tar.gz: bc9a92fcd0b894ccbc7bf4d0bc8d67027daae68d69f8655857eb51315dce671d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a79b7e75db67d9c0ca46deac367dc9f0ec82ca8dfc4a05c184f92d2383654b1aa1ffe7ba3406ae4f3e336de6807fda6edf0f2284cc032eaacccf19d36b86659f
|
7
|
+
data.tar.gz: 1c125eedee89a2bea26145075cc419fdd54e563ab84ee01c993ce7506e3616a26a79b7d4a31463e2c8c7719eeefebd6d9afc9dec221cdfeefb821e31178f2ee2
|
checksums.yaml.gz.sig
CHANGED
data/README.adoc
CHANGED
@@ -4,13 +4,6 @@
|
|
4
4
|
|
5
5
|
= Gemsmith
|
6
6
|
|
7
|
-
[link=http://badge.fury.io/rb/gemsmith]
|
8
|
-
image::https://badge.fury.io/rb/gemsmith.svg[Gem Version]
|
9
|
-
[link=https://www.alchemists.io/projects/code_quality]
|
10
|
-
image::https://img.shields.io/badge/code_style-alchemists-brightgreen.svg[Alchemists Style Guide]
|
11
|
-
[link=https://circleci.com/gh/bkuhlmann/gemsmith]
|
12
|
-
image::https://circleci.com/gh/bkuhlmann/gemsmith.svg?style=svg[Circle CI Status]
|
13
|
-
|
14
7
|
Gemsmith is a command line interface for smithing Ruby gems. Perfect for when you need a
|
15
8
|
professional and robust tool beyond link:https://bundler.io[Bundler]'s basic gem skeletons. While
|
16
9
|
Bundler is great for creating your first gem, you'll quickly outgrow Bundler when creating and
|
@@ -156,15 +149,17 @@ gemsmith --publish
|
|
156
149
|
gemsmith --publish demo
|
157
150
|
----
|
158
151
|
|
159
|
-
Security is important
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
YubiKey
|
152
|
+
Security is important which requires a GPG key for signing your Git tags and
|
153
|
+
link:https://www.alchemists.io/articles/ruby_gems_multi_factor_authentication/[RubyGems Multi-Factor
|
154
|
+
Authentication] for publishing to RubyGems. Both of which are enabled by default. You'll want to
|
155
|
+
read through the linked article which delves into how Gemsmith automatically makes use of your
|
156
|
+
YubiKey to authenticate with RubyGems. Spending the time to set this up will allow Gemsmith to use
|
157
|
+
of your YubiKey for effortless and secure publishing of new versions of your gems so I highly
|
158
|
+
recommend doing this.
|
165
159
|
|
166
|
-
As
|
167
|
-
|
160
|
+
As with installing a gem, Gemsmith can be used to publish existing gems which were not built by
|
161
|
+
Gemsmith too. As long as your gem has a `*.gemspec` file with a valid version, Gemsmith will be able
|
162
|
+
to publish it.
|
168
163
|
|
169
164
|
=== Edit
|
170
165
|
|
data/gemsmith.gemspec
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |spec|
|
4
4
|
spec.name = "gemsmith"
|
5
|
-
spec.version = "16.
|
5
|
+
spec.version = "16.2.0"
|
6
6
|
spec.authors = ["Brooke Kuhlmann"]
|
7
7
|
spec.email = ["brooke@alchemists.io"]
|
8
8
|
spec.homepage = "https://www.alchemists.io/projects/gemsmith"
|
@@ -27,7 +27,7 @@ Gem::Specification.new do |spec|
|
|
27
27
|
spec.add_dependency "milestoner", "~> 13.0"
|
28
28
|
spec.add_dependency "pastel", "~> 0.8"
|
29
29
|
spec.add_dependency "refinements", "~> 9.1"
|
30
|
-
spec.add_dependency "rubysmith", "~> 1.
|
30
|
+
spec.add_dependency "rubysmith", "~> 1.3"
|
31
31
|
spec.add_dependency "runcom", "~> 8.2"
|
32
32
|
spec.add_dependency "spek", "~> 0.0"
|
33
33
|
spec.add_dependency "versionaire", "~> 10.0"
|
@@ -34,6 +34,9 @@ Gem::Specification.new do |spec|
|
|
34
34
|
<% if configuration.build_cli %>
|
35
35
|
spec.add_dependency "runcom", "~> 8.2"
|
36
36
|
<% end %>
|
37
|
+
<% if configuration.build_cli %>
|
38
|
+
spec.add_dependency "spek", "~> 0.0"
|
39
|
+
<% end %>
|
37
40
|
<% if configuration.build_zeitwerk %>
|
38
41
|
spec.add_dependency "zeitwerk", "~> 2.5"
|
39
42
|
<% end %>
|
@@ -9,13 +9,16 @@ require "refinements/structs"
|
|
9
9
|
|
10
10
|
def self.call(...) = new(...).call
|
11
11
|
|
12
|
-
def initialize configuration = Container[:configuration],
|
12
|
+
def initialize configuration = Container[:configuration],
|
13
|
+
client: Parser::CLIENT,
|
14
|
+
container: Container
|
13
15
|
@configuration = configuration
|
14
16
|
@client = client
|
17
|
+
@container = container
|
15
18
|
end
|
16
19
|
|
17
20
|
def call arguments = []
|
18
|
-
client.banner =
|
21
|
+
client.banner = specification.labeled_summary
|
19
22
|
client.separator "\nUSAGE:\n"
|
20
23
|
collate
|
21
24
|
client.parse arguments
|
@@ -24,7 +27,7 @@ require "refinements/structs"
|
|
24
27
|
|
25
28
|
private
|
26
29
|
|
27
|
-
attr_reader :configuration, :client
|
30
|
+
attr_reader :configuration, :client, :container
|
28
31
|
|
29
32
|
def collate = private_methods.sort.grep(/add_/).each { |method| __send__ method }
|
30
33
|
|
@@ -48,6 +51,8 @@ require "refinements/structs"
|
|
48
51
|
configuration.merge! action_help: true
|
49
52
|
end
|
50
53
|
end
|
54
|
+
|
55
|
+
def specification = container[__method__]
|
51
56
|
end
|
52
57
|
end
|
53
58
|
end
|
@@ -23,7 +23,7 @@
|
|
23
23
|
def perform configuration
|
24
24
|
case configuration
|
25
25
|
in action_config: Symbol => action then config action
|
26
|
-
in action_version: true then logger.info {
|
26
|
+
in action_version: true then logger.info { specification.labeled_version }
|
27
27
|
else usage
|
28
28
|
end
|
29
29
|
end
|
@@ -32,6 +32,8 @@
|
|
32
32
|
|
33
33
|
def usage = logger.unknown { parser.to_s }
|
34
34
|
|
35
|
+
def specification = container[__method__]
|
36
|
+
|
35
37
|
def logger = container[__method__]
|
36
38
|
end
|
37
39
|
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
require "dry-container"
|
2
2
|
require "logger"
|
3
3
|
require "pastel"
|
4
|
+
require "spek"
|
4
5
|
|
5
6
|
<% namespace do %>
|
6
7
|
# Provides a global gem container for injection into other objects.
|
@@ -8,6 +9,7 @@ require "pastel"
|
|
8
9
|
extend Dry::Container::Mixin
|
9
10
|
|
10
11
|
register(:configuration) { Configuration::Loader.call }
|
12
|
+
register(:specification) { Spek::Loader.call "#{__dir__}/<%= Array.new(2 + configuration.project_levels, "../").join %><%= configuration.project_name %>.gemspec" }
|
11
13
|
register(:colorizer) { Pastel.new enabled: $stdout.tty? }
|
12
14
|
register(:kernel) { Kernel }
|
13
15
|
|
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: 16.
|
4
|
+
version: 16.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brooke Kuhlmann
|
@@ -28,7 +28,7 @@ cert_chain:
|
|
28
28
|
lkHilIrX69jq8wMPpBhlaw2mRmeSL50Wv5u6xVBvOHhXFSP1crXM95vfLhLyRYod
|
29
29
|
W2A=
|
30
30
|
-----END CERTIFICATE-----
|
31
|
-
date: 2022-
|
31
|
+
date: 2022-02-06 00:00:00.000000000 Z
|
32
32
|
dependencies:
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: dry-container
|
@@ -106,14 +106,14 @@ dependencies:
|
|
106
106
|
requirements:
|
107
107
|
- - "~>"
|
108
108
|
- !ruby/object:Gem::Version
|
109
|
-
version: '1.
|
109
|
+
version: '1.3'
|
110
110
|
type: :runtime
|
111
111
|
prerelease: false
|
112
112
|
version_requirements: !ruby/object:Gem::Requirement
|
113
113
|
requirements:
|
114
114
|
- - "~>"
|
115
115
|
- !ruby/object:Gem::Version
|
116
|
-
version: '1.
|
116
|
+
version: '1.3'
|
117
117
|
- !ruby/object:Gem::Dependency
|
118
118
|
name: runcom
|
119
119
|
requirement: !ruby/object:Gem::Requirement
|
metadata.gz.sig
CHANGED
Binary file
|