gemsmith 15.1.0 → 15.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 651c889805c8d1c0a08a214d6fa464ca66ee6ee8fa07c3ab6898eb017b325542
4
- data.tar.gz: 2060034279e140f6706600e40a395c351cf3d6b121b295fda84b47ca17f564a1
3
+ metadata.gz: c33c7adceafb02e3a464e242457db580d2ec5b3f335fd870266a59f2bee27521
4
+ data.tar.gz: b411cd1167a05c64bd2deae21b76d7d8b832eef9bd25ed6933b835a1be0868cb
5
5
  SHA512:
6
- metadata.gz: 531b44e972e654f5e5f53137ea5be17cb623df2da9200c572165612ec51368be7749ab4defb9d533a4063683d5d8db9568829ea120d4e1aefcdcc0e4ac28761b
7
- data.tar.gz: e96043ee09c39cb908514dd0e047a45606022e592b361569baeaea2111865bbad88884efeff194874e7b9aae1921b0fbd5911362caae0d6f3a92625feaebb88f
6
+ metadata.gz: 1dc14a1685ccdeaa954f04f6a679171a66fee1b31ab7dd31d8b2daf11ec99dbc629d8fe44e82bc9b172e33bcb463a2c8b7f43d4b5bf83e828c0a0d0046ba6252
7
+ data.tar.gz: 62c5bc9460f406f6e5569140e651cfdf68f102d9b5e6e573dd19bb8edc7e7ec32094f2475287720a0e6f272a98e3fe768e27d7cc302f29a70cff69576aa32ad1
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
@@ -1,3 +1,3 @@
1
- i&�%sT�Ȕ�(��y\�•�Ф������8M�v�xP6*�M�;��8&�,��`�p���6�#i��^>
2
- eK0u�Ɂ�
3
- |�͌=ȮY P *�u"����e�H`�8�tUɃ�w-�f��,�t�+Y)���J�]z��������`�^�+�왕����=F`�s� ���
1
+ �hP:h$�@�Qo"؉`m��yH�r�����G�����������3]�/:�~5�+�k��p������
2
+ `�WEAx>������ Qb�-����x�
3
+ *Un;7�ε�l%��{���>^V,+�p��ڕ�������hUE(&d���a���tno��wm{
data/lib/gemsmith.rb CHANGED
@@ -1,34 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "gemsmith/identity"
4
- require "gemsmith/credentials"
5
- require "gemsmith/errors/base"
6
- require "gemsmith/errors/requirement_conversion"
7
- require "gemsmith/errors/requirement_operator"
8
- require "gemsmith/errors/specification"
9
- require "gemsmith/gem/inspector"
10
- require "gemsmith/gem/module_formatter"
11
- require "gemsmith/gem/requirement"
12
- require "gemsmith/gem/specification"
13
- require "gemsmith/generators/base"
14
- require "gemsmith/generators/bundler"
15
- require "gemsmith/generators/bundler_audit"
16
- require "gemsmith/generators/circle_ci"
17
- require "gemsmith/generators/cli"
18
- require "gemsmith/generators/documentation"
19
- require "gemsmith/generators/gem"
20
- require "gemsmith/generators/git"
21
- require "gemsmith/generators/git_lint"
22
- require "gemsmith/generators/git_hub"
23
- require "gemsmith/generators/guard"
24
- require "gemsmith/generators/pragma"
25
- require "gemsmith/generators/engine"
26
- require "gemsmith/generators/rake"
27
- require "gemsmith/generators/reek"
28
- require "gemsmith/generators/rspec"
29
- require "gemsmith/generators/rubocop"
30
- require "gemsmith/generators/ruby"
31
- require "gemsmith/rake/builder"
32
- require "gemsmith/rake/publisher"
33
- require "gemsmith/rake/tasks"
34
- require "gemsmith/cli"
3
+ require "zeitwerk"
4
+
5
+ loader = Zeitwerk::Loader.for_gem
6
+ loader.inflector.inflect "cli" => "CLI", "circle_ci" => "CircleCI"
7
+ loader.setup
8
+
9
+ # Main namespace.
10
+ module Gemsmith
11
+ end
@@ -7,7 +7,7 @@ module Gemsmith
7
7
  def run
8
8
  return unless configuration.dig :generate, :circle_ci
9
9
 
10
- template "%gem_name%/circle.yml.tt"
10
+ template "%gem_name%/.circleci/config.yml.tt"
11
11
  end
12
12
  end
13
13
  end
@@ -6,6 +6,11 @@ module Gemsmith
6
6
  module Generators
7
7
  # Generates documentation support.
8
8
  class Documentation < Base
9
+ def initialize cli, configuration: {}, writer: Tocer::Writer.new
10
+ super cli, configuration: configuration
11
+ @writer = writer
12
+ end
13
+
9
14
  def run
10
15
  create_files
11
16
  update_readme
@@ -13,6 +18,8 @@ module Gemsmith
13
18
 
14
19
  private
15
20
 
21
+ attr_reader :writer
22
+
16
23
  def create_files
17
24
  template "%gem_name%/README.md.tt"
18
25
  template "%gem_name%/CONTRIBUTING.md.tt"
@@ -22,7 +29,7 @@ module Gemsmith
22
29
  end
23
30
 
24
31
  def update_readme
25
- gem_root.join("README.md").then { |path| Tocer::Writer.new(path).call }
32
+ gem_root.join("README.md").then { |path| writer.call path }
26
33
  end
27
34
  end
28
35
  end
@@ -49,12 +49,7 @@ module Gemsmith
49
49
  end
50
50
 
51
51
  def code_quality_tasks
52
- [
53
- bundler_audit_task,
54
- git_lint_task,
55
- reek_task,
56
- rubocop_task
57
- ].compress.join " "
52
+ [bundler_audit_task, git_lint_task, reek_task, rubocop_task].compress.join " "
58
53
  end
59
54
 
60
55
  def code_quality_task
@@ -5,7 +5,7 @@ module Gemsmith
5
5
  module Identity
6
6
  NAME = "gemsmith"
7
7
  LABEL = "Gemsmith"
8
- VERSION = "15.1.0"
8
+ VERSION = "15.5.0"
9
9
  VERSION_LABEL = "#{LABEL} #{VERSION}"
10
10
  URL = "https://www.alchemists.io/projects/gemsmith"
11
11
  end
@@ -2,6 +2,7 @@
2
2
 
3
3
  require "milestoner"
4
4
  require "refinements/pathnames"
5
+ require "refinements/structs"
5
6
  require "gemsmith/identity"
6
7
  require "gemsmith/credentials"
7
8
  require "gemsmith/cli"
@@ -12,6 +13,7 @@ module Gemsmith
12
13
  # :reek:TooManyInstanceVariables
13
14
  class Publisher
14
15
  using Refinements::Pathnames
16
+ using Refinements::Structs
15
17
 
16
18
  def self.gem_spec_path
17
19
  Pathname.pwd.files("*.gemspec").first.to_s
@@ -22,7 +24,8 @@ module Gemsmith
22
24
  def initialize gem_spec: Gemsmith::Gem::Specification.new(self.class.gem_spec_path.to_s),
23
25
  gem_config: Gemsmith::CLI.configuration.to_h,
24
26
  credentials: Gemsmith::Credentials,
25
- publisher: Milestoner::Publisher.new,
27
+ publisher: Milestoner::Tags::Publisher.new,
28
+ milestoner_container: Milestoner::Container,
26
29
  shell: Bundler::UI::Shell.new,
27
30
  kernel: Kernel
28
31
 
@@ -30,6 +33,7 @@ module Gemsmith
30
33
  @gem_config = gem_config
31
34
  @credentials = credentials
32
35
  @publisher = publisher
36
+ @milestoner_container = milestoner_container
33
37
  @shell = shell
34
38
  @kernel = kernel
35
39
  end
@@ -44,9 +48,10 @@ module Gemsmith
44
48
  end
45
49
 
46
50
  def publish
47
- publisher.publish gem_spec.version, sign: signed?
51
+ milestoner_configuration.merge(git_tag_version: gem_spec.version, git_tag_sign: signed?)
52
+ .then { |configuration| publisher.call configuration }
48
53
  push
49
- rescue Milestoner::Errors::Base => error
54
+ rescue Milestoner::Error => error
50
55
  shell.error error.message
51
56
  end
52
57
 
@@ -56,7 +61,13 @@ module Gemsmith
56
61
 
57
62
  private
58
63
 
59
- attr_reader :gem_spec, :gem_config, :credentials, :publisher, :shell, :kernel
64
+ attr_reader :gem_spec,
65
+ :gem_config,
66
+ :credentials,
67
+ :publisher,
68
+ :milestoner_container,
69
+ :shell,
70
+ :kernel
60
71
 
61
72
  def gem_host
62
73
  gem_spec.allowed_push_host
@@ -82,6 +93,8 @@ module Gemsmith
82
93
 
83
94
  status
84
95
  end
96
+
97
+ def milestoner_configuration = milestoner_container[:configuration]
85
98
  end
86
99
  end
87
100
  end
@@ -0,0 +1,31 @@
1
+ version: 2.1
2
+ jobs:
3
+ build:
4
+ working_directory: ~/project
5
+ docker:
6
+ - image: bkuhlmann/alpine-ruby:latest
7
+ steps:
8
+ - checkout
9
+
10
+ - restore_cache:
11
+ name: Bundler Restore
12
+ keys:
13
+ - gem-cache-{{.Branch}}-{{checksum "<%= config.dig(:gem, :name) %>.gemspec"}}
14
+ - gem-cache-
15
+
16
+ - run:
17
+ name: Bundler Install
18
+ command: |
19
+ gem update --system
20
+ bundle config set path "vendor/bundle"
21
+ bundle install
22
+
23
+ - save_cache:
24
+ name: Bundler Store
25
+ key: gem-cache-{{.Branch}}-{{checksum "<%= config.dig(:gem, :name) %>.gemspec"}}
26
+ paths:
27
+ - vendor/bundle
28
+
29
+ - run:
30
+ name: Build
31
+ command: bundle exec rake
@@ -1,12 +1,12 @@
1
1
  inherit_from:
2
- - https://raw.githubusercontent.com/bkuhlmann/code_quality/master/configurations/rubocop/ruby.yml
3
- - https://raw.githubusercontent.com/bkuhlmann/code_quality/master/configurations/rubocop/rake.yml
4
- - https://raw.githubusercontent.com/bkuhlmann/code_quality/master/configurations/rubocop/performance.yml
2
+ - https://raw.githubusercontent.com/bkuhlmann/code_quality/main/configurations/rubocop/ruby.yml
3
+ - https://raw.githubusercontent.com/bkuhlmann/code_quality/main/configurations/rubocop/rake.yml
4
+ - https://raw.githubusercontent.com/bkuhlmann/code_quality/main/configurations/rubocop/performance.yml
5
5
  <%- if config.dig(:generate, :rspec) -%>
6
- - https://raw.githubusercontent.com/bkuhlmann/code_quality/master/configurations/rubocop/rspec.yml
6
+ - https://raw.githubusercontent.com/bkuhlmann/code_quality/main/configurations/rubocop/rspec.yml
7
7
  <%- end -%>
8
8
  <%- if config.dig(:generate, :engine) -%>
9
- - https://raw.githubusercontent.com/bkuhlmann/code_quality/master/configurations/rubocop/rails.yml
9
+ - https://raw.githubusercontent.com/bkuhlmann/code_quality/main/configurations/rubocop/rails.yml
10
10
  <%- end -%>
11
11
 
12
12
  <%- if config.dig(:generate, :cli) -%>
@@ -13,7 +13,7 @@ group :code_quality do
13
13
  gem "reek", "~> 6.0"
14
14
  <%- end -%>
15
15
  <%- if config.dig(:generate, :rubocop) -%>
16
- gem "rubocop", "~> 1.5"
16
+ gem "rubocop", "~> 1.14"
17
17
  gem "rubocop-performance", "~> 1.8"
18
18
  gem "rubocop-rake", "~> 0.5"
19
19
  <%- end -%>
@@ -10,6 +10,9 @@ SimpleCov.start { enable_coverage :branch }
10
10
  require "<%= config.dig(:gem, :path) %>"
11
11
  <%- end -%>
12
12
 
13
+ GC.auto_compact = true
14
+ GC.verify_compaction_references double_heap: true, toward: :empty
15
+
13
16
  Dir[File.join(__dir__, "support", "shared_contexts", "**/*.rb")].sort.each { |path| require path }
14
17
 
15
18
  RSpec.configure do |config|
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: 15.1.0
4
+ version: 15.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brooke Kuhlmann
@@ -10,9 +10,9 @@ bindir: bin
10
10
  cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
- MIIC/jCCAeagAwIBAgIBAzANBgkqhkiG9w0BAQsFADAlMSMwIQYDVQQDDBpicm9v
14
- a2UvREM9YWxjaGVtaXN0cy9EQz1pbzAeFw0yMDAzMTUxNDQ1MzJaFw0yMTAzMTUx
15
- NDQ1MzJaMCUxIzAhBgNVBAMMGmJyb29rZS9EQz1hbGNoZW1pc3RzL0RDPWlvMIIB
13
+ MIIC/jCCAeagAwIBAgIBBDANBgkqhkiG9w0BAQsFADAlMSMwIQYDVQQDDBpicm9v
14
+ a2UvREM9YWxjaGVtaXN0cy9EQz1pbzAeFw0yMTAzMTkxMjQ4MDZaFw0yMjAzMTkx
15
+ MjQ4MDZaMCUxIzAhBgNVBAMMGmJyb29rZS9EQz1hbGNoZW1pc3RzL0RDPWlvMIIB
16
16
  IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA6l1qpXTiomH1RfMRloyw7MiE
17
17
  xyVx/x8Yc3EupdH7uhNaTXQGyORN6aOY//1QXXMHIZ9tW74nZLhesWMSUMYy0XhB
18
18
  brs+KkurHnc9FnEJAbG7ebGvl/ncqZt72nQvaxpDxvuCBHgJAz+8i5wl6FhLw+oT
@@ -20,15 +20,15 @@ cert_chain:
20
20
  D5vkU0YlAm1r98BymuJlcQ1qdkVEI1d48ph4kcS0S0nv1RiuyVb6TCAR3Nu3VaVq
21
21
  3fPzZKJLZBx67UvXdbdicWPiUR75elI4PXpLIic3xytaF52ZJYyKZCNZJhNwfQID
22
22
  AQABozkwNzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQU0nzow9vc
23
- 2CdikiiE3fJhP/gY4ggwDQYJKoZIhvcNAQELBQADggEBAIHhAlD3po4sTYqacXaQ
24
- XI9jIhrfMy//2PgbHWcETtlJPBeNUbbSNBABcllUHKqYsVDlSvSmss034KSWNR8F
25
- bF1GcloicyvcCC4y6IoW4it0COAcdeaaxkxiBSgKdQFpff9REnDlIKK4uQ9lLxIo
26
- Y2G5xubiziKZkyfWFuSr67PIjW3Bu673D1JVBArhA1qbgQmYQcy1CkGOjo+iO8Nf
27
- 7u/QSfBHb+r/bXhKscDgPpnKwbUmvgO2+94zJG9KsrmIydlzYfsD09aXKx0t6Xy4
28
- 2XV8FRa7/JimI07sPLC13eLY3xd/aYTi85Z782KIA4j0G8XEEWAX0ouBhlXPocZv
29
- QWc=
23
+ 2CdikiiE3fJhP/gY4ggwDQYJKoZIhvcNAQELBQADggEBAEjpaOXHHp8s/7GL2qCb
24
+ YAs7urOLv9VHSPfQWAwaTMVnSsIf3Sw4xzISOP/mmfEPBPXtz61K5esrE/uTFtgb
25
+ FyjxQk2H0sEWgrRXGGNHBWQRhhEs7LP/TByoC15A0br++xLxRz4r7HBLGAWQQDpg
26
+ 66BJ2TBVjxS6K64tKbq7+ACyrOZGgTfNHACh4M076y0x0oRf/rwBrU39/KRfuhbb
27
+ cm+nNCEtO35gTmZ2bVDHLGvWazi3gJt6+huQjfXTCUUG2YYBxwhu+GPdAGQPxpf9
28
+ lkHilIrX69jq8wMPpBhlaw2mRmeSL50Wv5u6xVBvOHhXFSP1crXM95vfLhLyRYod
29
+ W2A=
30
30
  -----END CERTIFICATE-----
31
- date: 2021-01-01 00:00:00.000000000 Z
31
+ date: 2021-06-06 00:00:00.000000000 Z
32
32
  dependencies:
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: git_plus
@@ -36,28 +36,28 @@ dependencies:
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: '0.1'
39
+ version: '0.4'
40
40
  type: :runtime
41
41
  prerelease: false
42
42
  version_requirements: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
- version: '0.1'
46
+ version: '0.4'
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: milestoner
49
49
  requirement: !ruby/object:Gem::Requirement
50
50
  requirements:
51
51
  - - "~>"
52
52
  - !ruby/object:Gem::Version
53
- version: '11.0'
53
+ version: '12.0'
54
54
  type: :runtime
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  requirements:
58
58
  - - "~>"
59
59
  - !ruby/object:Gem::Version
60
- version: '11.0'
60
+ version: '12.0'
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: pragmater
63
63
  requirement: !ruby/object:Gem::Requirement
@@ -92,14 +92,14 @@ dependencies:
92
92
  requirements:
93
93
  - - "~>"
94
94
  - !ruby/object:Gem::Version
95
- version: '1.5'
95
+ version: '1.14'
96
96
  type: :runtime
97
97
  prerelease: false
98
98
  version_requirements: !ruby/object:Gem::Requirement
99
99
  requirements:
100
100
  - - "~>"
101
101
  - !ruby/object:Gem::Version
102
- version: '1.5'
102
+ version: '1.14'
103
103
  - !ruby/object:Gem::Dependency
104
104
  name: runcom
105
105
  requirement: !ruby/object:Gem::Requirement
@@ -134,14 +134,14 @@ dependencies:
134
134
  requirements:
135
135
  - - "~>"
136
136
  - !ruby/object:Gem::Version
137
- version: '11.0'
137
+ version: '12.0'
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: '11.0'
144
+ version: '12.0'
145
145
  - !ruby/object:Gem::Dependency
146
146
  name: versionaire
147
147
  requirement: !ruby/object:Gem::Requirement
@@ -156,6 +156,20 @@ dependencies:
156
156
  - - "~>"
157
157
  - !ruby/object:Gem::Version
158
158
  version: '9.0'
159
+ - !ruby/object:Gem::Dependency
160
+ name: zeitwerk
161
+ requirement: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - "~>"
164
+ - !ruby/object:Gem::Version
165
+ version: '2.4'
166
+ type: :runtime
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - "~>"
171
+ - !ruby/object:Gem::Version
172
+ version: '2.4'
159
173
  description:
160
174
  email:
161
175
  - brooke@alchemists.io
@@ -208,6 +222,7 @@ files:
208
222
  - lib/gemsmith/rake/setup.rb
209
223
  - lib/gemsmith/rake/tasks.rb
210
224
  - lib/gemsmith/templates/%gem_name%/%gem_name%.gemspec.tt
225
+ - lib/gemsmith/templates/%gem_name%/.circleci/config.yml.tt
211
226
  - lib/gemsmith/templates/%gem_name%/.github/ISSUE_TEMPLATE.md.tt
212
227
  - lib/gemsmith/templates/%gem_name%/.github/PULL_REQUEST_TEMPLATE.md.tt
213
228
  - lib/gemsmith/templates/%gem_name%/.gitignore.tt
@@ -225,7 +240,6 @@ files:
225
240
  - lib/gemsmith/templates/%gem_name%/bin/%gem_name%.tt
226
241
  - lib/gemsmith/templates/%gem_name%/bin/console.tt
227
242
  - lib/gemsmith/templates/%gem_name%/bin/setup.tt
228
- - lib/gemsmith/templates/%gem_name%/circle.yml.tt
229
243
  - lib/gemsmith/templates/%gem_name%/lib/%gem_path%.rb.tt
230
244
  - lib/gemsmith/templates/%gem_name%/lib/%gem_path%/cli.rb.tt
231
245
  - lib/gemsmith/templates/%gem_name%/lib/%gem_path%/engine.rb.tt
@@ -261,7 +275,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
261
275
  - !ruby/object:Gem::Version
262
276
  version: '0'
263
277
  requirements: []
264
- rubygems_version: 3.2.3
278
+ rubygems_version: 3.2.19
265
279
  signing_key:
266
280
  specification_version: 4
267
281
  summary: A command line interface for smithing Ruby gems.
metadata.gz.sig CHANGED
Binary file
@@ -1,64 +0,0 @@
1
- version: 2
2
- jobs:
3
- build:
4
- working_directory: ~/project
5
- docker:
6
- - image: circleci/ruby
7
- environment:
8
- BUNDLE_JOBS: 3
9
- BUNDLE_RETRY: 3
10
- BUNDLE_PATH: vendor/bundle
11
- EDITOR: vim
12
- RAILS_ENV: test
13
- steps:
14
- - checkout
15
-
16
- - run:
17
- name: Environment Setup
18
- command: |
19
- printf "%s\n" 'export CI_RUBY_VERSION=$(cat ".ruby-version" | tr -d "\n")' >> $BASH_ENV
20
-
21
- - type: cache-restore
22
- name: Ruby Restore
23
- key: ruby-{{checksum ".ruby-version"}}
24
-
25
- - run:
26
- name: Ruby Install
27
- command: |
28
- cd ..
29
- curl https://cache.ruby-lang.org/pub/ruby/${CI_RUBY_VERSION::-2}/ruby-$CI_RUBY_VERSION.tar.gz > ruby-$CI_RUBY_VERSION.tar.gz
30
- tar --extract --gzip --verbose --file ruby-$CI_RUBY_VERSION.tar.gz
31
- cd ruby-$CI_RUBY_VERSION
32
- ./configure
33
- make
34
- make update-gems
35
- make extract-gems
36
- sudo make install
37
-
38
- - type: cache-save
39
- name: Ruby Store
40
- key: ruby-{{checksum ".ruby-version"}}
41
- paths:
42
- - ../ruby-$CI_RUBY_VERSION
43
-
44
- - type: cache-restore
45
- name: Bundler Restore
46
- key: bundler-{{checksum "<%= config.dig(:gem, :name) %>.gemspec"}}
47
-
48
- - run:
49
- name: Bundler Install
50
- command: |
51
- gem update --system
52
- bundle config set path "vendor/bundle"
53
- bundle install
54
-
55
- - type: cache-save
56
- name: Bundler Store
57
- key: bundler-{{checksum "<%= config.dig(:gem, :name) %>.gemspec"}}
58
- paths:
59
- - vendor/bundle
60
-
61
- - run:
62
- name: Build
63
- command: |
64
- bundle exec rake