rake-commander 0.2.4 → 0.2.6

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: e676c7895883ca91c58c1ef5a025a4a8f52795ed12ac79e2e53f304b59e5a9ee
4
- data.tar.gz: 871c881ac31b06e1cf4a13bab7846d063bfee83bfcca4b332eeeb345f04c3051
3
+ metadata.gz: ba9099907341e84e8420c7df7eca7f1b8f5279e454f73e031f01f982285ff583
4
+ data.tar.gz: 5263523e7800afd7a1a172eeafb5ae65e48a5b535c0ec6467b52656b90778c58
5
5
  SHA512:
6
- metadata.gz: 78d4f8199e7e220d26e48346fd0cd23aec273c739ee8bcd949ed12cf147191ec988f056d6ef273f5dc186e64bb71a2bc7eb33dbcbc2525f2d20278dac3ce1df2
7
- data.tar.gz: 31a2dca9846b7521b43ca14d79a562f57a30fafad01af42e3a0886e4aceb3b4d43d71f8b6133f08ca538cbf9e6d5210ed82447dbfb20f70ea8ab315797dedae7
6
+ metadata.gz: a5bdc0bcd00a882f0526e354f0a9a39b6efb0864748ffc088409ba7c2759f01ea2001d4f6eced4f56aaad2976d2ae5874a059e4e1cf434488243242e426444dd
7
+ data.tar.gz: 4fe1f53c6885a8b35b2193d96313c0f2e570cff131285def889a425110b8743a3fb792b2e7ae5646514870bfe15055cf529a0e49020219e5032f97a3f1315f96
data/CHANGELOG.md CHANGED
@@ -32,11 +32,22 @@ 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.5] - 2023-04-xx
35
+ ## [0.2.7] - 2023-05-xx
36
36
 
37
37
  ### Added
38
38
  ### Fixed
39
39
  ### Changed
40
+ - `RakeCommander::Option` configure_other should only apply when the instance vars are not defined.
41
+
42
+ ## [0.2.6] - 2023-05-01
43
+
44
+ ### Changed
45
+ - `RakeCommander::Option` configure_other should only apply when the instance vars are not defined.
46
+
47
+ ## [0.2.5] - 2023-05-01
48
+
49
+ ### Changed
50
+ - `RakeCommander::Base::ClassInheritable#inherited_class_value` now expects a reference to the subclass
40
51
 
41
52
  ## [0.2.4] - 2023-04-30
42
53
 
@@ -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
@@ -125,11 +125,12 @@ class RakeCommander
125
125
 
126
126
  # @return [Hash] keyed arguments to create a new object
127
127
  def dup_key_arguments
128
+ configure_other
128
129
  {}.tap do |kargs|
129
130
  kargs.merge!(short: short.dup.freeze) if short
130
131
  kargs.merge!(name: name_full.dup.freeze) if name_full
131
- kargs.merge!(desc: desc.dup) if desc
132
- kargs.merge!(default: default.dup) if default?
132
+ kargs.merge!(desc: @desc.dup) if @desc
133
+ kargs.merge!(default: @default.dup) if default?
133
134
  kargs.merge!(type: @type_coercion) if @type_coercion.is_a?(Class)
134
135
  kargs.merge!(required: required?)
135
136
  end
@@ -228,17 +229,23 @@ class RakeCommander
228
229
 
229
230
  # It consumes `other_args`, to prevent direct overrides to be overriden by it.
230
231
  def configure_other
231
- if type = other_args.find {|arg| arg.is_a?(Class)}
232
- @type_coercion = type
233
- other_args.delete(type)
234
- end
235
- if value = other_args.find {|arg| arg.is_a?(String)}
236
- @desc = value
237
- other_args.dup.each do |val|
238
- other_args.delete(val) if val.is_a?(String)
239
- end
240
- end
232
+ @type_coertion ||= fetch_type_from_other
233
+ @desc ||= fetch_desc_from_other
241
234
  nil
242
235
  end
236
+
237
+ def fetch_type_from_other
238
+ return nil unless type = other_args.find {|arg| arg.is_a?(Class)}
239
+ @type_coercion ||= type
240
+ other_args.delete(type)
241
+ end
242
+
243
+ def fetch_desc_from_other
244
+ return nil unless value = other_args.find {|arg| arg.is_a?(String)}
245
+ @desc ||= value
246
+ other_args.dup.each do |val|
247
+ other_args.delete(val) if val.is_a?(String)
248
+ end
249
+ end
243
250
  end
244
251
  end
@@ -1,3 +1,3 @@
1
1
  class RakeCommander
2
- VERSION = '0.2.4'.freeze
2
+ VERSION = '0.2.6'.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.4
4
+ version: 0.2.6
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