gemsmith 19.8.0 → 20.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/README.adoc +28 -52
  4. data/gemsmith.gemspec +12 -9
  5. data/lib/gemsmith/builders/cli.rb +6 -25
  6. data/lib/gemsmith/builders/rspec/helper.rb +3 -16
  7. data/lib/gemsmith/cli/actions/cli.rb +22 -0
  8. data/lib/gemsmith/cli/actions/edit.rb +9 -4
  9. data/lib/gemsmith/cli/actions/install.rb +17 -6
  10. data/lib/gemsmith/cli/actions/publish.rb +17 -6
  11. data/lib/gemsmith/cli/actions/view.rb +9 -4
  12. data/lib/gemsmith/cli/commands/build.rb +106 -0
  13. data/lib/gemsmith/cli/shell.rb +28 -32
  14. data/lib/gemsmith/container.rb +29 -5
  15. data/lib/gemsmith/templates/%project_name%/%project_name%.gemspec.erb +13 -7
  16. data/lib/gemsmith/templates/%project_name%/lib/%project_path%/cli/shell.rb.erb +18 -15
  17. data/lib/gemsmith/templates/%project_name%/lib/%project_path%/configuration/contract.rb.erb +9 -0
  18. data/lib/gemsmith/templates/%project_name%/lib/%project_path%/configuration/model.rb.erb +6 -0
  19. data/lib/gemsmith/templates/%project_name%/lib/%project_path%/container.rb.erb +14 -1
  20. data/lib/gemsmith/templates/%project_name%/spec/lib/%project_path%/cli/shell_spec.rb.erb +8 -23
  21. data/lib/gemsmith/templates/%project_name%/spec/support/shared_contexts/application_dependencies.rb.erb +5 -7
  22. data/lib/gemsmith/tools/versioner.rb +8 -8
  23. data.tar.gz.sig +0 -0
  24. metadata +65 -40
  25. metadata.gz.sig +0 -0
  26. data/lib/gemsmith/cli/actions/build.rb +0 -68
  27. data/lib/gemsmith/cli/actions/config.rb +0 -33
  28. data/lib/gemsmith/cli/actions/container.rb +0 -23
  29. data/lib/gemsmith/cli/actions/import.rb +0 -11
  30. data/lib/gemsmith/cli/parser.rb +0 -37
  31. data/lib/gemsmith/cli/parsers/build.rb +0 -53
  32. data/lib/gemsmith/cli/parsers/core.rb +0 -93
  33. data/lib/gemsmith/configuration/loader.rb +0 -27
  34. data/lib/gemsmith/templates/%project_name%/lib/%project_path%/cli/actions/config.rb.erb +0 -31
  35. data/lib/gemsmith/templates/%project_name%/lib/%project_path%/cli/actions/container.rb.erb +0 -16
  36. data/lib/gemsmith/templates/%project_name%/lib/%project_path%/cli/actions/import.rb.erb +0 -9
  37. data/lib/gemsmith/templates/%project_name%/lib/%project_path%/cli/parser.rb.erb +0 -35
  38. data/lib/gemsmith/templates/%project_name%/lib/%project_path%/cli/parsers/core.rb.erb +0 -58
  39. data/lib/gemsmith/templates/%project_name%/lib/%project_path%/configuration/content.rb.erb +0 -18
  40. data/lib/gemsmith/templates/%project_name%/lib/%project_path%/configuration/loader.rb.erb +0 -33
  41. data/lib/gemsmith/templates/%project_name%/spec/lib/%project_path%/cli/actions/config_spec.rb.erb +0 -24
  42. data/lib/gemsmith/templates/%project_name%/spec/lib/%project_path%/cli/parser_spec.rb.erb +0 -25
  43. data/lib/gemsmith/templates/%project_name%/spec/lib/%project_path%/cli/parsers/core_spec.rb.erb +0 -53
  44. data/lib/gemsmith/templates/%project_name%/spec/lib/%project_path%/configuration/content_spec.rb.erb +0 -15
  45. data/lib/gemsmith/templates/%project_name%/spec/lib/%project_path%/configuration/loader_spec.rb.erb +0 -29
  46. data/lib/gemsmith/templates/%project_name%/spec/support/shared_examples/a_parser.rb.erb +0 -7
