cl 1.2.3 → 1.2.4

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
  SHA1:
3
- metadata.gz: 78ff40e295fbf8f2e46de7150e9e769c9d27311e
4
- data.tar.gz: 230752a72d84226fe9c9dce2153e5eee317e5039
3
+ metadata.gz: 1ad6f463c61d2ec0f5db88d560d738fcc671a095
4
+ data.tar.gz: 63b2ea1908c0112f1baf7d3d1e28a8481e54659f
5
5
  SHA512:
6
- metadata.gz: 0dd2f41a992417486b560bacd083effdbc985a997ed136c2e0cf9d63467e3a4c997bcdfcfa19b2fdbef17a4223f16f919be305022a370929b00ce7258d8afbbb
7
- data.tar.gz: 4ff8c46ee20c9a5e06f74c44e152aba5323ee24b12b7d3e1620362fc295cb1bc4b330b03e5088eb3bc379c4ae7e0f073ec1d7cdee3c034c3c0f58d4fad56767b
6
+ metadata.gz: d043d77bfeac6e2a761027995c22ae1e3dadbc947e0eac008a5efbc4e7805811b720914df9ab1d904611b7dc998c298ed3bc69951ed0355a68945e1c0ef0497a
7
+ data.tar.gz: bb6bc3786118b64a4f4279af512f788d6f919fdfaafd708c38521fc970e405dba5b58b5a2f9a444c364a2d35e7ae5718a4e66e53e5c2e86fab371d44fcacf6d7
@@ -1,5 +1,36 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.2.4 (2020-01-18)
4
+
5
+ * Make auto-registration optional, but on by default
6
+
7
+ ## 1.2.3 (2020-01-17)
8
+
9
+ * Bring back auto regisration (broke dpl)
10
+
11
+ ## 1.2.2 (2020-01-17)
12
+
13
+ * Do not auto-register commands by default
14
+
15
+ ## 1.2.1 (2020-01-14)
16
+
17
+ * Fix calling const.include on older Ruby versions
18
+
19
+ ## 1.2.0 (2020-01-14)
20
+
21
+ * Enforce declaring arguments
22
+ * Allow optional strings on long opts
23
+ * Define arg accessor on an included module so it can be overwritten
24
+ * Inherit args from parent commands
25
+ * Do not raise on empty splats
26
+ * Allow args to have defaults
27
+ * Allow args to be enums
28
+ * Define predicate methods for args
29
+ * Make flag values an optional feature
30
+ * List multiple usage lines if a command has multiple registry keys
31
+ * Sort options by class hierarchie
32
+ * Do not try to cast nil values to integers
33
+
3
34
  ## 1.1.3 (2019-09-02)
4
35
 
5
36
  * Rescue OptionParser::InvalidOption, suggest known options
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- cl (1.2.2)
4
+ cl (1.2.3)
5
5
  regstry (~> 1.0.3)
6
6
 
7
7
  GEM
data/README.md CHANGED
@@ -153,6 +153,33 @@ module One
153
153
  end
154
154
  ```
155
155
 
156
+ By default commands auto register themselves with the underscored name of the
157
+ last part of their class name (as seen in the example above). It is possible to
158
+ turn this off using:
159
+
160
+ ```ruby
161
+ Cl::Cmd.auto_register = false
162
+ ```
163
+
164
+ Command auto-registration can cause name clashes when namespaced commands have
165
+ the same demodulized class name. For example:
166
+
167
+ ```ruby
168
+ class Git < Cl::Cmd
169
+ # auto-registers as :git
170
+ end
171
+
172
+ module Heroku
173
+ class Git < Cl::Cmd
174
+ # also auto-registers as :git
175
+ end
176
+ end
177
+ ```
178
+
179
+ It is recommended to turn auto-registration off when using such module
180
+ structures.
181
+
182
+
156
183
  ### Runners
157
184
 
158
185
  Runners lookup the command to execute from the registry, by checking the
@@ -6,9 +6,6 @@ require 'cl/opts'
6
6
  require 'cl/parser'
7
7
 
8
8
  class Cl
9
- singleton_class.send(:attr_accessor, :auto_register) # remove unless anyone needs this
10
- singleton_class.instance_variable_set(:@auto_register, true)
11
-
12
9
  # Base class for all command classes that can be run.
13
10
  #
14
11
  # Inherit your command classes from this class, use the {Cl::Cmd::Dsl} to
@@ -23,9 +20,10 @@ class Cl
23
20
  class << self
24
21
  include Merge, Suggest, Underscore
25
22
 
23
+ attr_accessor :auto_register
24
+
26
25
  inherited = ->(const) do
27
- # return unless Cl.auto_register
28
- if const.name
26
+ if const.name && Cmd.auto_register
29
27
  key = underscore(const.name.split('::').last)
30
28
  key = [registry_key, key].compact.join(':') unless abstract?
31
29
  const.register(key)
@@ -50,6 +48,8 @@ class Cl
50
48
  end
51
49
  end
52
50
 
51
+ self.auto_register = true
52
+
53
53
  abstract
54
54
 
55
55
  opt '--help', 'Get help on this command'
@@ -1,3 +1,3 @@
1
1
  class Cl
2
- VERSION = '1.2.3'
2
+ VERSION = '1.2.4'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cl
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.3
4
+ version: 1.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sven Fuchs
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-02-17 00:00:00.000000000 Z
11
+ date: 2020-02-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: regstry