ehbrs-tools 0.20.0 → 0.21.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (145) hide show
  1. checksums.yaml +4 -4
  2. data/lib/ehbrs/patches/object/template.rb +2 -2
  3. data/lib/ehbrs/runner/cooking_book/build.rb +20 -2
  4. data/lib/ehbrs/runner/fs/used_space.rb +1 -1
  5. data/lib/ehbrs/runner/videos/probe.rb +2 -2
  6. data/lib/ehbrs/tools/version.rb +1 -1
  7. data/lib/ehbrs/videos/convert_job.rb +1 -1
  8. data/lib/ehbrs/videos/series/rename/line_result.rb +1 -1
  9. data/lib/ehbrs/videos/unsupported/check_support.rb +2 -1
  10. data/lib/ehbrs/videos/unsupported/search.rb +1 -1
  11. data/lib/ehbrs/videos/unsupported/track.rb +1 -1
  12. data/vendor/aranha-selenium/lib/aranha/selenium/driver_factory/base.rb +8 -0
  13. data/vendor/aranha-selenium/lib/aranha/selenium/driver_factory/chrome.rb +10 -5
  14. data/vendor/aranha-selenium/lib/aranha/selenium/driver_factory/firefox.rb +25 -11
  15. data/vendor/aranha-selenium/lib/aranha/selenium/version.rb +1 -1
  16. data/vendor/eac_cli/eac_cli.gemspec +5 -2
  17. data/vendor/eac_cli/lib/eac_cli/default_runner.rb +1 -1
  18. data/vendor/eac_cli/lib/eac_cli/definition/base_option.rb +5 -1
  19. data/vendor/eac_cli/lib/eac_cli/definition/help_formatter.rb +2 -2
  20. data/vendor/eac_cli/lib/eac_cli/docopt/doc_builder.rb +4 -2
  21. data/vendor/eac_cli/lib/eac_cli/docopt/doc_builder/alternative.rb +3 -3
  22. data/vendor/eac_cli/lib/eac_cli/docopt/runner_extension.rb +2 -2
  23. data/vendor/eac_cli/lib/eac_cli/docopt_runner.rb +43 -0
  24. data/vendor/eac_cli/lib/eac_cli/docopt_runner/_class_methods.rb +16 -0
  25. data/vendor/eac_cli/lib/eac_cli/docopt_runner/_doc.rb +23 -0
  26. data/vendor/eac_cli/lib/eac_cli/docopt_runner/_settings.rb +17 -0
  27. data/vendor/eac_cli/lib/eac_cli/docopt_runner/_subcommands.rb +152 -0
  28. data/vendor/eac_cli/lib/eac_cli/old_configs.rb +36 -0
  29. data/vendor/eac_cli/lib/eac_cli/old_configs/entry_reader.rb +80 -0
  30. data/vendor/eac_cli/lib/eac_cli/old_configs/password_entry_reader.rb +16 -0
  31. data/vendor/eac_cli/lib/eac_cli/old_configs/read_entry_options.rb +44 -0
  32. data/vendor/eac_cli/lib/eac_cli/old_configs/store_passwords_entry_reader.rb +25 -0
  33. data/vendor/eac_cli/lib/eac_cli/parser/alternative/short_options.rb +4 -2
  34. data/vendor/eac_cli/lib/eac_cli/patches/module.rb +4 -0
  35. data/vendor/eac_cli/lib/eac_cli/patches/module/speaker.rb +10 -0
  36. data/vendor/eac_cli/lib/eac_cli/patches/object/runner_with.rb +1 -1
  37. data/vendor/eac_cli/lib/eac_cli/runner/context.rb +2 -1
  38. data/vendor/eac_cli/lib/eac_cli/runner/instance_methods.rb +8 -1
  39. data/vendor/eac_cli/lib/eac_cli/runner_with/subcommands.rb +5 -1
  40. data/vendor/eac_cli/lib/eac_cli/runner_with/subcommands/definition_concern.rb +10 -0
  41. data/vendor/eac_cli/lib/eac_cli/speaker.rb +131 -0
  42. data/vendor/eac_cli/lib/eac_cli/speaker/_class_methods.rb +37 -0
  43. data/vendor/eac_cli/lib/eac_cli/speaker/_constants.rb +12 -0
  44. data/vendor/eac_cli/lib/eac_cli/speaker/list.rb +61 -0
  45. data/vendor/eac_cli/lib/eac_cli/speaker/node.rb +24 -0
  46. data/vendor/eac_cli/lib/eac_cli/version.rb +1 -1
  47. data/vendor/eac_cli/spec/lib/eac_cli/docopt/runner_extension_spec.rb +1 -1
  48. data/vendor/{eac_ruby_utils/spec/lib/eac_ruby_utils/console → eac_cli/spec/lib/eac_cli}/docopt_runner_spec.rb +5 -5
  49. data/vendor/{eac_ruby_utils/spec/lib/eac_ruby_utils/console/configs_spec.rb → eac_cli/spec/lib/eac_cli/old_configs_spec.rb} +2 -2
  50. data/vendor/eac_cli/spec/lib/eac_cli/runner_spec.rb +1 -1
  51. data/vendor/{eac_ruby_utils/spec/lib/eac_ruby_utils/console → eac_cli/spec/lib/eac_cli}/speaker_spec.rb +2 -2
  52. data/vendor/eac_cli/spec/lib/module/speaker_spec.rb +13 -0
  53. data/vendor/eac_cli/spec/rubocop_spec.rb +1 -5
  54. data/vendor/eac_cli/spec/spec_helper.rb +3 -0
  55. data/vendor/eac_docker/eac_docker.gemspec +3 -2
  56. data/vendor/eac_docker/lib/eac_docker/images/templatized.rb +1 -0
  57. data/vendor/eac_docker/lib/eac_docker/version.rb +1 -1
  58. data/vendor/eac_docker/spec/lib/eac_docker/images/templatized_spec.rb +2 -1
  59. data/vendor/eac_docker/spec/rubocop_spec.rb +1 -5
  60. data/vendor/eac_docker/spec/spec_helper.rb +3 -0
  61. data/vendor/eac_ruby_base0/eac_ruby_base0.gemspec +4 -4
  62. data/vendor/eac_ruby_base0/lib/eac_ruby_base0/core_ext.rb +4 -0
  63. data/vendor/eac_ruby_base0/lib/eac_ruby_base0/jobs_runner.rb +2 -2
  64. data/vendor/eac_ruby_base0/lib/eac_ruby_base0/runner.rb +3 -5
  65. data/vendor/eac_ruby_base0/lib/eac_ruby_base0/runner_with/confirmation.rb +36 -0
  66. data/vendor/eac_ruby_base0/lib/eac_ruby_base0/runner_with/input.rb +36 -0
  67. data/vendor/eac_ruby_base0/lib/eac_ruby_base0/runner_with/output.rb +58 -0
  68. data/vendor/eac_ruby_base0/lib/eac_ruby_base0/version.rb +1 -1
  69. data/vendor/eac_ruby_base0/spec/lib/eac_ruby_base0/runner_with/confirmation_spec.rb +42 -0
  70. data/vendor/eac_ruby_base0/spec/lib/eac_ruby_base0/runner_with/output_spec.rb +81 -0
  71. data/vendor/eac_ruby_base0/spec/rubocop_spec.rb +1 -5
  72. data/vendor/eac_ruby_base0/spec/spec_helper.rb +3 -0
  73. data/vendor/eac_ruby_utils/eac_ruby_utils.gemspec +2 -3
  74. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/envs/command.rb +10 -5
  75. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/filesystem_cache.rb +6 -0
  76. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/fs/logs.rb +63 -0
  77. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/inflector.rb +9 -1
  78. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/listable/list.rb +3 -2
  79. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/kernel/nyi.rb +4 -2
  80. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/module/common_concern.rb +0 -1
  81. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/regexp/to_parser.rb +10 -0
  82. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/string/inflector.rb +4 -2
  83. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/regexp_parser.rb +34 -0
  84. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/rspec/conditional.rb +1 -4
  85. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/settings_provider.rb +10 -29
  86. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/settings_provider/setting_value.rb +69 -0
  87. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/simple_cache.rb +18 -5
  88. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/version.rb +1 -1
  89. data/vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb +8 -0
  90. data/vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/simple_cache_spec.rb +9 -0
  91. data/vendor/eac_ruby_utils/spec/rubocop_check_spec.rb +1 -5
  92. data/vendor/eac_ruby_utils/spec/spec_helper.rb +3 -0
  93. data/vendor/ehbrs_ruby_utils/lib/ehbrs_ruby_utils/videos/convert_job.rb +1 -1
  94. data/vendor/ehbrs_ruby_utils/lib/ehbrs_ruby_utils/web_utils/videos/files_list.rb +1 -1
  95. metadata +51 -58
  96. data/vendor/eac_cli/lib/eac_cli/runner_with/output_file.rb +0 -30
  97. data/vendor/eac_cli/spec/lib/eac_cli/runner_with/output_file_spec.rb +0 -53
  98. data/vendor/eac_ruby_base0/lib/eac_ruby_base0/runner_with/confirmable.rb +0 -21
  99. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/configs.rb +0 -74
  100. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/configs/base.rb +0 -43
  101. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/configs/file.rb +0 -47
  102. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console.rb +0 -5
  103. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console/configs.rb +0 -38
  104. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console/configs/entry_reader.rb +0 -81
  105. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console/configs/password_entry_reader.rb +0 -18
  106. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console/configs/read_entry_options.rb +0 -46
  107. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console/configs/store_passwords_entry_reader.rb +0 -27
  108. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console/docopt_runner.rb +0 -45
  109. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console/docopt_runner/_class_methods.rb +0 -18
  110. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console/docopt_runner/_doc.rb +0 -25
  111. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console/docopt_runner/_settings.rb +0 -19
  112. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console/docopt_runner/_subcommands.rb +0 -154
  113. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console/speaker.rb +0 -133
  114. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console/speaker/_class_methods.rb +0 -39
  115. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console/speaker/_constants.rb +0 -14
  116. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console/speaker/list.rb +0 -63
  117. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console/speaker/node.rb +0 -26
  118. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/module/console_speaker.rb +0 -10
  119. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/module/template.rb +0 -10
  120. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/object/template.rb +0 -9
  121. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/paths_hash.rb +0 -56
  122. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/paths_hash/entry_key_error.rb +0 -8
  123. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/paths_hash/node.rb +0 -67
  124. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/paths_hash/path_search.rb +0 -39
  125. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/templates.rb +0 -9
  126. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/templates/directory.rb +0 -110
  127. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/templates/file.rb +0 -50
  128. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/templates/searcher.rb +0 -55
  129. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/templates/variable_not_found_error.rb +0 -7
  130. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/templates/variable_providers.rb +0 -25
  131. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/templates/variable_providers/base.rb +0 -23
  132. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/templates/variable_providers/entries_reader.rb +0 -25
  133. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/templates/variable_providers/generic.rb +0 -25
  134. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/templates/variable_providers/hash.rb +0 -29
  135. data/vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/configs_spec.rb +0 -46
  136. data/vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/module/console_speaker_spec.rb +0 -13
  137. data/vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/object/template_spec.rb +0 -23
  138. data/vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/paths_hash_spec.rb +0 -88
  139. data/vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/templates/file_spec.rb +0 -35
  140. data/vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/templates/file_spec_files/expected_content +0 -2
  141. data/vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/templates/file_spec_files/source.template +0 -2
  142. data/vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/templates/searcher_spec.rb +0 -30
  143. data/vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/templates/searcher_spec_files/path1/subdir1/file1.template +0 -1
  144. data/vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/templates/searcher_spec_files/path1/subdir1/file2 +0 -1
  145. data/vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/templates/searcher_spec_files/path2/subdir1/file3.template +0 -1
