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 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