@@ -1,50 +1,46 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "core"
3
+ require "sod"
4
4
 
5
5
  module Gemsmith
6
6
  module CLI
7
7
  # The main Command Line Interface (CLI) object.
8
8
  class Shell
9
- include Actions::Import[
10
- :build,
11
- :config,
12
- :edit,
13
- :install,
14
- :kernel,
15
- :logger,
16
- :publish,
17
- :specification,
18
- :view
19
- ]
20
-
21
- def initialize(parser: Parser.new, **)
9
+ include Import[:defaults_path, :xdg_config, :specification]
10
+
11
+ def initialize(context: Sod::Context, dsl: Sod, **)
22
12
  super(**)
23
- @parser = parser
13
+ @context = context
14
+ @dsl = dsl
24
15
  end
25
16
 
26
- def call arguments = Core::EMPTY_ARRAY
27
- act_on parser.call(arguments)
28
- rescue OptionParser::ParseError => error
29
- logger.error { error.message }
30
- end
17
+ def call(...) = cli.call(...)
31
18
 
32
19
  private
33
20
 
34
- attr_reader :parser
35
-
36
- def act_on configuration
37
- case configuration
38
- in action_config: Symbol => action then config.call action
39
- in action_build: true then build.call configuration
40
- in action_install: true then install.call configuration
41
- in action_publish: true then publish.call configuration
42
- in action_edit: String => gem_name then edit.call gem_name
43
- in action_view: String => gem_name then view.call gem_name
44
- in action_version: true then kernel.puts specification.labeled_version
45
- else kernel.puts parser.to_s
21
+ attr_reader :context, :dsl
22
+
23
+ # :reek:TooManyStatements
24
+ # rubocop:todo Metrics/MethodLength
25
+ def cli
26
+ context = build_context
27
+
28
+ dsl.new :gemsmith, banner: specification.banner do
29
+ on(Sod::Prefabs::Commands::Config, context:)
30
+ on Commands::Build
31
+ on Actions::Install
32
+ on Actions::Publish
33
+ on Actions::Edit
34
+ on Actions::View
35
+ on(Sod::Prefabs::Actions::Version, context:)
36
+ on Sod::Prefabs::Actions::Help, self
46
37
  end
47
38
  end
39
+ # rubocop:enable Metrics/MethodLength
40
+
41
+ def build_context
42
+ context[defaults_path:, xdg_config:, version_label: specification.labeled_version]
43
+ end
48
44
  end
49
45
  end
50
46
  end
@@ -1,7 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "dry/container"
3
+ require "cogger"
4
+ require "dry-container"
5
+ require "etcher"
4
6
  require "open3"
7
+ require "runcom"
5
8
  require "spek"
6
9
 
7
10
  module Gemsmith
@@ -9,15 +12,36 @@ module Gemsmith
9
12
  module Container
10
13
  extend Dry::Container::Mixin
11
14
 
12
- # TODO: Remove once Rubysmith and Gemsmith configurations can coexist together.
13
- config.registry = -> container, key, value, _options { container[key.to_s] = value }
15
+ register :configuration do
16
+ self[:defaults].add_loader(Etcher::Loaders::YAML.new(self[:xdg_config].active))
17
+ .then { |registry| Etcher.call registry }
18
+ end
14
19
 
15
- merge Rubysmith::Container
20
+ register :defaults do
21
+ registry = Etcher::Registry.new contract: Rubysmith::Configuration::Contract,
22
+ model: Rubysmith::Configuration::Model
16
23
 
17
- register(:configuration) { Gemsmith::Configuration::Loader.call }
24
+ registry.add_loader(Etcher::Loaders::YAML.new(self[:defaults_path]))
25
+ .add_transformer(Rubysmith::Configuration::Transformers::CurrentTime)
26
+ .add_transformer(Rubysmith::Configuration::Transformers::GitHubUser.new)
27
+ .add_transformer(Rubysmith::Configuration::Transformers::GitEmail.new)
28
+ .add_transformer(Rubysmith::Configuration::Transformers::GitUser.new)
29
+ .add_transformer(Rubysmith::Configuration::Transformers::TemplateRoot.new)
30
+ .add_transformer(
31
+ Rubysmith::Configuration::Transformers::TemplateRoot.new(
32
+ Pathname(__dir__).join("templates")
33
+ )
34
+ )
35
+ .add_transformer(Rubysmith::Configuration::Transformers::TargetRoot)
36
+ end
37
+
38
+ register(:input, memoize: true) { self[:configuration].dup }
39
+ register(:defaults_path) { Rubysmith::Container[:defaults_path] }
40
+ register(:xdg_config) { Runcom::Config.new "gemsmith/configuration.yml" }
18
41
  register(:specification) { Spek::Loader.call "#{__dir__}/../../gemsmith.gemspec" }
19
42
  register(:environment) { ENV }
20
43
  register(:executor) { Open3 }
21
44
  register(:kernel) { Kernel }
45
+ register(:logger) { Cogger.new formatter: :emoji }
22
46
  end
23
47
  end
@@ -36,25 +36,31 @@ Gem::Specification.new do |spec|
36
36
 
37
37
  spec.required_ruby_version = "~> <%= RUBY_VERSION[/\d+\.\d+/] %>"
38
38
  <% if configuration.build_cli %>
39
- spec.add_dependency "cogger", "~> 0.8"
39
+ spec.add_dependency "cogger", "~> 0.10"
40
40
  <% end %>
41
41
  <% if configuration.build_cli %>
42
- spec.add_dependency "core", "~> 0.1"
42
+ spec.add_dependency "dry-container", "~> 0.11"
43
43
  <% end %>
44
44
  <% if configuration.build_cli %>
45
- spec.add_dependency "dry-container", "~> 0.11"
45
+ spec.add_dependency "dry-monads", "~> 1.6"
46
+ <% end %>
47
+ <% if configuration.build_cli %>
48
+ spec.add_dependency "etcher", "~> 0.2"
46
49
  <% end %>
47
50
  <% if configuration.build_cli %>
48
- spec.add_dependency "infusible", "~> 1.0"
51
+ spec.add_dependency "infusible", "~> 2.0"
49
52
  <% end %>
50
53
  <% if configuration.build_refinements %>
51
- spec.add_dependency "refinements", "~> 10.0"
54
+ spec.add_dependency "refinements", "~> 11.0"
55
+ <% end %>
56
+ <% if configuration.build_cli %>
57
+ spec.add_dependency "runcom", "~> 10.0"
52
58
  <% end %>
53
59
  <% if configuration.build_cli %>
54
- spec.add_dependency "runcom", "~> 9.0"
60
+ spec.add_dependency "sod", "~> 0.0"
55
61
  <% end %>
56
62
  <% if configuration.build_cli %>
57
- spec.add_dependency "spek", "~> 1.1"
63
+ spec.add_dependency "spek", "~> 2.0"
58
64
  <% end %>
59
65
  <% if configuration.build_zeitwerk %>
60
66
  spec.add_dependency "zeitwerk", "~> 2.6"
@@ -1,33 +1,36 @@
1
- require "core"
1
+ require "sod"
2
2
 
3
3
  <% namespace do %>
4
4
  module CLI
5
5
  # The main Command Line Interface (CLI) object.
6
6
  class Shell
7
- include Actions::Import[:config, :kernel, :logger, :specification]
7
+ include Import[:defaults_path, :xdg_config, :specification]
8
8
 
9
- def initialize(parser: Parser.new, **)
9
+ def initialize(context: Sod::Context, dsl: Sod, **)
10
10
  super(**)
11
- @parser = parser
11
+ @context = context
12
+ @dsl = dsl
12
13
  end
13
14
 
14
- def call arguments = Core::EMPTY_ARRAY
15
- act_on parser.call(arguments)
16
- rescue OptionParser::ParseError => error
17
- logger.error { error.message }
18
- end
15
+ def call(...) = cli.call(...)
19
16
 
20
17
  private
21
18
 
22
- attr_reader :parser
19
+ attr_reader :context, :dsl
20
+
21
+ def cli
22
+ context = build_context
23
23
 
24
- def act_on configuration
25
- case configuration
26
- in action_config: Symbol => action then config.call action
27
- in action_version: true then kernel.puts specification.labeled_version
28
- else kernel.puts parser.to_s
24
+ dsl.new <%= configuration.project_levels.positive? ? configuration.project_name.inspect : configuration.project_name.to_sym.inspect %>, banner: specification.banner do
25
+ on(Sod::Prefabs::Commands::Config, context:)
26
+ on(Sod::Prefabs::Actions::Version, context:)
27
+ on Sod::Prefabs::Actions::Help, self
29
28
  end
30
29
  end
30
+
31
+ def build_context
32
+ context[defaults_path:, xdg_config:, version_label: specification.labeled_version]
33
+ end
31
34
  end
32
35
  end
33
36
  <% end %>
@@ -0,0 +1,9 @@
1
+ require "dry/schema"
2
+
3
+ Dry::Schema.load_extensions :monads
4
+
5
+ <% namespace do %>
6
+ module Configuration
7
+ Contract = Dry::Schema.Params
8
+ end
9
+ <% end %>
@@ -0,0 +1,6 @@
1
+ <% namespace do %>
2
+ module Configuration
3
+ # Defines the configuration model for use throughout the gem.
4
+ Model = Data.define
5
+ end
6
+ <% end %>
@@ -1,5 +1,7 @@
1
1
  require "cogger"
2
2
  require "dry/container"
3
+ require "etcher"
4
+ require "runcom"
3
5
  require "spek"
4
6
 
5
7
  <% namespace do %>
@@ -7,7 +9,18 @@ require "spek"
7
9
  module Container
8
10
  extend Dry::Container::Mixin
9
11
 
10
- register(:configuration) { Configuration::Loader.call }
12
+ register :configuration do
13
+ self[:defaults].add_loader(Etcher::Loaders::YAML.new(self[:xdg_config].active))
14
+ .then { |registry| Etcher.call registry }
15
+ end
16
+
17
+ register :defaults do
18
+ Etcher::Registry.new(contract: Configuration::Contract, model: Configuration::Model)
19
+ .add_loader(Etcher::Loaders::YAML.new(self[:defaults_path]))
20
+ end
21
+
22
+ register(:defaults_path) { Pathname(__dir__).join("configuration/defaults.yml") }
23
+ register(:xdg_config) { Runcom::Config.new "<%= configuration.project_path %>/configuration.yml" }
11
24
  register(:specification) { Spek::Loader.call "#{__dir__}/<%= Array.new(2 + configuration.project_levels, "../").join %><%= configuration.project_name %>.gemspec" }
12
25
  register(:kernel) { Kernel }
13
26
  register(:logger) { Cogger.new formatter: :emoji }
@@ -8,39 +8,24 @@ RSpec.describe <%= configuration.project_namespaced_class %>::CLI::Shell do
8
8
 
9
9
  include_context "with application dependencies"
10
10
 
11
- before { <%= configuration.project_namespaced_class %>::CLI::Actions::Import.stub configuration:, kernel:, logger: }
11
+ before { Sod::Import.stub kernel:, logger: }
12
12
 
