rake-commander 0.2.3 → 0.2.5

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: bcd5bb7ca707d1e8e6cf543712c447cbd63061e7bbe8cfdc6e3c0c0755c338e5
4
- data.tar.gz: 7b02270fbe937b0b50b6e8c4b1001005ba377c69f7a799ce97823fea42356893
3
+ metadata.gz: 580b47f2dc5213236846d91e47832787c2f1d50cd396dae322ea1ab91b6c31f7
4
+ data.tar.gz: 348609827f993bea3b61a9ca43d59456a98f093bd1029e1988bf2f2862633ee2
5
5
  SHA512:
6
- metadata.gz: 00d05400483297153797a08d02c32fb5bde4510a829cdb158121324d1d034d62dafa3560c2a56daa6893b6bc35ee9a46a832493e2b37403a34eb949f10082fc4
7
- data.tar.gz: 01c09729261196848948383dfeb356c1463086f858e4365bcfb20a043e98e521284fe45b20cf8f39ef0ab139a37fa26ce381e433974fad48c860d6ea9c377476
6
+ metadata.gz: aae7e0db0dcd102dc43b4a1a5f1281be80ddb6246edaeb5507b1bf17d88f6cca7fcac31f090cf10a95176eaf880a891b937b5136fdcc374003ab0afc2daf622e
7
+ data.tar.gz: '0080e78b63488f7ce927e8364a479f3bc11d5f920708b0b640fd0fc3e7668d69edb3940df958a4cd3e667a0842d5c63ac6c89cf548b2f4e239b41db26e30d2fd'
data/CHANGELOG.md CHANGED
@@ -32,20 +32,29 @@ All notable changes to this project will be documented in this file.
32
32
  - Option to globally enable/disable the 2nd patch?
33
33
  * That would make this gem completely useless.
34
34
 
35
- ## [0.2.4] - 2023-04-xx
35
+ ## [0.2.6] - 2023-05-xx
36
36
 
37
37
  ### Added
38
38
  ### Fixed
39
39
  ### Changed
40
40
 
41
+ ## [0.2.5] - 2023-05-01
42
+
43
+ ### Changed
44
+ - `RakeCommander::Base::ClassInheritable#inherited_class_value` now expects a reference to the subclass
45
+
46
+ ## [0.2.4] - 2023-04-30
47
+
48
+ ### Added
49
+ - `RakeCommander::Options`
50
+ - `::option_get` retrieves an option by name or short, may it exist.
51
+ - `::option?` to check if an opion exists.
52
+
41
53
  ## [0.2.3] - 2023-04-29
42
54
 
43
55
  ### Added
44
56
  - Include Symbol option names in the parsed option results.
45
57
 
46
- ### Fixed
47
- ### Changed
48
-
49
58
  ## [0.2.2] - 2023-04-29
50
59
 
51
60
  ### Fixed
@@ -50,7 +50,7 @@ class RakeCommander
50
50
  definitions.each do |var, action|
51
51
  instance_var = instance_variable_name(var)
52
52
  value = instance_variable_get(instance_var)
53
- child_value = inherited_class_value(value, method, action)
53
+ child_value = inherited_class_value(value, method, action, subclass)
54
54
  subclass.instance_variable_set(instance_var, child_value)
55
55
  end
56
56
  end
@@ -58,14 +58,14 @@ class RakeCommander
58
58
  end
59
59
 
60
60
  # @return [Variant] the value that the child class will inherit
61
- def inherited_class_value(value, method, action)
61
+ def inherited_class_value(value, method, action, subclass)
62
62
  case method
63
63
  when :mirror
64
64
  value
65
65
  when :deep_dup
66
66
  case action
67
67
  when Proc
68
- action.call(value)
68
+ action.call(value, subclass)
69
69
  when :default
70
70
  custom_deep_dup(value)
71
71
  end
@@ -94,6 +94,18 @@ class RakeCommander
94
94
  options_hash.values.uniq
95
95
  end
96
96
 
97
+ # @param sym [Symbol] the `name` or `short` of the option.
98
+ # @return [RakeCommander::Option, NilClass] retrieves the option.
99
+ def option_get(sym)
100
+ options_hash[sym.to_sym]
101
+ end
102
+
103
+ # @param sym [Symbol] the `name` or `short` of the option.
104
+ # @return [Boolean] whether an option has been declared.
105
+ def option?(sym)
106
+ options_hash.key?(sym.to_sym)
107
+ end
108
+
97
109
  # @return [Boolean] are there options defined?
98
110
  def options?
99
111
  !options.empty?
@@ -149,7 +161,7 @@ class RakeCommander
149
161
  def implicit_shorts
150
162
  options.each_with_object({}) do |opt, implicit|
151
163
  short = opt.short_implicit
152
- implicit[short] = opt unless options_hash.key?(short)
164
+ implicit[short] = opt unless option?(short)
153
165
  end
154
166
  end
155
167
 
@@ -159,7 +171,7 @@ class RakeCommander
159
171
  # @note `OptionParser` already has `-h --help` as a native option.
160
172
  # @param opts [OptionParser] where the help will be added.
161
173
  def option_help(opts)
162
- return false if options_hash.key?(:help) || options_hash.key?(:h)
174
+ return false if option?(:help) || option?(:h)
163
175
  option(:h, :help, 'Prints this help') do
164
176
  puts opts
165
177
  exit(0)
@@ -191,12 +203,12 @@ class RakeCommander
191
203
  # @return [RakeCommander::Option, NilClass] the option that was added, `nil` is returned otherwise.
192
204
  def add_to_options(opt, override: true)
193
205
  name_ref = respond_to?(:name)? " (#{name})" : ''
194
- if sprev = options_hash[opt.short]
206
+ if sprev = option_get(opt.short)
195
207
  return nil unless override
196
208
  puts "Warning#{name_ref}: Overriding option '#{sprev.name}' with short '#{sprev.short}' ('#{opt.name}')"
197
209
  delete_from_options(sprev)
198
210
  end
199
- if nprev = options_hash[opt.name]
211
+ if nprev = option_get(opt.name)
200
212
  return nil unless override
201
213
  puts "Warning#{name_ref}: Overriding option '#{nprev.short}' with name '#{nprev.name}' ('#{opt.short}')"
202
214
  delete_from_options(nprev)
@@ -1,3 +1,3 @@
1
1
  class RakeCommander
2
- VERSION = '0.2.3'.freeze
2
+ VERSION = '0.2.5'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rake-commander
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Oscar Segura Samper
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-04-29 00:00:00.000000000 Z
11
+ date: 2023-05-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler