gemsmith 22.0.0 → 22.1.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: 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