13
- after { <%= configuration.project_namespaced_class %>::CLI::Actions::Import.unstub :configuration, :kernel, :logger }
13
+ after { Sod::Import.unstub :kernel, :logger }
14
14
 
15
15
  describe "#call" do
16
- it "edits configuration" do
17
- shell.call %w[--config edit]
18
- expect(kernel).to have_received(:system).with("$EDITOR ")
19
- end
20
-
21
- it "views configuration" do
22
- shell.call %w[--config view]
23
- expect(kernel).to have_received(:system).with("cat ")
16
+ it "prints configuration usage" do
17
+ shell.call %w[config]
18
+ expect(kernel).to have_received(:puts).with(/Manage configuration.+/m)
24
19
  end
25
20
 
26
21
  it "prints version" do
27
22
  shell.call %w[--version]
28
- expect(kernel).to have_received(:puts).with(/<%= configuration.project_label %>\s\d+\.\d+\.\d+/)
23
+ expect(kernel).to have_received(:puts).with(/<%= configuration.project_label.gsub(" ", "\\s") %>\s\d+\.\d+\.\d+/)
29
24
  end
30
25
 
31
- it "prints help (usage)" do
26
+ it "prints help" do
32
27
  shell.call %w[--help]
33
- expect(kernel).to have_received(:puts).with(/<%= configuration.project_label %>.+USAGE.+/m)
34
- end
35
-
36
- it "prints usage when no options are given" do
37
- shell.call
38
- expect(kernel).to have_received(:puts).with(/<%= configuration.project_label %>.+USAGE.+/m)
39
- end
40
-
41
- it "prints error with invalid option" do
42
- shell.call %w[--bogus]
43
- expect(logger.reread).to match(/🛑.+invalid option.+bogus/)
28
+ expect(kernel).to have_received(:puts).with(/<%= configuration.project_label.gsub(" ", "\\s") %>.+USAGE.+/m)
44
29
  end
45
30
  end
46
31
  end
@@ -2,16 +2,14 @@ require "dry/container/stub"
2
2
  require "infusible/stub"
3
3
 
4
4
  RSpec.shared_context "with application dependencies" do
5
- using Refinements::Structs
6
5
  using Infusible::Stub
7
6
 
8
- include_context "with temporary directory"
9
-
10
- let(:configuration) { <%= configuration.project_namespaced_class %>::Configuration::Loader.with_defaults.call }
7
+ let(:configuration) { Etcher.new(<%= configuration.project_namespaced_class %>::Container[:defaults]).call.bind(&:dup) }
8
+ let(:xdg_config) { Runcom::Config.new <%= configuration.project_namespaced_class %>::Container[:defaults_path] }
11
9
  let(:kernel) { class_spy Kernel }
12
- let(:logger) { Cogger.new io: StringIO.new, formatter: :emoji }
10
+ let(:logger) { Cogger.new io: StringIO.new, level: :debug, formatter: :emoji }
13
11
 
14
- before { <%= configuration.project_namespaced_class %>::Import.stub configuration:, kernel:, logger: }
12
+ before { <%= configuration.project_namespaced_class %>::Import.stub configuration:, xdg_config:, kernel:, logger: }
15
13
 
16
- after { <%= configuration.project_namespaced_class %>::Import.unstub :configuration, :kernel, :logger }
14
+ after { <%= configuration.project_namespaced_class %>::Import.unstub :configuration, :xdg_config, :kernel, :logger }
17
15
  end
@@ -5,23 +5,23 @@ require "milestoner"
5
5
 
6
6
  module Gemsmith
7
7
  module Tools
8
- # Versions (tags) current project (local and remote).
8
+ # Versions (tags: local and remote) current project.
9
9
  class Versioner
10
10
  include Import[:configuration]
11
11
  include Dry::Monads[:result]
12
12
 
13
13
  def initialize(
14
- client: Milestoner::Tags::Publisher.new,
15
- content: Milestoner::Configuration::Content,
14
+ publisher: Milestoner::Tags::Publisher.new,
15
+ model: Milestoner::Configuration::Model,
16
16
  **
17
17
  )
