eac_ruby_utils 0.63.0 → 0.64.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 +4 -4
- data/lib/eac_ruby_utils/envs/command.rb +10 -5
- data/lib/eac_ruby_utils/patches/module/common_concern.rb +0 -1
- data/lib/eac_ruby_utils/rspec/conditional.rb +1 -4
- data/lib/eac_ruby_utils/version.rb +1 -1
- metadata +2 -66
- data/lib/eac_ruby_utils/configs.rb +0 -74
- data/lib/eac_ruby_utils/configs/base.rb +0 -43
- data/lib/eac_ruby_utils/configs/file.rb +0 -47
- data/lib/eac_ruby_utils/console.rb +0 -5
- data/lib/eac_ruby_utils/console/configs.rb +0 -38
- data/lib/eac_ruby_utils/console/configs/entry_reader.rb +0 -81
- data/lib/eac_ruby_utils/console/configs/password_entry_reader.rb +0 -18
- data/lib/eac_ruby_utils/console/configs/read_entry_options.rb +0 -46
- data/lib/eac_ruby_utils/console/configs/store_passwords_entry_reader.rb +0 -27
- data/lib/eac_ruby_utils/console/docopt_runner.rb +0 -45
- data/lib/eac_ruby_utils/console/docopt_runner/_class_methods.rb +0 -18
- data/lib/eac_ruby_utils/console/docopt_runner/_doc.rb +0 -25
- data/lib/eac_ruby_utils/console/docopt_runner/_settings.rb +0 -19
- data/lib/eac_ruby_utils/console/docopt_runner/_subcommands.rb +0 -154
- data/lib/eac_ruby_utils/console/speaker.rb +0 -133
- data/lib/eac_ruby_utils/console/speaker/_class_methods.rb +0 -39
- data/lib/eac_ruby_utils/console/speaker/_constants.rb +0 -14
- data/lib/eac_ruby_utils/console/speaker/list.rb +0 -63
- data/lib/eac_ruby_utils/console/speaker/node.rb +0 -26
- data/lib/eac_ruby_utils/patches/module/console_speaker.rb +0 -10
- data/lib/eac_ruby_utils/patches/module/template.rb +0 -10
- data/lib/eac_ruby_utils/patches/object/template.rb +0 -9
- data/lib/eac_ruby_utils/paths_hash.rb +0 -56
- data/lib/eac_ruby_utils/paths_hash/entry_key_error.rb +0 -8
- data/lib/eac_ruby_utils/paths_hash/node.rb +0 -67
- data/lib/eac_ruby_utils/paths_hash/path_search.rb +0 -39
- data/lib/eac_ruby_utils/templates.rb +0 -9
- data/lib/eac_ruby_utils/templates/directory.rb +0 -110
- data/lib/eac_ruby_utils/templates/file.rb +0 -50
- data/lib/eac_ruby_utils/templates/searcher.rb +0 -55
- data/lib/eac_ruby_utils/templates/variable_not_found_error.rb +0 -7
- data/lib/eac_ruby_utils/templates/variable_providers.rb +0 -25
- data/lib/eac_ruby_utils/templates/variable_providers/base.rb +0 -23
- data/lib/eac_ruby_utils/templates/variable_providers/entries_reader.rb +0 -25
- data/lib/eac_ruby_utils/templates/variable_providers/generic.rb +0 -25
- data/lib/eac_ruby_utils/templates/variable_providers/hash.rb +0 -29
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: aebc2af21cfa1d812eb22e31af074450b65a3fd9641cfc072086f63b79e42ca5
|
4
|
+
data.tar.gz: 86257e2b0311d994c1ca761826c0726c77433765f8604a072339256d2145e9fc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 953714355bec27c6d0c732391c15fc63042b50953a042e13e7d9563998c83e3ca74f0c3547aca0d2367008ca6c655e76cab52eedd6ab7de1b4f0a572c38ad2f4
|
7
|
+
data.tar.gz: d2714d1ceee3653692b2cf7ba197cb8814145e4a40e2e9a80edd1d7b08e6abe8dfef274b64536b5f68634086eabcb0a0e65a20724d40754b34dd5ccaf57fce91
|
@@ -10,7 +10,6 @@ module EacRubyUtils
|
|
10
10
|
module Envs
|
11
11
|
class Command
|
12
12
|
require_sub __FILE__, include_modules: true
|
13
|
-
enable_console_speaker
|
14
13
|
|
15
14
|
def initialize(env, command, extra_options = {})
|
16
15
|
@env = env
|
@@ -61,17 +60,17 @@ module EacRubyUtils
|
|
61
60
|
|
62
61
|
def execute(options = {})
|
63
62
|
c = command(options)
|
64
|
-
|
63
|
+
debug_print("BEFORE: #{c}")
|
65
64
|
t1 = Time.now
|
66
65
|
r = ::EacRubyUtils::Envs::Process.new(c).to_h
|
67
66
|
i = Time.now - t1
|
68
|
-
|
67
|
+
debug_print("AFTER [#{i}]: #{c}")
|
69
68
|
r
|
70
69
|
end
|
71
70
|
|
72
71
|
def spawn(options = {})
|
73
72
|
c = command(options)
|
74
|
-
|
73
|
+
debug_print("SPAWN: #{c}")
|
75
74
|
::EacRubyUtils::Envs::Spawn.new(c)
|
76
75
|
end
|
77
76
|
|
@@ -83,7 +82,7 @@ module EacRubyUtils
|
|
83
82
|
|
84
83
|
def system(options = {})
|
85
84
|
c = command(options)
|
86
|
-
|
85
|
+
debug_print(c)
|
87
86
|
Kernel.system(c)
|
88
87
|
end
|
89
88
|
|
@@ -109,6 +108,12 @@ module EacRubyUtils
|
|
109
108
|
ENV['DEBUG'].to_s.strip != ''
|
110
109
|
end
|
111
110
|
|
111
|
+
# Print a message if debugging is enabled.
|
112
|
+
def debug_print(message)
|
113
|
+
message = message.to_s
|
114
|
+
puts message.if_respond(:light_red, message) if debug?
|
115
|
+
end
|
116
|
+
|
112
117
|
def append_command_options(command, options)
|
113
118
|
command = options[:input].command + ' | ' + command if options[:input]
|
114
119
|
if options[:input_file]
|
@@ -1,13 +1,10 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'active_support/core_ext/object/blank'
|
4
|
-
require 'eac_ruby_utils/console/speaker'
|
5
4
|
|
6
5
|
module EacRubyUtils
|
7
6
|
module Rspec
|
8
7
|
class Conditional
|
9
|
-
include ::EacRubyUtils::Console::Speaker
|
10
|
-
|
11
8
|
def self.default
|
12
9
|
@default ||= new
|
13
10
|
end
|
@@ -24,7 +21,7 @@ module EacRubyUtils
|
|
24
21
|
tags.each do |tag, condition|
|
25
22
|
message = condition.call
|
26
23
|
if message.present?
|
27
|
-
|
24
|
+
puts("[WARN] Excluded tag: #{tag}: #{message}")
|
28
25
|
rspec_config.filter_run_excluding tag
|
29
26
|
end
|
30
27
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: eac_ruby_utils
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.64.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-05-
|
11
|
+
date: 2021-05-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -38,34 +38,6 @@ dependencies:
|
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '2.6'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: colorize
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - "~>"
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: 0.8.1
|
48
|
-
type: :runtime
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - "~>"
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: 0.8.1
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: docopt
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - "~>"
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: 0.6.1
|
62
|
-
type: :runtime
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - "~>"
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: 0.6.1
|
69
41
|
- !ruby/object:Gem::Dependency
|
70
42
|
name: filesize
|
71
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -128,25 +100,6 @@ files:
|
|
128
100
|
- lib/eac_ruby_utils/common_constructor/class_initialize.rb
|
129
101
|
- lib/eac_ruby_utils/common_constructor/instance_initialize.rb
|
130
102
|
- lib/eac_ruby_utils/common_constructor/super_args.rb
|
131
|
-
- lib/eac_ruby_utils/configs.rb
|
132
|
-
- lib/eac_ruby_utils/configs/base.rb
|
133
|
-
- lib/eac_ruby_utils/configs/file.rb
|
134
|
-
- lib/eac_ruby_utils/console.rb
|
135
|
-
- lib/eac_ruby_utils/console/configs.rb
|
136
|
-
- lib/eac_ruby_utils/console/configs/entry_reader.rb
|
137
|
-
- lib/eac_ruby_utils/console/configs/password_entry_reader.rb
|
138
|
-
- lib/eac_ruby_utils/console/configs/read_entry_options.rb
|
139
|
-
- lib/eac_ruby_utils/console/configs/store_passwords_entry_reader.rb
|
140
|
-
- lib/eac_ruby_utils/console/docopt_runner.rb
|
141
|
-
- lib/eac_ruby_utils/console/docopt_runner/_class_methods.rb
|
142
|
-
- lib/eac_ruby_utils/console/docopt_runner/_doc.rb
|
143
|
-
- lib/eac_ruby_utils/console/docopt_runner/_settings.rb
|
144
|
-
- lib/eac_ruby_utils/console/docopt_runner/_subcommands.rb
|
145
|
-
- lib/eac_ruby_utils/console/speaker.rb
|
146
|
-
- lib/eac_ruby_utils/console/speaker/_class_methods.rb
|
147
|
-
- lib/eac_ruby_utils/console/speaker/_constants.rb
|
148
|
-
- lib/eac_ruby_utils/console/speaker/list.rb
|
149
|
-
- lib/eac_ruby_utils/console/speaker/node.rb
|
150
103
|
- lib/eac_ruby_utils/contextualizable.rb
|
151
104
|
- lib/eac_ruby_utils/core_ext.rb
|
152
105
|
- lib/eac_ruby_utils/custom_format.rb
|
@@ -216,20 +169,17 @@ files:
|
|
216
169
|
- lib/eac_ruby_utils/patches/module.rb
|
217
170
|
- lib/eac_ruby_utils/patches/module/abstract_methods.rb
|
218
171
|
- lib/eac_ruby_utils/patches/module/common_concern.rb
|
219
|
-
- lib/eac_ruby_utils/patches/module/console_speaker.rb
|
220
172
|
- lib/eac_ruby_utils/patches/module/immutable.rb
|
221
173
|
- lib/eac_ruby_utils/patches/module/listable.rb
|
222
174
|
- lib/eac_ruby_utils/patches/module/patch.rb
|
223
175
|
- lib/eac_ruby_utils/patches/module/require_sub.rb
|
224
176
|
- lib/eac_ruby_utils/patches/module/simple_cache.rb
|
225
|
-
- lib/eac_ruby_utils/patches/module/template.rb
|
226
177
|
- lib/eac_ruby_utils/patches/object.rb
|
227
178
|
- lib/eac_ruby_utils/patches/object/asserts.rb
|
228
179
|
- lib/eac_ruby_utils/patches/object/debug.rb
|
229
180
|
- lib/eac_ruby_utils/patches/object/if_nil.rb
|
230
181
|
- lib/eac_ruby_utils/patches/object/if_present.rb
|
231
182
|
- lib/eac_ruby_utils/patches/object/if_respond.rb
|
232
|
-
- lib/eac_ruby_utils/patches/object/template.rb
|
233
183
|
- lib/eac_ruby_utils/patches/object/to_pathname.rb
|
234
184
|
- lib/eac_ruby_utils/patches/pathname.rb
|
235
185
|
- lib/eac_ruby_utils/patches/pathname/basename_sub.rb
|
@@ -240,10 +190,6 @@ files:
|
|
240
190
|
- lib/eac_ruby_utils/patches/string/inflector.rb
|
241
191
|
- lib/eac_ruby_utils/patches/time.rb
|
242
192
|
- lib/eac_ruby_utils/patches/time/required_zone.rb
|
243
|
-
- lib/eac_ruby_utils/paths_hash.rb
|
244
|
-
- lib/eac_ruby_utils/paths_hash/entry_key_error.rb
|
245
|
-
- lib/eac_ruby_utils/paths_hash/node.rb
|
246
|
-
- lib/eac_ruby_utils/paths_hash/path_search.rb
|
247
193
|
- lib/eac_ruby_utils/regexp_parser.rb
|
248
194
|
- lib/eac_ruby_utils/require_sub.rb
|
249
195
|
- lib/eac_ruby_utils/rspec.rb
|
@@ -256,16 +202,6 @@ files:
|
|
256
202
|
- lib/eac_ruby_utils/settings_provider/setting_value.rb
|
257
203
|
- lib/eac_ruby_utils/simple_cache.rb
|
258
204
|
- lib/eac_ruby_utils/struct.rb
|
259
|
-
- lib/eac_ruby_utils/templates.rb
|
260
|
-
- lib/eac_ruby_utils/templates/directory.rb
|
261
|
-
- lib/eac_ruby_utils/templates/file.rb
|
262
|
-
- lib/eac_ruby_utils/templates/searcher.rb
|
263
|
-
- lib/eac_ruby_utils/templates/variable_not_found_error.rb
|
264
|
-
- lib/eac_ruby_utils/templates/variable_providers.rb
|
265
|
-
- lib/eac_ruby_utils/templates/variable_providers/base.rb
|
266
|
-
- lib/eac_ruby_utils/templates/variable_providers/entries_reader.rb
|
267
|
-
- lib/eac_ruby_utils/templates/variable_providers/generic.rb
|
268
|
-
- lib/eac_ruby_utils/templates/variable_providers/hash.rb
|
269
205
|
- lib/eac_ruby_utils/version.rb
|
270
206
|
- lib/eac_ruby_utils/yaml.rb
|
271
207
|
homepage:
|
@@ -1,74 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'active_support/core_ext/string'
|
4
|
-
require 'yaml'
|
5
|
-
require 'eac_ruby_utils/configs/file'
|
6
|
-
require 'eac_ruby_utils/patches/hash/sym_keys_hash'
|
7
|
-
require 'eac_ruby_utils/paths_hash'
|
8
|
-
require 'eac_ruby_utils/simple_cache'
|
9
|
-
|
10
|
-
module EacRubyUtils
|
11
|
-
class Configs
|
12
|
-
include ::EacRubyUtils::SimpleCache
|
13
|
-
|
14
|
-
attr_reader :configs_key, :options
|
15
|
-
|
16
|
-
# Valid options: [:storage_path]
|
17
|
-
def initialize(configs_key, options = {})
|
18
|
-
@configs_key = configs_key
|
19
|
-
@options = options.to_sym_keys_hash.freeze
|
20
|
-
load
|
21
|
-
end
|
22
|
-
|
23
|
-
delegate :clear, to: :file
|
24
|
-
|
25
|
-
delegate :save, to: :file
|
26
|
-
|
27
|
-
delegate :load, to: :file
|
28
|
-
|
29
|
-
def []=(entry_key, entry_value)
|
30
|
-
write_entry(entry_key, entry_value)
|
31
|
-
end
|
32
|
-
|
33
|
-
def write_entry(entry_key, entry_value)
|
34
|
-
file.write(entry_key, entry_value)
|
35
|
-
end
|
36
|
-
|
37
|
-
def [](entry_key)
|
38
|
-
read_entry(entry_key)
|
39
|
-
end
|
40
|
-
|
41
|
-
def read_entry(entry_key)
|
42
|
-
file.read(entry_key)
|
43
|
-
end
|
44
|
-
|
45
|
-
delegate :autosave?, to: :file
|
46
|
-
|
47
|
-
private
|
48
|
-
|
49
|
-
attr_accessor :data
|
50
|
-
|
51
|
-
def file_uncached
|
52
|
-
::EacRubyUtils::Configs::File.new(
|
53
|
-
storage_path, options
|
54
|
-
)
|
55
|
-
end
|
56
|
-
|
57
|
-
def storage_path_uncached
|
58
|
-
path = options_storage_path || default_storage_path
|
59
|
-
return path if ::File.exist?(path) && ::File.size(path).positive?
|
60
|
-
|
61
|
-
::FileUtils.mkdir_p(::File.dirname(path))
|
62
|
-
::File.write(path, {}.to_yaml)
|
63
|
-
path
|
64
|
-
end
|
65
|
-
|
66
|
-
def options_storage_path
|
67
|
-
options[:storage_path]
|
68
|
-
end
|
69
|
-
|
70
|
-
def default_storage_path
|
71
|
-
::File.join(ENV['HOME'], '.config', configs_key, 'settings.yml')
|
72
|
-
end
|
73
|
-
end
|
74
|
-
end
|
@@ -1,43 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'eac_ruby_utils/blank_not_blank'
|
4
|
-
require 'eac_ruby_utils/core_ext'
|
5
|
-
require 'eac_ruby_utils/paths_hash'
|
6
|
-
|
7
|
-
module EacRubyUtils
|
8
|
-
class Configs
|
9
|
-
class Base
|
10
|
-
enable_simple_cache
|
11
|
-
|
12
|
-
common_constructor :data, default: [{}] do
|
13
|
-
self.data = ::EacRubyUtils::PathsHash.new(data)
|
14
|
-
end
|
15
|
-
|
16
|
-
def []=(entry_key, entry_value)
|
17
|
-
write(entry_key, entry_value)
|
18
|
-
end
|
19
|
-
|
20
|
-
def [](entry_key)
|
21
|
-
read(entry_key)
|
22
|
-
end
|
23
|
-
|
24
|
-
def clear
|
25
|
-
replace({})
|
26
|
-
end
|
27
|
-
|
28
|
-
def read(entry_key)
|
29
|
-
return nil unless data.key?(entry_key)
|
30
|
-
|
31
|
-
data.fetch(entry_key).if_present(::EacRubyUtils::BlankNotBlank.instance)
|
32
|
-
end
|
33
|
-
|
34
|
-
def replace(new_data)
|
35
|
-
self.data = ::EacRubyUtils::PathsHash.new(new_data)
|
36
|
-
end
|
37
|
-
|
38
|
-
def write(entry_key, entry_value)
|
39
|
-
data[entry_key] = entry_value
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
@@ -1,47 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'eac_ruby_utils/configs/base'
|
4
|
-
require 'yaml'
|
5
|
-
|
6
|
-
module EacRubyUtils
|
7
|
-
class Configs
|
8
|
-
class File < ::EacRubyUtils::Configs::Base
|
9
|
-
attr_reader :path, :options
|
10
|
-
|
11
|
-
# Valid options: [:autosave]
|
12
|
-
def initialize(path, options = {})
|
13
|
-
@path = path
|
14
|
-
@options = options.to_sym_keys_hash.freeze
|
15
|
-
super(raw_data_from_file)
|
16
|
-
end
|
17
|
-
|
18
|
-
def save
|
19
|
-
::FileUtils.mkdir_p(::File.dirname(path))
|
20
|
-
::File.write(path, data.to_h.to_yaml)
|
21
|
-
end
|
22
|
-
|
23
|
-
def load
|
24
|
-
replace(raw_data_from_file)
|
25
|
-
end
|
26
|
-
|
27
|
-
def write(entry_key, entry_value)
|
28
|
-
super
|
29
|
-
save if autosave?
|
30
|
-
end
|
31
|
-
|
32
|
-
def autosave?
|
33
|
-
options[:autosave] ? true : false
|
34
|
-
end
|
35
|
-
|
36
|
-
private
|
37
|
-
|
38
|
-
def raw_data_from_file
|
39
|
-
if ::File.exist?(path) && ::File.size(path).positive?
|
40
|
-
::YAML.load_file(path)
|
41
|
-
else
|
42
|
-
{}
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
@@ -1,38 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'eac_ruby_utils/configs'
|
4
|
-
require 'eac_ruby_utils/core_ext'
|
5
|
-
|
6
|
-
module EacRubyUtils
|
7
|
-
module Console
|
8
|
-
class Configs
|
9
|
-
require_sub __FILE__
|
10
|
-
enable_console_speaker
|
11
|
-
|
12
|
-
class << self
|
13
|
-
def entry_key_to_envvar_name(entry_key)
|
14
|
-
::EacRubyUtils::Console::Configs::EntryReader.entry_key_to_envvar_name(entry_key)
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
attr_reader :configs
|
19
|
-
|
20
|
-
def initialize(configs_key, options = {})
|
21
|
-
options.assert_argument(::Hash, 'options')
|
22
|
-
@configs = ::EacRubyUtils::Configs.new(configs_key, options.merge(autosave: true))
|
23
|
-
end
|
24
|
-
|
25
|
-
def read_password(entry_key, options = {})
|
26
|
-
::EacRubyUtils::Console::Configs::PasswordEntryReader.new(self, entry_key, options).read
|
27
|
-
end
|
28
|
-
|
29
|
-
def read_entry(entry_key, options = {})
|
30
|
-
::EacRubyUtils::Console::Configs::EntryReader.new(self, entry_key, options).read
|
31
|
-
end
|
32
|
-
|
33
|
-
def store_passwords?
|
34
|
-
::EacRubyUtils::Console::Configs::StorePasswordsEntryReader.new(self) == 'yes'
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
@@ -1,81 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'eac_ruby_utils/console/configs/read_entry_options'
|
4
|
-
require 'eac_ruby_utils/core_ext'
|
5
|
-
|
6
|
-
module EacRubyUtils
|
7
|
-
module Console
|
8
|
-
class Configs
|
9
|
-
class EntryReader
|
10
|
-
enable_console_speaker
|
11
|
-
|
12
|
-
class << self
|
13
|
-
def entry_key_to_envvar_name(entry_key)
|
14
|
-
path = if entry_key.is_a?(::Array)
|
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
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
common_constructor :console_configs, :entry_key, :options do
|
25
|
-
self.options = ::EacRubyUtils::Console::Configs::ReadEntryOptions.new(options)
|
26
|
-
end
|
27
|
-
|
28
|
-
def read
|
29
|
-
%w[envvars storage console].each do |suffix|
|
30
|
-
value = send("read_from_#{suffix}")
|
31
|
-
return value if value.present?
|
32
|
-
end
|
33
|
-
return nil unless options[:required]
|
34
|
-
|
35
|
-
raise "No value found for entry \"#{entry_key}\""
|
36
|
-
end
|
37
|
-
|
38
|
-
def read_from_storage
|
39
|
-
console_configs.configs.read_entry(entry_key)
|
40
|
-
end
|
41
|
-
|
42
|
-
def read_from_envvars
|
43
|
-
return if options[:noenv]
|
44
|
-
|
45
|
-
env_entry_key = self.class.entry_key_to_envvar_name(entry_key)
|
46
|
-
return unless ENV.key?(env_entry_key)
|
47
|
-
|
48
|
-
ENV.fetch(env_entry_key).if_present(::EacRubyUtils::BlankNotBlank.instance)
|
49
|
-
end
|
50
|
-
|
51
|
-
def read_from_console
|
52
|
-
return if options[:noinput]
|
53
|
-
|
54
|
-
options[:before_input].if_present(&:call)
|
55
|
-
entry_value = looped_entry_value_from_input
|
56
|
-
console_configs.configs.write_entry(entry_key, entry_value) if options[:store]
|
57
|
-
entry_value
|
58
|
-
end
|
59
|
-
|
60
|
-
private
|
61
|
-
|
62
|
-
def looped_entry_value_from_input
|
63
|
-
loop do
|
64
|
-
entry_value = entry_value_from_input(entry_key, options)
|
65
|
-
next if entry_value.blank?
|
66
|
-
next if options[:validator] && !options[:validator].call(entry_value)
|
67
|
-
|
68
|
-
return entry_value
|
69
|
-
end
|
70
|
-
end
|
71
|
-
|
72
|
-
def entry_value_from_input(entry_key, options)
|
73
|
-
entry_value = request_input("Value for entry \"#{entry_key}\"",
|
74
|
-
options.request_input_options)
|
75
|
-
warn('Entered value is blank') if entry_value.blank?
|
76
|
-
entry_value
|
77
|
-
end
|
78
|
-
end
|
79
|
-
end
|
80
|
-
end
|
81
|
-
end
|