gemsmith 19.8.0 → 20.0.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.
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