gemsmith 15.1.0 → 15.5.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: 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