eac_cli 0.12.6 → 0.13.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: e9465f0f0d648395bb6616a208f830034405eaed91e6d186f8235cd2b0ea28a6
4
- data.tar.gz: efd2ab2ad3737f7f12577908cc3c0bda2fbead8ddaa99ae671c72162a3f63bb3
3
+ metadata.gz: 921813c1a708922d85ab9b75031bfe6acaf750791dab915182c693c78e7ce745
4
+ data.tar.gz: '0931a044b7668f9fbba9a5dc7b3809b477ccaec2c7a09387371f4999109139e7'
5
5
  SHA512:
6
- metadata.gz: 88e58527420ebd47d4de3684bdd6d2c18eb6b5b1be87c33043b0d3951d924265d44b9108feed7f3c0cd236ef11546ecf188c2a1c0de0ab73e0b4740c2df63287
7
- data.tar.gz: 45fb719847efcade7e5c56b015ebd8aefce718d109f11aebb97f7645a681ec5ed53358a3a7beebc63019b77e3847b2be69421e1b9b8bcaacbf7682ecaafdec20
6
+ metadata.gz: 3c91bdbbbdd974a29723bce6de6e978d7371d290ca81b07db28e4eb90d30ad511c210713ea3bf5b22a6959e93a4de0c4cb5db0c8c75df0fbe8a142ead9fb70fb
7
+ data.tar.gz: a262fd7dba70dca1617213532f4e875f9078d08f8df86992f0a0b139ddd1fe54a27dad2e0ea8978cd64a508b108f90814516db057f9f0c85deef57c7a2fb1f88
@@ -8,6 +8,14 @@ module EacCli
8
8
  def argument?
9
9
  true
10
10
  end
11
+
12
+ def build_value(new_value, previous_value)
13
+ repeat? ? previous_value + [new_value] : new_value
14
+ end
15
+
16
+ def default_value
17
+ repeat? ? [] : nil
18
+ end
11
19
  end
12
20
  end
13
21
  end
@@ -8,7 +8,8 @@ module EacCli
8
8
  DEFAULT_REQUIRED = false
9
9
 
10
10
  enable_listable
11
- lists.add_symbol :option, :optional, :usage, :required
11
+ enable_abstract_methods :build_value, :default_value
12
+ lists.add_symbol :option, :optional, :usage, :repeat, :required
12
13
  attr_reader :short, :long, :description, :options
13
14
 
14
15
  def initialize(short, long, description, options = {})
@@ -23,6 +24,10 @@ module EacCli
23
24
  long.to_s.variableize.to_sym
24
25
  end
25
26
 
27
+ def repeat?
28
+ options[OPTION_REPEAT]
29
+ end
30
+
26
31
  def required?
27
32
  return true if options.key?(:required) && options.fetch(:required)
28
33
  return false if options.key?(:optional) && options.fetch(:optional)
@@ -8,6 +8,14 @@ module EacCli
8
8
  def argument?
9
9
  false
10
10
  end
11
+
12
+ def build_value(_new_value, previous_value)
13
+ repeat? ? previous_value + 1 : true
14
+ end
15
+
16
+ def default_value
17
+ repeat? ? 0 : false
18
+ end
11
19
  end
12
20
  end
13
21
  end
@@ -13,6 +13,18 @@ module EacCli
13
13
  options.assert_valid_keys(self.class.lists.option.values)
14
14
  end
15
15
 
16
+ def build_value(new_value, previous_value)
17
+ if previous_value.is_a?(::Array)
18
+ previous_value + [new_value]
19
+ else
20
+ new_value
21
+ end
22
+ end
23
+
24
+ def default_value
25
+ repeat? ? [] : nil
26
+ end
27
+
16
28
  def identifier
17
29
  name.to_s.variableize.to_sym
18
30
  end
@@ -24,11 +24,7 @@ module EacCli
24
24
  end
25
25
 
26
26
  def collect(option, value)
27
- if data[option].is_a?(::Array)
28
- data[option] << value
29
- else
30
- data[option] = value
31
- end
27
+ data[option] = option.build_value(value, data[option])
32
28
  end
33
29
 
34
30
  def supplied?(option)
@@ -42,18 +38,8 @@ module EacCli
42
38
  end
43
39
 
44
40
  def default_values
45
- definition.options.each { |option| data[option] = option_default_value(option) }
46
- definition.positional.each do |positional|
47
- data[positional] = positional_default_value(positional)
48
- end
49
- end
50
-
51
- def option_default_value(option)
52
- option.argument? ? nil : false
53
- end
54
-
55
- def positional_default_value(positional)
56
- positional.repeat? ? [] : nil
41
+ definition.options.each { |option| data[option] = option.default_value }
42
+ definition.positional.each { |positional| data[positional] = positional.default_value }
57
43
  end
58
44
  end
59
45
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module EacCli
4
- VERSION = '0.12.6'
4
+ VERSION = '0.13.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eac_cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.6
4
+ version: 0.13.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Esquilo Azul Company
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-02-06 00:00:00.000000000 Z
11
+ date: 2021-02-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: eac_ruby_utils