dry-cli 1.2.0 → 1.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: 816b3ffdbf5a84ad4ce91ff6be0bba9424141a7b28b880accb087ba65b63e36d
4
- data.tar.gz: 6ca3a54ff35dcb634acf68ff6472ddc8737cc15f99d6f7f860ac89e491759cd4
3
+ metadata.gz: 8ab3b2530b7f867fee473bfb808d816bcfefd9732f49e158d32d5d914873516c
4
+ data.tar.gz: 897275b361168f15eb760ced1d5a6db6ec1229361a9b323e06a3204bfe89cd8d
5
5
  SHA512:
6
- metadata.gz: e1b289e4571b3b658ff402f1c8dd2fa8c7746fc3a17293f2a3316961622adc1570c76b82dfbcf4c74c6510f1994952928d64eb56e99284acfae797f6adeb8037
7
- data.tar.gz: 4739d57ca298e1c85afcd5d0c499a56ca04db8e802d4c84be905a674e884599d4b2dbedca66927d9ed9a0467a5b1468c063bd57b25109c6a7e1c69068b113b59
6
+ metadata.gz: c12f142b52bb3114425d7be016416603a951cc88b5252593a77f3cd48bbe73d0b7e453dca3519fd5025af9832b875f563208914cb5657d6d0b5eef19782d6412
7
+ data.tar.gz: 2749e9f49dcf611171bdcdb2f9dbc51106cf78d7658155b2229a6e391610c18f288235ebe2abac654b6dfa8a0461e54e325cd2d315aa9303b2a06e1ddc1119fa
data/CHANGELOG.md CHANGED
@@ -1,5 +1,38 @@
1
1
  <!--- DO NOT EDIT THIS FILE - IT'S AUTOMATICALLY GENERATED VIA DEVTOOLS --->
2
2
 
3
+ ## 1.3.0 2025-07-29
4
+
5
+
6
+ ### Added
7
+
8
+ - Support unlimited nesting when registering commands via `register` with blocks. (@aaronmallen in #149)
9
+
10
+ You could previously do this only with fully qualified registrations:
11
+
12
+ ```ruby
13
+ Commands.register "nested one", MyFirstNestedCommand
14
+ Commands.register "nested one two", MySecondNestedCommand
15
+ Commands.register "nested one two three", MyThirdNestedCommand
16
+ ```
17
+
18
+ Now you can do the same via blocks:
19
+
20
+ ```ruby
21
+ Commands.register "nested" do
22
+ register "one", MyFirstNestedCommand do
23
+ register "two", MySecondNestedCommand do
24
+ register "three", MyThirdNestedCommand
25
+ end
26
+ end
27
+ end
28
+ ```
29
+
30
+ ### Changed
31
+
32
+ - Set minimum Ruby version to 3.1. (@timriley)
33
+
34
+ [Compare v1.2.0...v1.3.0](https://github.com/dry-rb/dry-cli/compare/v1.2.0...v1.3.0)
35
+
3
36
  ## 1.2.0 2024-10-15
4
37
 
5
38
 
data/README.md CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
  This library officially supports the following Ruby versions:
16
16
 
17
- * MRI `>= 2.4.0`
17
+ * MRI `>= 3.1.0`
18
18
  * jruby `>= 9.4` (not tested on CI)
19
19
 
20
20
  ## License
data/dry-cli.gemspec CHANGED
@@ -26,13 +26,12 @@ Gem::Specification.new do |spec|
26
26
  spec.metadata["source_code_uri"] = "https://github.com/dry-rb/dry-cli"
27
27
  spec.metadata["bug_tracker_uri"] = "https://github.com/dry-rb/dry-cli/issues"
28
28
 
29
- spec.required_ruby_version = ">= 2.4.0"
29
+ spec.required_ruby_version = ">= 3.1"
30
30
 
31
31
  # to update dependencies edit project.yml
32
32
 
33
33
  spec.add_development_dependency "bundler", ">= 1.6", "< 3"
34
34
  spec.add_development_dependency "rake", "~> 13.0"
35
35
  spec.add_development_dependency "rspec", "~> 3.7"
36
- spec.add_development_dependency "rubocop", "~> 0.82"
37
36
  spec.add_development_dependency "simplecov", "~> 0.17.1"
38
37
  end
@@ -318,9 +318,18 @@ module Dry
318
318
  # @since 0.1.0
319
319
  #
320
320
  # @see Dry::CLI::Registry#register
321
- def register(name, command, aliases: [], hidden: false)
321
+ def register(name, command = nil, aliases: [], hidden: false, &block)
322
322
  command_name = "#{prefix} #{name}"
323
323
  registry.set(command_name, command, aliases, hidden)
324
+
325
+ if block_given?
326
+ prefix = self.class.new(registry, command_name, aliases, hidden)
327
+ if block.arity.zero?
328
+ prefix.instance_eval(&block)
329
+ else
330
+ yield(prefix)
331
+ end
332
+ end
324
333
  end
325
334
 
326
335
  private
@@ -3,6 +3,6 @@
3
3
  module Dry
4
4
  class CLI
5
5
  # @since 0.1.0
6
- VERSION = "1.2.0"
6
+ VERSION = "1.3.0"
7
7
  end
8
8
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dry-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Luca Guidi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-10-15 00:00:00.000000000 Z
11
+ date: 2025-07-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -58,20 +58,6 @@ dependencies:
58
58
  - - "~>"
59
59
  - !ruby/object:Gem::Version
60
60
  version: '3.7'
61
- - !ruby/object:Gem::Dependency
62
- name: rubocop
63
- requirement: !ruby/object:Gem::Requirement
64
- requirements:
65
- - - "~>"
66
- - !ruby/object:Gem::Version
67
- version: '0.82'
68
- type: :development
69
- prerelease: false
70
- version_requirements: !ruby/object:Gem::Requirement
71
- requirements:
72
- - - "~>"
73
- - !ruby/object:Gem::Version
74
- version: '0.82'
75
61
  - !ruby/object:Gem::Dependency
76
62
  name: simplecov
77
63
  requirement: !ruby/object:Gem::Requirement
@@ -127,7 +113,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
127
113
  requirements:
128
114
  - - ">="
129
115
  - !ruby/object:Gem::Version
130
- version: 2.4.0
116
+ version: '3.1'
131
117
  required_rubygems_version: !ruby/object:Gem::Requirement
132
118
  requirements:
133
119
  - - ">="