gemsmith 16.1.0 → 16.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a7ed3b426a451eec114a907710517ffd7d65bfa94a9ae48c5b3b3d6facd2e95f
4
- data.tar.gz: 5b588ccd9decb1e9bbeba7d2588cb339e7b9599528153df07ccc09aafe4edf11
3
+ metadata.gz: ac0feae9681ea0c70f0057b6f147ad41055cc6b590455c820c6f262d3f480ad2
4
+ data.tar.gz: bc9a92fcd0b894ccbc7bf4d0bc8d67027daae68d69f8655857eb51315dce671d
5
5
  SHA512:
6
- metadata.gz: 86f3fd45d9cdf2506c26661ddd277506dbb88171080218cabe5397badd911a63ced3bbcaf8324f77ff9d60abdef3a5850bf53bde235b00da4cbdeb2b474183ae
7
- data.tar.gz: 5d88a77b5f9375a7a3fc04c3fcc0699198fd701c1305e5903058015fed184861c5ffbb1a7cccce1a7b84c5a5b402dd4f3543343bbe3cef72b2099ac24b0b1e7d
6
+ metadata.gz: a79b7e75db67d9c0ca46deac367dc9f0ec82ca8dfc4a05c184f92d2383654b1aa1ffe7ba3406ae4f3e336de6807fda6edf0f2284cc032eaacccf19d36b86659f
7
+ data.tar.gz: 1c125eedee89a2bea26145075cc419fdd54e563ab84ee01c993ce7506e3616a26a79b7d4a31463e2c8c7719eeefebd6d9afc9dec221cdfeefb821e31178f2ee2
checksums.yaml.gz.sig CHANGED
@@ -1 +1,3 @@
1
- 0�����`� ẗI>q8]�?�Mq1����2Q�� ]'�r��^�=)�-�c-w�Ĥ_�BW�/
1
+ 3E��V�;���K0ۢ�E"��QEOF�%���d܊io���M�$
2
+ _��qE���6s�S��f��TY�E�[��6#��VO P FJ4�����*�7����X�7�h�pFr�����{�- �J�;�n��� 7Ś��nć���o��� b�����Q.�ÿ�� ����r���x_$��s{;�'܋jĊ���:��_��t[l�^ U+�ん�]�%���v��<0 �Ug��5;K
3
+ I��Z��H�L�
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 and turned on by default which requires a GPG key for signing your Git tags
160
- along with link:https://guides.rubygems.org/setting-up-multifactor-authentication[RubyGems
161
- Multi-Factor Authentication] enabled. Even better, if you are using
162
- link:https://www.alchemists.io/articles/universal_2nd_factor[Universal Second Factor
163
- Authentication], Gemsmith supports this by default and will automatically attempt to use your
164
- YubiKey which makes publishing gems, securely, a breeze.
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 when installing or publishing a gem, Gemsmith can be used for existing gems which were not built
167
- by Gemsmith too. As long as your gem has a `*.gemspec` file, Gemsmith will be able to publish it.
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.1.0"
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.2"
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], client: Parser::CLIENT
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 = "<%= configuration.project_label %>"
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 { "<%= configuration.project_label %> <%= configuration.project_version %>" }
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.1.0
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-01-30 00:00:00.000000000 Z
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.2'
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.2'
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