gemsmith 20.2.0 → 20.3.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: c07779f7a63388c6c6ec265b63d03a1f050e87aeae86d16674ceb035c209ef6d
4
- data.tar.gz: a31f491232f07e08abc83f87d806d70e10f03192124332c474d11779165c7743
3
+ metadata.gz: 8869cf7c922df0fad49e6439159c059dad5d0a2e14e9fef55153cc95f3c155f5
4
+ data.tar.gz: 55fdbffe5e0f6eb70eb3c03bdbb7fa35a30abfd7517f7d5c14f55d0c4e322505
5
5
  SHA512:
6
- metadata.gz: dec10ba9b8346c6c622bf840a2e46b68dedd329cd4b935d6f4792715f2e1edd314562c34d7b43378206ab7bab14e0292bdc88ea3f82e106b3cac56439e588d15
7
- data.tar.gz: f38743add33f8c6a86c733d34739ff56dc3abb227a551b379664e4c08f38a9fb518b5208e25a765d2680f1c7028663c697852c5f7c17d9061c36828a67cf7f99
6
+ metadata.gz: b0ddd3476054d375abdb1b373ebbdf4cfa384b0897fb31b9fb0afd9688bee5a887d7ed90dcf5318fcfceb73cec6877ebd224014baa0527620489dd936edb329e
7
+ data.tar.gz: 06cb42377fc3ff92cc6d685351e994492c3c877f13cdd72cd14003292199a08525441a26f45d4f354f43576c5041af09ea42fa10023e2247cf17a87c5021f37f
checksums.yaml.gz.sig CHANGED
Binary file
data/README.adoc CHANGED
@@ -52,27 +52,7 @@ gem install gemsmith
52
52
 
53
53
  From the command line, type: `gemsmith --help`
54
54
 
55
- ....
56
- USAGE
57
- gemsmith [OPTIONS]
58
- gemsmith COMMAND [OPTIONS]
59
-
60
- OPTIONS
61
- -i, --install [GEM] Install gem for local development.
62
- Optionally computes gem package based on current directory.
63
- -p, --publish [GEM] Publish gem to remote gem server.
64
- Optionally computes gem package based on current directory.
65
- Default: gemsmith.
66
- -e, --edit GEM Edit installed gem in default editor.
67
- -V, --view GEM View installed gem in default browser.
68
- -v, --version Show version.
69
- -h, --help [COMMAND] Show this message.
70
-
71
- COMMANDS
72
- config Manage configuration.
73
- Path is dynamic per current directory.
74
- build Build new project.
75
- ....
55
+ image:https://alchemists.io/images/projects/gemsmith/screenshots/usage.png[Usage,width=729,height=462,role=focal_point]
76
56
 
77
57
  ==== Build
78
58
 
data/exe/gemsmith CHANGED
@@ -3,4 +3,4 @@
3
3
 
4
4
  require "gemsmith"
5
5
 
6
- Gemsmith::CLI::Shell.new.call ARGV
6
+ Gemsmith::CLI::Shell.new.call
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 = "20.2.0"
5
+ spec.version = "20.3.0"
6
6
  spec.authors = ["Brooke Kuhlmann"]
7
7
  spec.email = ["brooke@alchemists.io"]
8
8
  spec.homepage = "https://alchemists.io/projects/gemsmith"
@@ -32,7 +32,7 @@ Gem::Specification.new do |spec|
32
32
  spec.add_dependency "infusible", "~> 2.0"
33
33
  spec.add_dependency "milestoner", "~> 16.0"
34
34
  spec.add_dependency "refinements", "~> 11.0"
35
- spec.add_dependency "rubysmith", "~> 5.3"
35
+ spec.add_dependency "rubysmith", "~> 5.5"
36
36
  spec.add_dependency "runcom", "~> 10.0"
37
37
  spec.add_dependency "sod", "~> 0.0"
38
38
  spec.add_dependency "spek", "~> 2.0"
@@ -27,8 +27,8 @@ module Gemsmith
27
27
  @loader = loader
28
28
  end
29
29
 