@@ -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,5 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/console/configs'
4
- require 'eac_ruby_utils/console/docopt_runner'
5
- require 'eac_ruby_utils/console/speaker'
@@ -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
@@ -1,18 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/console/configs/entry_reader'
4
-
5
- module EacRubyUtils
6
- module Console
7
- class Configs
8
- class PasswordEntryReader < ::EacRubyUtils::Console::Configs::EntryReader
9
- ENTRY_KEY = 'core.store_passwords'
10
-
11
- def initialize(console_configs, entry_key, options = {})
12
- super(console_configs, entry_key, options.merge(noecho: true,
13
- store: console_configs.store_passwords?))
14
- end
15
- end
16
- end
17
- end
18
- end
@@ -1,46 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
-
5
- module EacRubyUtils
6
- module Console
7
- class Configs
8
- class ReadEntryOptions
9
- enable_simple_cache
10
- common_constructor :options do
11
- self.options = options.to_h.symbolize_keys
12
- .assert_valid_keys(DEFAULT_VALUES.keys).freeze
13
- end
14
-
15
- DEFAULT_VALUES = {
16
- before_input: nil, bool: false, list: false, noecho: false, noenv: false, noinput: false,
17
- required: true, store: true, validator: nil
18
- }.freeze
19
-
20
- delegate :to_h, to: :options
21
-
22
- def [](key)
23
- values.fetch(key.to_sym)
24
- end
25
-
26
- def request_input_options
27
- values.slice(:bool, :list, :noecho)
28
- end
29
-
30
- private
31
-
32
- def values_uncached
33
- consumer = options.to_options_consumer
34
- r = {}
35
- DEFAULT_VALUES.each do |key, default_value|
36
- value = consumer.consume(key)
37
- value = default_value if value.nil?
38
- r[key] = value
39
- end
40
- consumer.validate
41
- r
42
- end
43
- end
44
- end
45
- end
46
- end
@@ -1,27 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/console/configs/entry_reader'
4
-
5
- module EacRubyUtils
6
- module Console
7
- class Configs
8
- class StorePasswordsEntryReader < ::EacRubyUtils::Console::Configs::EntryReader
9
- ENTRY_KEY = 'core.store_passwords'
10
-
11
- def initialize(console_configs)
12
- super(console_configs, ENTRY_KEY,
13
- before_input: -> { banner },
14
- validator: ->(entry_value) { %w[yes no].include?(entry_value) }
15
- )
16
- end
17
-
18
- def banner
19
- infom 'Do you wanna to store passwords?'
20
- infom 'Warning: the passwords will be store in clear text in ' \
21
- "\"#{console_configs.configs.storage_path}\""
22
- infom 'Enter "yes" or "no"'
23
- end
24
- end
25
- end
26
- end
27
- end
@@ -1,45 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'active_support/core_ext/hash/indifferent_access'
4
- require 'active_support/core_ext/hash/slice'
5
- require 'docopt'
6
- require 'eac_ruby_utils/contextualizable'
7
- require 'eac_ruby_utils/patches/hash/sym_keys_hash'
8
- Dir["#{__dir__}/#{::File.basename(__FILE__, '.*')}/_*.rb"].sort.each do |partial|
9
- require partial
10
- end
11
-
12
- module EacRubyUtils
13
- module Console
14
- class DocoptRunner
15
- include ::EacRubyUtils::Contextualizable
16
-
17
- class << self
18
- def create(settings = {})
19
- new(settings)
20
- end
21
- end
22
-
23
- attr_reader :settings
24
-
25
- def initialize(settings = {})
26
- @settings = settings.with_indifferent_access.freeze
27
- check_subcommands
28
- end
29
-
30
- def options
31
- @options ||= Docopt.docopt(target_doc, docopt_options)
32
- end
33
-
34
- def parent
35
- settings[:parent]
36
- end
37
-
38
- protected
39
-
40
- def docopt_options
41
- settings.slice(:version, :argv, :help, :options_first).to_sym_keys_hash
42
- end
43
- end
44
- end
45
- end
@@ -1,18 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module EacRubyUtils
4
- module Console
5
- class DocoptRunner
6
- DOCOPT_ERROR_EXIT_CODE = 0xC0
7
-
8
- class << self
9
- def run(options = {})
10
- create(options).send(:run)
11
- rescue Docopt::Exit => e
12
- STDERR.write(e.message + "\n")
13
- ::Kernel.exit(DOCOPT_ERROR_EXIT_CODE) # rubocop:disable Rails/Exit
14
- end
15
- end
16
- end
17
- end
18
- end