18
18
  super(**)
19
- @client = client
20
- @content = content
19
+ @publisher = publisher
20
+ @model = model
21
21
  end
22
22
 
23
23
  def call specification
24
- client.call settings(specification)
24
+ publisher.call settings(specification)
25
25
  Success specification
26
26
  rescue Milestoner::Error => error
27
27
  Failure error.message
@@ -29,10 +29,10 @@ module Gemsmith
29
29
 
30
30
  private
31
31
 
32
- attr_reader :client, :content
32
+ attr_reader :publisher, :model
33
33
 
34
34
  def settings specification
35
- content[
35
+ model[
36
36
  documentation_format: configuration.extensions_milestoner_documentation_format,
37
37
  prefixes: configuration.extensions_milestoner_prefixes,
38
38
  version: specification.version
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: 19.8.0
4
+ version: 20.0.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: 2023-05-20 00:00:00.000000000 Z
38
+ date: 2023-06-18 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: cogger
@@ -43,14 +43,14 @@ dependencies:
43
43
  requirements:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
- version: '0.8'
46
+ version: '0.10'
47
47
  type: :runtime
48
48
  prerelease: false
49
49
  version_requirements: !ruby/object:Gem::Requirement
50
50
  requirements:
51
51
  - - "~>"
52
52
  - !ruby/object:Gem::Version
53
- version: '0.8'
53
+ version: '0.10'
54
54
  - !ruby/object:Gem::Dependency
55
55
  name: core
56
56
  requirement: !ruby/object:Gem::Requirement
@@ -93,104 +93,146 @@ dependencies:
93
93
  - - "~>"
94
94
  - !ruby/object:Gem::Version
95
95
  version: '1.6'
96
+ - !ruby/object:Gem::Dependency
97
+ name: dry-schema
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '1.13'
103
+ type: :runtime
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: '1.13'
110
+ - !ruby/object:Gem::Dependency
111
+ name: etcher
112
+ requirement: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: '0.2'
117
+ type: :runtime
118
+ prerelease: false
119
+ version_requirements: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - "~>"
122
+ - !ruby/object:Gem::Version
123
+ version: '0.2'
96
124
  - !ruby/object:Gem::Dependency
97
125
  name: infusible
98
126
  requirement: !ruby/object:Gem::Requirement
99
127
  requirements:
100
128
  - - "~>"
101
129
  - !ruby/object:Gem::Version
102
- version: '1.0'
130
+ version: '2.0'
103
131
  type: :runtime
104
132
  prerelease: false
105
133
  version_requirements: !ruby/object:Gem::Requirement
106
134
  requirements:
107
135
  - - "~>"
108
136
  - !ruby/object:Gem::Version
109
- version: '1.0'
137
+ version: '2.0'
110
138
  - !ruby/object:Gem::Dependency
111
139
  name: milestoner
112
140
  requirement: !ruby/object:Gem::Requirement
113
141
  requirements:
114
142
  - - "~>"
115
143
  - !ruby/object:Gem::Version
116
- version: '15.3'
144
+ version: '16.0'
117
145
  type: :runtime
118
146
  prerelease: false
119
147
  version_requirements: !ruby/object:Gem::Requirement
120
148
  requirements:
121
149
  - - "~>"
122
150
  - !ruby/object:Gem::Version
123
- version: '15.3'
151
+ version: '16.0'
124
152
  - !ruby/object:Gem::Dependency
125
153
  name: refinements
126
154
  requirement: !ruby/object:Gem::Requirement
127
155
  requirements:
128
156
  - - "~>"
129
157
  - !ruby/object:Gem::Version
130
- version: '10.0'
158
+ version: '11.0'
131
159
  type: :runtime
132
160
  prerelease: false
133
161
  version_requirements: !ruby/object:Gem::Requirement
134
162
  requirements:
135
163
  - - "~>"
136
164
  - !ruby/object:Gem::Version
137
- version: '10.0'
165
+ version: '11.0'
138
166
  - !ruby/object:Gem::Dependency
139
167
  name: rubysmith
140
168
  requirement: !ruby/object:Gem::Requirement
141
169
  requirements:
142
170
  - - "~>"
143
171
  - !ruby/object:Gem::Version
144
- version: '4.9'
172
+ version: '5.1'
145
173
  type: :runtime
146
174
  prerelease: false
147
175
  version_requirements: !ruby/object:Gem::Requirement
148
176
  requirements:
149
177
  - - "~>"
150
178
  - !ruby/object:Gem::Version
151
- version: '4.9'
179
+ version: '5.1'
152
180
  - !ruby/object:Gem::Dependency
153
181
  name: runcom
154
182
  requirement: !ruby/object:Gem::Requirement
155
183
  requirements:
156
184
  - - "~>"
157
185
  - !ruby/object:Gem::Version
158
- version: '9.0'
186
+ version: '10.0'
187
+ type: :runtime
188
+ prerelease: false
189
+ version_requirements: !ruby/object:Gem::Requirement
190
+ requirements:
191
+ - - "~>"
192
+ - !ruby/object:Gem::Version
193
+ version: '10.0'
194
+ - !ruby/object:Gem::Dependency
195
+ name: sod
196
+ requirement: !ruby/object:Gem::Requirement
197
+ requirements:
198
+ - - "~>"
199
+ - !ruby/object:Gem::Version
200
+ version: '0.0'
159
201
  type: :runtime
160
202
  prerelease: false
161
203
  version_requirements: !ruby/object:Gem::Requirement
162
204
  requirements:
163
205
  - - "~>"
164
206
  - !ruby/object:Gem::Version
165
- version: '9.0'
207
+ version: '0.0'
166
208
  - !ruby/object:Gem::Dependency
167
209
  name: spek
168
210
  requirement: !ruby/object:Gem::Requirement
169
211
  requirements:
170
212
  - - "~>"
171
213
  - !ruby/object:Gem::Version
172
- version: '1.1'
214
+ version: '2.0'
173
215
  type: :runtime
174
216
  prerelease: false
175
217
  version_requirements: !ruby/object:Gem::Requirement
176
218
  requirements:
177
219
  - - "~>"
178
220
  - !ruby/object:Gem::Version
179
- version: '1.1'
221
+ version: '2.0'
180
222
  - !ruby/object:Gem::Dependency
181
223
  name: versionaire
182
224
  requirement: !ruby/object:Gem::Requirement
183
225
  requirements:
184
226
  - - "~>"
185
227
  - !ruby/object:Gem::Version
186
- version: '11.0'
228
+ version: '12.0'
187
229
  type: :runtime
188
230
  prerelease: false
189
231
  version_requirements: !ruby/object:Gem::Requirement
190
232
  requirements:
191
233
  - - "~>"
192
234
  - !ruby/object:Gem::Version
193
- version: '11.0'
235
+ version: '12.0'
194
236
  - !ruby/object:Gem::Dependency
195
237
  name: zeitwerk
196
238
  requirement: !ruby/object:Gem::Requirement
@@ -228,43 +270,26 @@ files:
228
270
  - lib/gemsmith/builders/git/ignore.rb
229
271
  - lib/gemsmith/builders/rspec/helper.rb
230
272
  - lib/gemsmith/builders/specification.rb
231
- - lib/gemsmith/cli/actions/build.rb
232
- - lib/gemsmith/cli/actions/config.rb
233
- - lib/gemsmith/cli/actions/container.rb
273
+ - lib/gemsmith/cli/actions/cli.rb
234
274
  - lib/gemsmith/cli/actions/edit.rb
235
- - lib/gemsmith/cli/actions/import.rb
236
275
  - lib/gemsmith/cli/actions/install.rb
237
276
  - lib/gemsmith/cli/actions/publish.rb
238
277
  - lib/gemsmith/cli/actions/view.rb
239
- - lib/gemsmith/cli/parser.rb
240
- - lib/gemsmith/cli/parsers/build.rb
241
- - lib/gemsmith/cli/parsers/core.rb
278
+ - lib/gemsmith/cli/commands/build.rb
242
279
  - lib/gemsmith/cli/shell.rb
243
- - lib/gemsmith/configuration/loader.rb
244
280
  - lib/gemsmith/container.rb
245
281
  - lib/gemsmith/import.rb
246
282
  - lib/gemsmith/templates/%project_name%/%project_name%.gemspec.erb
247
283
  - lib/gemsmith/templates/%project_name%/exe/%project_name%.erb
248
- - lib/gemsmith/templates/%project_name%/lib/%project_path%/cli/actions/config.rb.erb
249
- - lib/gemsmith/templates/%project_name%/lib/%project_path%/cli/actions/container.rb.erb
250
- - lib/gemsmith/templates/%project_name%/lib/%project_path%/cli/actions/import.rb.erb
251
- - lib/gemsmith/templates/%project_name%/lib/%project_path%/cli/parser.rb.erb
252
- - lib/gemsmith/templates/%project_name%/lib/%project_path%/cli/parsers/core.rb.erb
253
284
  - lib/gemsmith/templates/%project_name%/lib/%project_path%/cli/shell.rb.erb
254
- - lib/gemsmith/templates/%project_name%/lib/%project_path%/configuration/content.rb.erb
285
+ - lib/gemsmith/templates/%project_name%/lib/%project_path%/configuration/contract.rb.erb
255
286
  - lib/gemsmith/templates/%project_name%/lib/%project_path%/configuration/defaults.yml.erb
256
- - lib/gemsmith/templates/%project_name%/lib/%project_path%/configuration/loader.rb.erb
287
+ - lib/gemsmith/templates/%project_name%/lib/%project_path%/configuration/model.rb.erb
257
288
  - lib/gemsmith/templates/%project_name%/lib/%project_path%/container.rb.erb
258
289
  - lib/gemsmith/templates/%project_name%/lib/%project_path%/identity.rb.erb
259
290
  - lib/gemsmith/templates/%project_name%/lib/%project_path%/import.rb.erb
260
- - lib/gemsmith/templates/%project_name%/spec/lib/%project_path%/cli/actions/config_spec.rb.erb
261
- - lib/gemsmith/templates/%project_name%/spec/lib/%project_path%/cli/parser_spec.rb.erb
262
- - lib/gemsmith/templates/%project_name%/spec/lib/%project_path%/cli/parsers/core_spec.rb.erb
263
291
  - lib/gemsmith/templates/%project_name%/spec/lib/%project_path%/cli/shell_spec.rb.erb
264
- - lib/gemsmith/templates/%project_name%/spec/lib/%project_path%/configuration/content_spec.rb.erb
265
- - lib/gemsmith/templates/%project_name%/spec/lib/%project_path%/configuration/loader_spec.rb.erb
266
292
  - lib/gemsmith/templates/%project_name%/spec/support/shared_contexts/application_dependencies.rb.erb
267
- - lib/gemsmith/templates/%project_name%/spec/support/shared_examples/a_parser.rb.erb
268
293
  - lib/gemsmith/tools/cleaner.rb
269
294
  - lib/gemsmith/tools/editor.rb
270
295
  - lib/gemsmith/tools/installer.rb
@@ -300,7 +325,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
300
325
  - !ruby/object:Gem::Version
301
326
  version: '0'
302
327
  requirements: []
303
- rubygems_version: 3.4.13
328
+ rubygems_version: 3.4.14
304
329
  signing_key:
305
330
  specification_version: 4
306
331
  summary: A command line interface for smithing Ruby gems.
metadata.gz.sig CHANGED
Binary file