gemsmith 22.0.0 → 22.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: 4fcdf37e1c5549ca56e3758ef677b7a2c67fb3c889ce858c1c7f46075b25bf84
4
- data.tar.gz: 96e8566c05f4b498cdab49e6df7815224424d019432d4e035ed07ef4acec063c
3
+ metadata.gz: 18ca21e688424ebfaca56d001542c4920dcb415bad72210f602333b1fbb45f50
4
+ data.tar.gz: 6e9f438efbc73bc3b873c6363ed407fd40663cc0eb9df4060e9c14f805173652
5
5
  SHA512:
6
- metadata.gz: b85a165714890f114e4969a6ec3cf281eb66a9643f73a4f328591cb3eaffd13dc592588fb8f89bb4a539882e8a962e4e349c086d0ea01adfb822241d68eac691
7
- data.tar.gz: 5552966cc4ac0181d66a018915d2a15c8b11d3dafd83d652a97f2834d4f7eb9464ca2724fc92272e52aafac62a8562a92dd695ba7639bb06ec53ea25e25c7f70
6
+ metadata.gz: b49b3b2e39138ed8744453c02ee5662cbfac5c7ffde5a3ff2eb54c03eb69f36eed5e155680d308e6899cb01621c2f5cab6072505ec985d60871eb938a9d52b57
7
+ data.tar.gz: 9a3757fc2ed3e4e287bc37e5ad665e19fe4dc39c39d3576f2219116c0a1d850fcf1fa6af746d917584a1d517fb5b5ccb33f04e3015cd9ab9af8e5a88f537a8bb
checksums.yaml.gz.sig CHANGED
Binary file
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 = "22.0.0"
5
+ spec.version = "22.2.0"
6
6
  spec.authors = ["Brooke Kuhlmann"]
7
7
  spec.email = ["brooke@alchemists.io"]
8
8
  spec.homepage = "https://alchemists.io/projects/gemsmith"
@@ -31,10 +31,10 @@ Gem::Specification.new do |spec|
31
31
  spec.add_dependency "etcher", "~> 2.1"
32
32
  spec.add_dependency "infusible", "~> 3.8"
33
33
  spec.add_dependency "milestoner", "~> 18.0"
34
- spec.add_dependency "refinements", "~> 12.5"
35
- spec.add_dependency "rubysmith", "~> 7.0"
34
+ spec.add_dependency "refinements", "~> 12.7"
35
+ spec.add_dependency "rubysmith", "~> 7.2"
36
36
  spec.add_dependency "runcom", "~> 11.5"
37
- spec.add_dependency "sod", "~> 0.12"
37
+ spec.add_dependency "sod", "~> 0.14"
38
38
  spec.add_dependency "spek", "~> 3.0"
39
39
  spec.add_dependency "zeitwerk", "~> 2.6"
40
40
 
@@ -47,6 +47,23 @@ module Gemsmith
47
47
  builder.call(settings.merge(template_path: path)).render
48
48
  end
49
49
 
50
+ def render_requirements
51
+ return if settings.build_zeitwerk
52
+
53
+ builder.call(settings.merge(template_path: "%project_name%/lib/%project_path%.rb.erb"))
54
+ .render
55
+ .prepend <<~CONTENT
56
+ require "demo/configuration/contract"
57
+ require "demo/configuration/model"
58
+ require "demo/container"
59
+ require "demo/import"
60
+
61
+ require "demo/cli/shell"
62
+
63
+ # Main namespace.
64
+ CONTENT
65
+ end
66
+
50
67
  def render_specs
51
68
  return unless settings.build_rspec
52
69
 
@@ -10,9 +10,12 @@ module Gemsmith
10
10
  using Refinements::Struct
11
11
 
12
12
  def call
13
- return false unless settings.build_rspec && settings.build_cli
13
+ return false unless settings.build_rspec
14
14
 
15
15
  super
16
+
17
+ return false unless settings.build_cli
18
+
16
19
  builder.call(settings.merge(template_path: "%project_name%/spec/spec_helper.rb.erb"))
17
20
  .replace("%r(^/spec/)", "%r((.+/container\\.rb|^/spec/))")
18
21
 
@@ -15,7 +15,7 @@ module Gemsmith
15
15
 
16
16
  default { Container[:settings].build_cli }
17
17
 
18
- def call(value = nil) = settings.build_cli = value
18
+ def call(value) = settings.build_cli = value
19
19
  end
20
20
  end
21
21
  end
@@ -27,8 +27,8 @@ module Gemsmith
27
27
  @loader = loader
28
28
  end
29
29
 
30
- def call name = nil
31
- case installer.call loader.call("#{name || default}.gemspec")
30
+ def call name = default
31
+ case installer.call loader.call("#{name}.gemspec")
32
32
  in Success(spec) then logger.info { "Installed: #{spec.package_name}." }
33
33
  in Failure(message) then log_error { message }
34
34
  else log_error { "Unable to handle install action." }
@@ -27,8 +27,8 @@ module Gemsmith
27
27
  @loader = loader
28
28
  end
29
29
 
30
- def call name = nil
31
- case publisher.call loader.call("#{name || default}.gemspec")
30
+ def call name = default
31
+ case publisher.call loader.call("#{name}.gemspec")
32
32
  in Success(spec) then logger.info { "Published: #{spec.package_name}." }
33
33
  in Failure(message) then log_error message
34
34
  else log_error "Publish failed, unable to parse result."
@@ -51,13 +51,13 @@ Gem::Specification.new do |spec|
51
51
  spec.add_dependency "infusible", "~> 3.8"
52
52
  <% end %>
53
53
  <% if settings.build_refinements %>
54
- spec.add_dependency "refinements", "~> 12.5"
54
+ spec.add_dependency "refinements", "~> 12.7"
55
55
  <% end %>
56
56
  <% if settings.build_cli %>
57
57
  spec.add_dependency "runcom", "~> 11.5"
58
58
  <% end %>
59
59
  <% if settings.build_cli %>
60
- spec.add_dependency "sod", "~> 0.12"
60
+ spec.add_dependency "sod", "~> 0.14"
61
61
  <% end %>
62
62
  <% if settings.build_cli %>
63
63
  spec.add_dependency "spek", "~> 3.0"
@@ -0,0 +1 @@
1
+ todo: "Add your own attributes here."
@@ -1,6 +1,6 @@
1
1
  <% namespace do %>
2
2
  module Configuration
3
3
  # Defines the configuration model for use throughout the gem.
4
- Model = Data.define
4
+ Model = Struct.new
5
5
  end
6
6
  <% end %>
@@ -1,8 +1,10 @@
1
1
  require "spec_helper"
2
2
 
3
3
  RSpec.describe <%= settings.project_namespaced_class %>::CLI::Shell do
4
+ <% if settings.build_refinements %>
4
5
  using Refinements::Pathname
5
6
  using Refinements::StringIO
7
+ <% end %>
6
8
 
7
9
  subject(:shell) { described_class.new }
8
10
 
@@ -15,17 +17,29 @@ RSpec.describe <%= settings.project_namespaced_class %>::CLI::Shell do
15
17
  describe "#call" do
16
18
  it "prints configuration usage" do
17
19
  shell.call %w[config]
20
+ <% if settings.build_refinements %>
18
21
  expect(io.reread).to match(/Manage configuration.+/m)
22
+ <% else %>
23
+ expect(io.tap(&:rewind).read).to match(/Manage configuration.+/m)
24
+ <% end %>
19
25
  end
20
26
 
21
27
  it "prints version" do
22
28
  shell.call %w[--version]
29
+ <% if settings.build_refinements %>
23
30
  expect(io.reread).to match(/<%= settings.project_label.gsub(" ", "\\s") %>\s\d+\.\d+\.\d+/)
31
+ <% else %>
32
+ expect(io.tap(&:rewind).read).to match(/<%= settings.project_label.gsub(" ", "\\s") %>\s\d+\.\d+\.\d+/)
33
+ <% end %>
24
34
  end
25
35
 
26
36
  it "prints help" do
27
37
  shell.call %w[--help]
38
+ <% if settings.build_refinements %>
28
39
  expect(io.reread).to match(/<%= settings.project_label.gsub(" ", "\\s") %>.+USAGE.+/m)
