ehbrs-tools 0.16.0 → 0.16.1
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 +4 -4
- data/lib/ehbrs/tools/version.rb +1 -1
- data/lib/ehbrs/vg/wii/wit/parsers/dump.rb +10 -5
- data/vendor/aranha-parsers/Gemfile +5 -0
- data/vendor/aranha-parsers/aranha-parsers.gemspec +23 -0
- data/vendor/aranha-parsers/lib/aranha/parsers.rb +9 -0
- data/vendor/aranha-parsers/lib/aranha/parsers/base.rb +79 -0
- data/vendor/aranha-parsers/lib/aranha/parsers/html.rb +11 -0
- data/vendor/aranha-parsers/lib/aranha/parsers/html/base.rb +47 -0
- data/vendor/aranha-parsers/lib/aranha/parsers/html/item.rb +24 -0
- data/vendor/aranha-parsers/lib/aranha/parsers/html/item_list.rb +29 -0
- data/vendor/aranha-parsers/lib/aranha/parsers/html/node.rb +13 -0
- data/vendor/aranha-parsers/lib/aranha/parsers/html/node/base.rb +36 -0
- data/vendor/aranha-parsers/lib/aranha/parsers/html/node/default.rb +126 -0
- data/vendor/aranha-parsers/lib/aranha/parsers/invalid_state_exception.rb +8 -0
- data/vendor/aranha-parsers/lib/aranha/parsers/patches.rb +11 -0
- data/vendor/aranha-parsers/lib/aranha/parsers/patches/ofx_parser.rb +38 -0
- data/vendor/aranha-parsers/lib/aranha/parsers/source_address.rb +55 -0
- data/vendor/aranha-parsers/lib/aranha/parsers/source_address/file.rb +31 -0
- data/vendor/aranha-parsers/lib/aranha/parsers/source_address/hash_http_get.rb +25 -0
- data/vendor/aranha-parsers/lib/aranha/parsers/source_address/hash_http_post.rb +45 -0
- data/vendor/aranha-parsers/lib/aranha/parsers/source_address/http_get.rb +49 -0
- data/vendor/aranha-parsers/lib/aranha/parsers/source_target_fixtures.rb +77 -0
- data/vendor/aranha-parsers/lib/aranha/parsers/spec/source_target_fixtures_example.rb +70 -0
- data/vendor/aranha-parsers/lib/aranha/parsers/version.rb +7 -0
- data/vendor/aranha-parsers/spec/lib/aranha/parsers/source_address/http_get_spec.rb +21 -0
- data/vendor/aranha-parsers/spec/lib/aranha/parsers/source_address_spec.rb +74 -0
- data/vendor/aranha-parsers/spec/lib/aranha/parsers/source_target_fixtures_spec.rb +27 -0
- data/vendor/aranha-parsers/spec/lib/aranha/parsers/source_target_fixtures_spec_files/stub1.source.txt +1 -0
- data/vendor/aranha-parsers/spec/lib/aranha/parsers/source_target_fixtures_spec_files/stub1.target.html +1 -0
- data/vendor/aranha-parsers/spec/lib/aranha/parsers/source_target_fixtures_spec_files/stub2.source.html +1 -0
- data/vendor/aranha-parsers/spec/lib/aranha/parsers/source_target_fixtures_spec_files/stub3.target.yaml +1 -0
- data/vendor/aranha-parsers/spec/lib/rubocop_check_spec.rb +7 -0
- data/vendor/aranha-parsers/spec/spec_helper.rb +8 -0
- data/vendor/eac_cli/lib/eac_cli/definition.rb +14 -4
- data/vendor/eac_cli/lib/eac_cli/definition/help_formatter.rb +76 -0
- data/vendor/eac_cli/lib/eac_cli/definition/positional_argument.rb +15 -2
- data/vendor/eac_cli/lib/eac_cli/parser/options_collection.rb +4 -63
- data/vendor/eac_cli/lib/eac_cli/version.rb +1 -1
- data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console/configs.rb +4 -69
- data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console/configs/entry_reader.rb +81 -0
- data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console/configs/password_entry_reader.rb +18 -0
- data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console/configs/read_entry_options.rb +7 -2
- data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console/configs/store_passwords_entry_reader.rb +27 -0
- data/vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/object/debug.rb +17 -0
- data/vendor/eac_ruby_utils/lib/eac_ruby_utils/version.rb +1 -1
- metadata +38 -2
@@ -0,0 +1,74 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'aranha/parsers/source_address'
|
4
|
+
|
5
|
+
RSpec.describe ::Aranha::Parsers::SourceAddress do
|
6
|
+
describe '#detect_sub' do
|
7
|
+
{
|
8
|
+
{ method: :post, url: 'http://postdata.net', params: { key1: :value1 } } => {
|
9
|
+
klass: ::Aranha::Parsers::SourceAddress::HashHttpPost,
|
10
|
+
url: 'http://postdata.net',
|
11
|
+
serialization: <<~SERIALIZATION
|
12
|
+
--- !ruby/hash:ActiveSupport::HashWithIndifferentAccess
|
13
|
+
method: :post
|
14
|
+
url: http://postdata.net
|
15
|
+
params: !ruby/hash:ActiveSupport::HashWithIndifferentAccess
|
16
|
+
key1: :value1
|
17
|
+
SERIALIZATION
|
18
|
+
},
|
19
|
+
{ method: :get, url: 'http://getdata.net', params: { headers: %w[abc] } } => {
|
20
|
+
klass: ::Aranha::Parsers::SourceAddress::HashHttpPost,
|
21
|
+
url: 'http://getdata.net',
|
22
|
+
serialization: <<~SERIALIZATION
|
23
|
+
--- !ruby/hash:ActiveSupport::HashWithIndifferentAccess
|
24
|
+
method: :get
|
25
|
+
url: http://getdata.net
|
26
|
+
params: !ruby/hash:ActiveSupport::HashWithIndifferentAccess
|
27
|
+
headers:
|
28
|
+
- abc
|
29
|
+
SERIALIZATION
|
30
|
+
},
|
31
|
+
'http://postdata.net' => {
|
32
|
+
klass: ::Aranha::Parsers::SourceAddress::HttpGet,
|
33
|
+
url: 'http://postdata.net',
|
34
|
+
serialization: 'http://postdata.net'
|
35
|
+
},
|
36
|
+
'https://getdata.com.br' => {
|
37
|
+
klass: ::Aranha::Parsers::SourceAddress::HttpGet,
|
38
|
+
url: 'https://getdata.com.br',
|
39
|
+
serialization: 'https://getdata.com.br'
|
40
|
+
},
|
41
|
+
'file:///postdata.net' => {
|
42
|
+
klass: ::Aranha::Parsers::SourceAddress::File,
|
43
|
+
url: 'file:///postdata.net',
|
44
|
+
serialization: 'file:///postdata.net'
|
45
|
+
},
|
46
|
+
'/postdata.net' => {
|
47
|
+
klass: ::Aranha::Parsers::SourceAddress::File,
|
48
|
+
url: 'file:///postdata.net',
|
49
|
+
serialization: 'file:///postdata.net'
|
50
|
+
}
|
51
|
+
}.each do |source, expected|
|
52
|
+
context "when source is #{source}" do
|
53
|
+
let(:sub) { described_class.detect_sub(source) }
|
54
|
+
let(:deserialized) { described_class.deserialize(sub.serialize).sub }
|
55
|
+
|
56
|
+
it "sub is a #{expected.fetch(:klass)}" do
|
57
|
+
expect(sub).to be_a(expected.fetch(:klass))
|
58
|
+
end
|
59
|
+
|
60
|
+
it "sub #{expected.fetch(:klass)} return properly URL" do
|
61
|
+
expect(sub.url).to eq(expected.fetch(:url))
|
62
|
+
end
|
63
|
+
|
64
|
+
it "sub #{expected.fetch(:klass)} serialize properly" do
|
65
|
+
expect(sub.serialize).to eq(expected.fetch(:serialization))
|
66
|
+
end
|
67
|
+
|
68
|
+
it 'deserialize properly' do
|
69
|
+
expect(deserialized).to eq(sub)
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'aranha/parsers/source_target_fixtures'
|
4
|
+
|
5
|
+
RSpec.describe ::Aranha::Parsers::SourceTargetFixtures do
|
6
|
+
let(:fixtures_dir) { ::File.join(__dir__, 'source_target_fixtures_spec_files') }
|
7
|
+
let(:instance) { described_class.new(fixtures_dir) }
|
8
|
+
|
9
|
+
describe '#source_target_files' do
|
10
|
+
it { expect(instance.source_target_files.count).to eq(3) }
|
11
|
+
|
12
|
+
(1..3).each do |index|
|
13
|
+
basename = "stub#{index}"
|
14
|
+
let(basename) { instance.source_target_files.find { |stf| stf.basename == basename } }
|
15
|
+
|
16
|
+
it { expect(send(basename)).to be_present }
|
17
|
+
it { expect(send(basename).basename).to eq(basename) }
|
18
|
+
end
|
19
|
+
|
20
|
+
it { expect(stub1.source).to eq(::File.join(fixtures_dir, 'stub1.source.txt')) }
|
21
|
+
it { expect(stub1.target).to eq(::File.join(fixtures_dir, 'stub1.target.html')) }
|
22
|
+
it { expect(stub2.source).to eq(::File.join(fixtures_dir, 'stub2.source.html')) }
|
23
|
+
it { expect(stub2.target).to eq(nil) }
|
24
|
+
it { expect(stub3.source).to eq(nil) }
|
25
|
+
it { expect(stub3.target).to eq(::File.join(fixtures_dir, 'stub3.target.yaml')) }
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
|
@@ -0,0 +1 @@
|
|
1
|
+
|
@@ -0,0 +1 @@
|
|
1
|
+
|
@@ -0,0 +1 @@
|
|
1
|
+
|
@@ -45,6 +45,10 @@ module EacCli
|
|
45
45
|
self.description = description
|
46
46
|
end
|
47
47
|
|
48
|
+
def help_formatter
|
49
|
+
@help_formatter ||= ::EacCli::Definition::HelpFormatter.new(self)
|
50
|
+
end
|
51
|
+
|
48
52
|
def options_arg(options_argument)
|
49
53
|
self.options_argument = options_argument
|
50
54
|
end
|
@@ -54,17 +58,23 @@ module EacCli
|
|
54
58
|
end
|
55
59
|
|
56
60
|
def pos_arg(name, arg_options = {})
|
57
|
-
|
61
|
+
new_pos_arg = ::EacCli::Definition::PositionalArgument.new(name, arg_options)
|
62
|
+
raise 'Positional arguments are blocked' if positional_arguments_blocked?(new_pos_arg)
|
58
63
|
|
59
|
-
pos_set <<
|
64
|
+
pos_set << new_pos_arg
|
60
65
|
end
|
61
66
|
|
62
67
|
def positional
|
63
68
|
pos_set.to_a
|
64
69
|
end
|
65
70
|
|
66
|
-
def positional_arguments_blocked?
|
67
|
-
|
71
|
+
def positional_arguments_blocked?(new_pos_arg)
|
72
|
+
last = pos_set.last
|
73
|
+
return false unless last
|
74
|
+
return true if last.repeat?
|
75
|
+
return true if last.optional? && new_pos_arg.required?
|
76
|
+
|
77
|
+
false
|
68
78
|
end
|
69
79
|
|
70
80
|
def subcommands
|
@@ -0,0 +1,76 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
|
5
|
+
module EacCli
|
6
|
+
class Definition
|
7
|
+
class HelpFormatter
|
8
|
+
SEP = ' '
|
9
|
+
IDENT = SEP * 2
|
10
|
+
OPTION_DESC_SEP = IDENT * 2
|
11
|
+
|
12
|
+
class << self
|
13
|
+
def option_long(option)
|
14
|
+
b = option.long
|
15
|
+
b += '=VALUE' if option.argument?
|
16
|
+
b
|
17
|
+
end
|
18
|
+
|
19
|
+
def option_short(option)
|
20
|
+
b = option.short
|
21
|
+
b += 'VALUE' if option.argument?
|
22
|
+
b
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
common_constructor :definition
|
27
|
+
|
28
|
+
def positional_argument(positional)
|
29
|
+
if positional.subcommand?
|
30
|
+
::EacRubyUtils::Console::DocoptRunner::SUBCOMMANDS_MACRO
|
31
|
+
else
|
32
|
+
r = "<#{positional.name}>"
|
33
|
+
r += '...' if positional.repeat?
|
34
|
+
r = "[#{r}]" if positional.optional?
|
35
|
+
r
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def section(header, include_header = true)
|
40
|
+
b = include_header ? "#{header.humanize}:\n" : ''
|
41
|
+
b += send("self_#{header}") + "\n"
|
42
|
+
# TO-DO: implement alternatives
|
43
|
+
b
|
44
|
+
end
|
45
|
+
|
46
|
+
def self_options
|
47
|
+
definition.options.map { |option| IDENT + option_definition(option) }.join("\n")
|
48
|
+
end
|
49
|
+
|
50
|
+
def self_usage
|
51
|
+
IDENT + self_usage_arguments.join(SEP)
|
52
|
+
end
|
53
|
+
|
54
|
+
def self_usage_arguments
|
55
|
+
[::EacRubyUtils::Console::DocoptRunner::PROGRAM_MACRO] +
|
56
|
+
definition.options_argument.if_present([]) { |_v| ['[options]'] } +
|
57
|
+
self_usage_arguments_options +
|
58
|
+
self_usage_arguments_positional
|
59
|
+
end
|
60
|
+
|
61
|
+
def self_usage_arguments_options
|
62
|
+
definition.options.select(&:show_on_usage?).map do |option|
|
63
|
+
self.class.option_long(option)
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
def self_usage_arguments_positional
|
68
|
+
definition.positional.map { |p| positional_argument(p) }
|
69
|
+
end
|
70
|
+
|
71
|
+
def to_banner
|
72
|
+
"#{definition.description}\n\n#{section('usage')}"
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
@@ -5,8 +5,10 @@ require 'eac_ruby_utils/core_ext'
|
|
5
5
|
module EacCli
|
6
6
|
class Definition
|
7
7
|
class PositionalArgument
|
8
|
+
DEFAULT_REQUIRED = true
|
9
|
+
|
8
10
|
enable_listable
|
9
|
-
lists.add_symbol :option, :optional, :repeat, :subcommand
|
11
|
+
lists.add_symbol :option, :optional, :repeat, :required, :subcommand
|
10
12
|
common_constructor :name, :options, default: [{}] do
|
11
13
|
options.assert_valid_keys(self.class.lists.option.values)
|
12
14
|
end
|
@@ -16,16 +18,27 @@ module EacCli
|
|
16
18
|
end
|
17
19
|
|
18
20
|
def optional?
|
19
|
-
|
21
|
+
!required?
|
20
22
|
end
|
21
23
|
|
22
24
|
def repeat?
|
23
25
|
options[OPTION_REPEAT]
|
24
26
|
end
|
25
27
|
|
28
|
+
def required?
|
29
|
+
return true if options.key?(OPTION_REQUIRED) && options.fetch(OPTION_REQUIRED)
|
30
|
+
return false if options.key?(OPTION_OPTIONAL) && options.fetch(OPTION_OPTIONAL)
|
31
|
+
|
32
|
+
DEFAULT_REQUIRED
|
33
|
+
end
|
34
|
+
|
26
35
|
def subcommand?
|
27
36
|
options[OPTION_SUBCOMMAND]
|
28
37
|
end
|
38
|
+
|
39
|
+
def to_s
|
40
|
+
"#{self.class.name.demodulize}[#{identifier}]"
|
41
|
+
end
|
29
42
|
end
|
30
43
|
end
|
31
44
|
end
|
@@ -6,10 +6,6 @@ require 'optparse'
|
|
6
6
|
module EacCli
|
7
7
|
class Parser
|
8
8
|
class OptionsCollection
|
9
|
-
SEP = ' '
|
10
|
-
IDENT = SEP * 2
|
11
|
-
OPTION_DESC_SEP = IDENT * 2
|
12
|
-
|
13
9
|
enable_simple_cache
|
14
10
|
common_constructor(:definition, :argv, :collector) { collect }
|
15
11
|
attr_reader :arguments
|
@@ -49,7 +45,7 @@ module EacCli
|
|
49
45
|
end
|
50
46
|
|
51
47
|
def build_banner
|
52
|
-
option_parser.banner =
|
48
|
+
option_parser.banner = definition.help_formatter.to_banner
|
53
49
|
end
|
54
50
|
|
55
51
|
def build_options
|
@@ -60,68 +56,13 @@ module EacCli
|
|
60
56
|
|
61
57
|
def build_option(option)
|
62
58
|
option_parser.on(
|
63
|
-
*[option_short(option),
|
59
|
+
*[::EacCli::Definition::HelpFormatter.option_short(option),
|
60
|
+
::EacCli::Definition::HelpFormatter.option_long(option),
|
61
|
+
option.description].reject(&:blank?)
|
64
62
|
) do |value|
|
65
63
|
collector.collect(option, value)
|
66
64
|
end
|
67
65
|
end
|
68
|
-
|
69
|
-
def positional_argument(positional)
|
70
|
-
if positional.subcommand?
|
71
|
-
::EacRubyUtils::Console::DocoptRunner::SUBCOMMANDS_MACRO
|
72
|
-
else
|
73
|
-
r = "<#{positional.name}>"
|
74
|
-
r += '...' if positional.repeat?
|
75
|
-
r = "[#{r}]" if positional.optional?
|
76
|
-
r
|
77
|
-
end
|
78
|
-
end
|
79
|
-
|
80
|
-
def option_argument(option)
|
81
|
-
option_long(option)
|
82
|
-
end
|
83
|
-
|
84
|
-
def option_long(option)
|
85
|
-
b = option.long
|
86
|
-
b += '=VALUE' if option.argument?
|
87
|
-
b
|
88
|
-
end
|
89
|
-
|
90
|
-
def option_short(option)
|
91
|
-
b = option.short
|
92
|
-
b += 'VALUE' if option.argument?
|
93
|
-
b
|
94
|
-
end
|
95
|
-
|
96
|
-
def section(header, include_header = true)
|
97
|
-
b = include_header ? "#{header.humanize}:\n" : ''
|
98
|
-
b += send("self_#{header}") + "\n"
|
99
|
-
# TO-DO: implement alternatives
|
100
|
-
b
|
101
|
-
end
|
102
|
-
|
103
|
-
def self_options
|
104
|
-
definition.options.map { |option| IDENT + option_definition(option) }.join("\n")
|
105
|
-
end
|
106
|
-
|
107
|
-
def self_usage
|
108
|
-
IDENT + self_usage_arguments.join(SEP)
|
109
|
-
end
|
110
|
-
|
111
|
-
def self_usage_arguments
|
112
|
-
[::EacRubyUtils::Console::DocoptRunner::PROGRAM_MACRO] +
|
113
|
-
definition.options_argument.if_present([]) { |_v| ['[options]'] } +
|
114
|
-
self_usage_arguments_options +
|
115
|
-
self_usage_arguments_positional
|
116
|
-
end
|
117
|
-
|
118
|
-
def self_usage_arguments_options
|
119
|
-
definition.options.select(&:show_on_usage?).map { |option| option_argument(option) }
|
120
|
-
end
|
121
|
-
|
122
|
-
def self_usage_arguments_positional
|
123
|
-
definition.positional.map { |p| positional_argument(p) }
|
124
|
-
end
|
125
66
|
end
|
126
67
|
end
|
127
68
|
end
|
@@ -11,18 +11,10 @@ module EacRubyUtils
|
|
11
11
|
|
12
12
|
class << self
|
13
13
|
def entry_key_to_envvar_name(entry_key)
|
14
|
-
|
15
|
-
entry_key
|
16
|
-
else
|
17
|
-
::EacRubyUtils::PathsHash.parse_entry_key(entry_key)
|
18
|
-
end
|
19
|
-
path.join('_').gsub(/[^a-z0-9_]/i, '').gsub(/\A_+/, '').gsub(/_+\z/, '')
|
20
|
-
.gsub(/_{2,}/, '_').upcase
|
14
|
+
::EacRubyUtils::Console::Configs::EntryReader.entry_key_to_envvar_name(entry_key)
|
21
15
|
end
|
22
16
|
end
|
23
17
|
|
24
|
-
STORE_PASSWORDS_KEY = 'core.store_passwords'
|
25
|
-
|
26
18
|
attr_reader :configs
|
27
19
|
|
28
20
|
def initialize(configs_key, options = {})
|
@@ -31,72 +23,15 @@ module EacRubyUtils
|
|
31
23
|
end
|
32
24
|
|
33
25
|
def read_password(entry_key, options = {})
|
34
|
-
|
35
|
-
if store_passwords?
|
36
|
-
read_entry(entry_key, options)
|
37
|
-
else
|
38
|
-
looped_entry_value_from_input(entry_key, options)
|
39
|
-
end
|
26
|
+
::EacRubyUtils::Console::Configs::PasswordEntryReader.new(self, entry_key, options).read
|
40
27
|
end
|
41
28
|
|
42
29
|
def read_entry(entry_key, options = {})
|
43
|
-
|
44
|
-
unless options[:noenv]
|
45
|
-
envvar_value = envvar_read_entry(entry_key)
|
46
|
-
return envvar_value if envvar_value.present?
|
47
|
-
end
|
48
|
-
stored_value = configs.read_entry(entry_key)
|
49
|
-
return stored_value if stored_value
|
50
|
-
return read_entry_from_console(entry_key, options) unless options[:noinput]
|
51
|
-
|
52
|
-
raise "No value found for entry \"#{entry_key}\"" if options[:required]
|
30
|
+
::EacRubyUtils::Console::Configs::EntryReader.new(self, entry_key, options).read
|
53
31
|
end
|
54
32
|
|
55
33
|
def store_passwords?
|
56
|
-
|
57
|
-
STORE_PASSWORDS_KEY,
|
58
|
-
before_input: -> { store_password_banner },
|
59
|
-
validator: ->(entry_value) { %w[yes no].include?(entry_value) }
|
60
|
-
) == 'yes'
|
61
|
-
end
|
62
|
-
|
63
|
-
protected
|
64
|
-
|
65
|
-
def envvar_read_entry(entry_key)
|
66
|
-
env_entry_key = self.class.entry_key_to_envvar_name(entry_key)
|
67
|
-
return nil unless ENV.key?(env_entry_key)
|
68
|
-
|
69
|
-
ENV.fetch(env_entry_key).if_present(::EacRubyUtils::BlankNotBlank.instance)
|
70
|
-
end
|
71
|
-
|
72
|
-
def read_entry_from_console(entry_key, options)
|
73
|
-
options[:before_input].call if options[:before_input].present?
|
74
|
-
entry_value = looped_entry_value_from_input(entry_key, options)
|
75
|
-
configs.write_entry(entry_key, entry_value)
|
76
|
-
entry_value
|
77
|
-
end
|
78
|
-
|
79
|
-
def store_password_banner
|
80
|
-
infom 'Do you wanna to store passwords?'
|
81
|
-
infom "Warning: the passwords will be store in clear text in \"#{configs.storage_path}\""
|
82
|
-
infom 'Enter "yes" or "no"'
|
83
|
-
end
|
84
|
-
|
85
|
-
def looped_entry_value_from_input(entry_key, options)
|
86
|
-
loop do
|
87
|
-
entry_value = entry_value_from_input(entry_key, options)
|
88
|
-
next if entry_value.blank?
|
89
|
-
next if options[:validator] && !options[:validator].call(entry_value)
|
90
|
-
|
91
|
-
return entry_value
|
92
|
-
end
|
93
|
-
end
|
94
|
-
|
95
|
-
def entry_value_from_input(entry_key, options)
|
96
|
-
entry_value = request_input("Value for entry \"#{entry_key}\"",
|
97
|
-
options.request_input_options)
|
98
|
-
warn('Entered value is blank') if entry_value.blank?
|
99
|
-
entry_value
|
34
|
+
::EacRubyUtils::Console::Configs::StorePasswordsEntryReader.new(self) == 'yes'
|
100
35
|
end
|
101
36
|
end
|
102
37
|
end
|