30
- def call name = default
31
- case installer.call loader.call("#{name}.gemspec")
30
+ def call name = nil
31
+ case installer.call loader.call("#{name || default}.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 = default
31
- case publisher.call loader.call("#{name}.gemspec")
30
+ def call name = nil
31
+ case publisher.call loader.call("#{name || default}.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 { "Unable to handle publish action." }
@@ -20,8 +20,6 @@ module Gemsmith
20
20
 
21
21
  attr_reader :context, :dsl
22
22
 
23
- # :reek:TooManyStatements
24
- # rubocop:todo Metrics/MethodLength
25
23
  def cli
26
24
  context = build_context
27
25
 
@@ -36,7 +34,6 @@ module Gemsmith
36
34
  on Sod::Prefabs::Actions::Help, self
37
35
  end
38
36
  end
39
- # rubocop:enable Metrics/MethodLength
40
37
 
41
38
  def build_context
42
39
  context[defaults_path:, xdg_config:, version_label: specification.labeled_version]
@@ -12,12 +12,12 @@ module Gemsmith
12
12
  module Container
13
13
  extend Dry::Container::Mixin
14
14
 
15
- register :configuration do
15
+ register :configuration, memoize: true do
16
16
  self[:defaults].add_loader(Etcher::Loaders::YAML.new(self[:xdg_config].active))
17
17
  .then { |registry| Etcher.call registry }
18
18
  end
19
19
 
20
- register :defaults do
20
+ register :defaults, memoize: true do
21
21
  registry = Etcher::Registry.new contract: Rubysmith::Configuration::Contract,
22
22
  model: Rubysmith::Configuration::Model
23
23
 
@@ -29,19 +29,22 @@ module Gemsmith
29
29
  .add_transformer(Rubysmith::Configuration::Transformers::TemplateRoot.new)
30
30
  .add_transformer(
31
31
  Rubysmith::Configuration::Transformers::TemplateRoot.new(
32
- Pathname(__dir__).join("templates")
32
+ default: Pathname(__dir__).join("templates")
33
33
  )
34
34
  )
35
35
  .add_transformer(Rubysmith::Configuration::Transformers::TargetRoot)
36
36
  end
37
37
 
38
+ register :specification, memoize: true do
39
+ Spek::Loader.call "#{__dir__}/../../gemsmith.gemspec"
40
+ end
41
+
38
42
  register(:input, memoize: true) { self[:configuration].dup }
39
43
  register(:defaults_path) { Rubysmith::Container[:defaults_path] }
40
- register(:xdg_config) { Runcom::Config.new "gemsmith/configuration.yml" }
41
- register(:specification) { Spek::Loader.call "#{__dir__}/../../gemsmith.gemspec" }
44
+ register(:xdg_config, memoize: true) { Runcom::Config.new "gemsmith/configuration.yml" }
42
45
  register(:environment) { ENV }
43
- register(:executor) { Open3 }
44
- register(:kernel) { Kernel }
45
- register(:logger) { Cogger.new formatter: :emoji }
46
+ register(:logger, memoize: true) { Cogger.new formatter: :emoji }
47
+ register :executor, Open3
48
+ register :kernel, Kernel
46
49
  end
47
50
  end
@@ -2,4 +2,4 @@
2
2
 
3
3
  require "<%= configuration.project_name %>"
4
4
 
5
- <%= configuration.project_namespaced_class %>::CLI::Shell.new.call ARGV
5
+ <%= configuration.project_namespaced_class %>::CLI::Shell.new.call
@@ -9,20 +9,23 @@ require "spek"
9
9
  module Container
10
10
  extend Dry::Container::Mixin
11
11
 
12
- register :configuration do
12
+ register :configuration, memoize: true do
13
13
  self[:defaults].add_loader(Etcher::Loaders::YAML.new(self[:xdg_config].active))
14
14
  .then { |registry| Etcher.call registry }
15
15
  end
16
16
 
17
- register :defaults do
17
+ register :defaults, memoize: true do
18
18
  Etcher::Registry.new(contract: Configuration::Contract, model: Configuration::Model)
19
19
  .add_loader(Etcher::Loaders::YAML.new(self[:defaults_path]))
20
20
  end
21
21
 
22
- register(:defaults_path) { Pathname(__dir__).join("configuration/defaults.yml") }
23
- register(:xdg_config) { Runcom::Config.new "<%= configuration.project_path %>/configuration.yml" }
24
- register(:specification) { Spek::Loader.call "#{__dir__}/<%= Array.new(2 + configuration.project_levels, "../").join %><%= configuration.project_name %>.gemspec" }
25
- register(:kernel) { Kernel }
26
- register(:logger) { Cogger.new formatter: :emoji }
22
+ register :specification, memoize: true do
23
+ Spek::Loader.call "#{__dir__}/<%= Array.new(2 + configuration.project_levels, "../").join %><%= configuration.project_name %>.gemspec"
24
+ end
25
+
26
+ register(:defaults_path, memoize: true) { Pathname(__dir__).join("configuration/defaults.yml") }
27
+ register(:xdg_config, memoize: true) { Runcom::Config.new "<%= configuration.project_path %>/configuration.yml" }
28
+ register(:logger, memoize: true) { Cogger.new formatter: :emoji }
29
+ register :kernel, Kernel
27
30
  end
28
31
  <% 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: 20.2.0
4
+ version: 20.3.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-06-22 00:00:00.000000000 Z
38
+ date: 2023-07-29 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: cogger
@@ -169,14 +169,14 @@ dependencies:
169
169
  requirements:
170
170
  - - "~>"
171
171
  - !ruby/object:Gem::Version
172
- version: '5.3'
172
+ version: '5.5'
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: '5.3'
179
+ version: '5.5'
180
180
  - !ruby/object:Gem::Dependency
181
181
  name: runcom
182
182
  requirement: !ruby/object:Gem::Requirement
@@ -325,7 +325,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
325
325
  - !ruby/object:Gem::Version
326
326
  version: '0'
327
327
  requirements: []
328
- rubygems_version: 3.4.14
328
+ rubygems_version: 3.4.17
329
329
  signing_key:
330
330
  specification_version: 4
331
331
  summary: A command line interface for smithing Ruby gems.
metadata.gz.sig CHANGED
Binary file