eac_cli 0.12.6 → 0.13.0

Sign up to get free protection for your applications and to get access to all the features.
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