40
+ <% else %>
41
+ expect(io.tap(&:rewind).read).to match(/<%= settings.project_label.gsub(" ", "\\s") %>.+USAGE.+/m)
42
+ <% end %>
29
43
  end
30
44
  end
31
45
  end
@@ -1,14 +1,20 @@
1
1
  RSpec.shared_context "with application dependencies" do
2
+ <% if settings.build_refinements %>
2
3
  using Refinements::Struct
4
+ <% end %>
3
5
 
4
6
  let(:settings) { <%= settings.project_namespaced_class %>::Container[:settings] }
5
7
  let(:logger) { Cogger.new id: "<%= settings.project_name %>", io: StringIO.new, level: :debug }
6
8
  let(:io) { StringIO.new }
7
9
 
10
+ <% if settings.build_refinements %>
8
11
  before do
9
12
  settings.merge! Etcher.call(<%= settings.project_namespaced_class %>::Container[:registry].remove_loader(1))
10
13
  <%= settings.project_namespaced_class %>::Container.stub! logger:, io:
11
14
  end
15
+ <% else %>
16
+ before { Demo::Container.stub! logger:, io: }
17
+ <% end %>
12
18
 
13
19
  after { <%= settings.project_namespaced_class %>::Container.restore }
14
20
  end
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: 22.0.0
4
+ version: 22.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brooke Kuhlmann
@@ -35,7 +35,7 @@ cert_chain:
35
35
  3n5C8/6Zh9DYTkpcwPSuIfAga6wf4nXc9m6JAw8AuMLaiWN/r/2s4zJsUHYERJEu
36
36
  gZGm4JqtuSg8pYjPeIJxS960owq+SfuC+jxqmRA54BisFCv/0VOJi7tiJVY=
37
37
  -----END CERTIFICATE-----
38
- date: 2024-07-11 00:00:00.000000000 Z
38
+ date: 2024-08-11 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: cogger
@@ -155,28 +155,28 @@ dependencies:
155
155
  requirements:
156
156
  - - "~>"
157
157
  - !ruby/object:Gem::Version
158
- version: '12.5'
158
+ version: '12.7'
159
159
  type: :runtime
160
160
  prerelease: false
161
161
  version_requirements: !ruby/object:Gem::Requirement
162
162
  requirements:
163
163
  - - "~>"
164
164
  - !ruby/object:Gem::Version
165
- version: '12.5'
165
+ version: '12.7'
166
166
  - !ruby/object:Gem::Dependency
167
167
  name: rubysmith
168
168
  requirement: !ruby/object:Gem::Requirement
169
169
  requirements:
170
170
  - - "~>"
171
171
  - !ruby/object:Gem::Version
172
- version: '7.0'
172
+ version: '7.2'
173
173
  type: :runtime
174
174
  prerelease: false
175
175
  version_requirements: !ruby/object:Gem::Requirement
176
176
  requirements:
177
177
  - - "~>"
178
178
  - !ruby/object:Gem::Version
179
- version: '7.0'
179
+ version: '7.2'
180
180
  - !ruby/object:Gem::Dependency
181
181
  name: runcom
182
182
  requirement: !ruby/object:Gem::Requirement
@@ -197,14 +197,14 @@ dependencies:
197
197
  requirements:
198
198
  - - "~>"
199
199
  - !ruby/object:Gem::Version
200
- version: '0.12'
200
+ version: '0.14'
201
201
  type: :runtime
202
202
  prerelease: false
203
203
  version_requirements: !ruby/object:Gem::Requirement
204
204
  requirements:
205
205
  - - "~>"
206
206
  - !ruby/object:Gem::Version
207
- version: '0.12'
207
+ version: '0.14'
208
208
  - !ruby/object:Gem::Dependency
209
209
  name: spek
210
210
  requirement: !ruby/object:Gem::Requirement
@@ -311,7 +311,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
311
311
  - !ruby/object:Gem::Version
312
312
  version: '0'
313
313
  requirements: []
314
- rubygems_version: 3.5.15
314
+ rubygems_version: 3.5.17
315
315
  signing_key:
316
316
  specification_version: 4
317
317
  summary: A command line interface for smithing Ruby gems.
metadata.gz.sig CHANGED
Binary file