gemsmith 22.0.0 → 22.1.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: d49495c8c8032e854185873001478f3d125a00668945008277b803c93bd0e866
4
+ data.tar.gz: a9810bc571423a2d2a7d1f551d46f26e2ae6c693d4382806443c48c652a8a532
5
5
  SHA512:
6
- metadata.gz: b85a165714890f114e4969a6ec3cf281eb66a9643f73a4f328591cb3eaffd13dc592588fb8f89bb4a539882e8a962e4e349c086d0ea01adfb822241d68eac691
7
- data.tar.gz: 5552966cc4ac0181d66a018915d2a15c8b11d3dafd83d652a97f2834d4f7eb9464ca2724fc92272e52aafac62a8562a92dd695ba7639bb06ec53ea25e25c7f70
6
+ metadata.gz: b9bd244dd94f167c8065d34b9dad609cd28b421b526571fb72dfac17d854c6c4ca1670ee89b56f264da8c0bf1de1dbe0242914f7f531b24d436abbd3a38821a0
7
+ data.tar.gz: 142dc5ed6017f7c54a2797716a501946396b99ed3ea99e7d01fc0a67ed4748c181e38a2223fbc818371575b7d1a47ccb6a68be1063baff90cc128278e988d00a
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.1.0"
6
6
  spec.authors = ["Brooke Kuhlmann"]
7
7
  spec.email = ["brooke@alchemists.io"]
8
8
  spec.homepage = "https://alchemists.io/projects/gemsmith"
@@ -31,8 +31,8 @@ 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.1"
36
36
  spec.add_dependency "runcom", "~> 11.5"
37
37
  spec.add_dependency "sod", "~> 0.12"
38
38
  spec.add_dependency "spek", "~> 3.0"
@@ -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
 
@@ -51,7 +51,7 @@ 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"
@@ -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.1.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-07-24 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.1'
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.1'
180
180
  - !ruby/object:Gem::Dependency
181
181
  name: runcom
182
182
  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.16
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