avm-tools 0.101.0 → 0.102.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/avm/app_src.rb +8 -7
- data/lib/avm/git/auto_commit/rules/manual.rb +1 -1
- data/lib/avm/git/issue/complete.rb +1 -1
- data/lib/avm/git/revision_test.rb +9 -6
- data/lib/avm/launcher/context.rb +1 -1
- data/lib/avm/launcher/git/publish_base.rb +1 -1
- data/lib/avm/launcher/instances/base.rb +2 -1
- data/lib/avm/launcher/ruby/gem/build.rb +1 -1
- data/lib/avm/projects/stereotype/job_comparator.rb +32 -0
- data/lib/avm/projects/stereotypes/git/update.rb +1 -2
- data/lib/avm/projects/stereotypes/ruby_gem/publish.rb +1 -1
- data/lib/avm/projects/stereotypes/ruby_gem/update.rb +4 -0
- data/lib/avm/tools/runner/app_src/version_bump.rb +1 -1
- data/lib/avm/tools/runner/git/organize.rb +1 -1
- data/lib/avm/tools/version.rb +1 -1
- data/vendor/avm-apps/avm-apps.gemspec +1 -1
- data/vendor/eac_cli/eac_cli.gemspec +1 -1
- data/vendor/eac_cli/lib/eac_cli/config/entry.rb +1 -1
- data/vendor/eac_cli/lib/eac_cli/config/entry/undefined.rb +1 -1
- data/vendor/eac_cli/lib/eac_cli/old_configs.rb +0 -1
- data/vendor/eac_cli/lib/eac_cli/old_configs/entry_reader.rb +2 -2
- data/vendor/eac_cli/lib/eac_cli/speaker.rb +15 -19
- data/vendor/eac_cli/lib/eac_cli/speaker/_constants.rb +1 -1
- data/vendor/eac_cli/lib/eac_cli/speaker/list.rb +1 -1
- data/vendor/eac_cli/lib/eac_cli/speaker/options.rb +38 -0
- data/vendor/eac_cli/lib/eac_cli/version.rb +1 -1
- data/vendor/eac_cli/spec/lib/eac_cli/speaker_spec.rb +5 -9
- data/vendor/eac_ruby_base0/eac_ruby_base0.gemspec +2 -2
- data/vendor/eac_ruby_base0/lib/eac_ruby_base0/jobs_runner.rb +2 -2
- data/vendor/eac_ruby_base0/lib/eac_ruby_base0/runner.rb +12 -3
- data/vendor/eac_ruby_base0/lib/eac_ruby_base0/runner_with/confirmation.rb +1 -1
- data/vendor/eac_ruby_base0/lib/eac_ruby_base0/version.rb +1 -1
- data/vendor/eac_ruby_gems_utils/eac_ruby_gems_utils.gemspec +1 -1
- data/vendor/eac_ruby_gems_utils/lib/eac_ruby_gems_utils/tests/multiple/decorated_gem.rb +2 -0
- data/vendor/eac_ruby_gems_utils/lib/eac_ruby_gems_utils/version.rb +1 -1
- data/vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/module/speaker.rb +9 -0
- data/vendor/eac_ruby_utils/lib/eac_ruby_utils/speaker.rb +16 -0
- data/vendor/eac_ruby_utils/lib/eac_ruby_utils/speaker/receiver.rb +57 -0
- data/vendor/eac_ruby_utils/lib/eac_ruby_utils/speaker/sender.rb +32 -0
- data/vendor/eac_ruby_utils/lib/eac_ruby_utils/version.rb +1 -1
- data/vendor/{eac_cli/spec/lib → eac_ruby_utils/spec/lib/eac_ruby_utils/patches}/module/speaker_spec.rb +2 -2
- metadata +9 -7
- data/vendor/eac_cli/lib/eac_cli/patches/module.rb +0 -4
- data/vendor/eac_cli/lib/eac_cli/patches/module/speaker.rb +0 -10
- data/vendor/eac_cli/lib/eac_cli/speaker/_class_methods.rb +0 -37
- data/vendor/eac_cli/lib/eac_cli/speaker/node.rb +0 -24
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: af55442cdb7aacd8752fa1cf1b548fe867d7bdd74dfc9e9abd72d754de22772c
|
4
|
+
data.tar.gz: c9fd2f59d75013325820f1d7ff8c8d54a35c09851a1032ccd31ff95427304a5d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c19e110f9557287b2b84b18385370111d1ba5bb1e99636f2425ab2c6a5729599f7d9bdba985fde3e4b4f7e4aece5614c3e443a4e61150370d9c1f2ac08bf411e
|
7
|
+
data.tar.gz: 87dfc0c5042d2c0deba256ad7e7869bf4b547f48c1376f9e25114834e739b6e3d6be7c49cc03d3975128fd27de2b586f933f0f8fd67edffdd5350824f49208eb
|
data/lib/avm/app_src.rb
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
require 'avm/apps/sources/configuration'
|
4
4
|
require 'avm/launcher/paths/real'
|
5
|
+
require 'avm/projects/stereotype/job_comparator'
|
5
6
|
require 'eac_ruby_utils/core_ext'
|
6
7
|
require 'avm/projects/stereotypes'
|
7
8
|
require 'i18n'
|
@@ -27,7 +28,7 @@ module Avm
|
|
27
28
|
end
|
28
29
|
|
29
30
|
def run_job(job, job_args = [])
|
30
|
-
|
31
|
+
stereotypes_jobs(job, job_args).each(&:run)
|
31
32
|
end
|
32
33
|
|
33
34
|
private
|
@@ -37,14 +38,14 @@ module Avm
|
|
37
38
|
::Avm::Apps::Sources::Configuration.find_in_path(path)
|
38
39
|
end
|
39
40
|
|
40
|
-
def
|
41
|
+
def stereotypes_jobs(job, job_args)
|
41
42
|
job_class_method = "#{job}_class"
|
42
|
-
|
43
|
-
|
44
|
-
stereotype.send(job_class_method).new(self, *job_args)
|
45
|
-
|
46
|
-
puts stereotype.label + ": #{job} class not found"
|
43
|
+
r = []
|
44
|
+
stereotypes.each do |stereotype|
|
45
|
+
r << stereotype.send(job_class_method).new(self, *job_args) if
|
46
|
+
stereotype.send(job_class_method).present?
|
47
47
|
end
|
48
|
+
r.sort { |a, b| ::Avm::Projects::Stereotype::JobComparator.new(a, b).result }
|
48
49
|
end
|
49
50
|
|
50
51
|
def stereotypes_uncached
|
@@ -17,7 +17,7 @@ module Avm
|
|
17
17
|
return nil unless file.commits.any?
|
18
18
|
|
19
19
|
commits_banner
|
20
|
-
|
20
|
+
input('Which commit?', list: commits_by_position).if_present do |v|
|
21
21
|
new_commit_info.fixup(v)
|
22
22
|
end
|
23
23
|
end
|
@@ -13,12 +13,8 @@ module Avm
|
|
13
13
|
|
14
14
|
def banner
|
15
15
|
infov 'Revision to test', sha1
|
16
|
-
|
17
|
-
|
18
|
-
infov '* Subject', commit.subject
|
19
|
-
infov '* Success?', successful_label
|
20
|
-
infov '* STDOUT', stdout_cache.content_path
|
21
|
-
infov '* STDERR', stderr_cache.content_path
|
16
|
+
::EacRubyUtils::Speaker.context.on(::EacCli::Speaker.new(err_line_prefix: ' ')) do
|
17
|
+
revision_banner
|
22
18
|
end
|
23
19
|
end
|
24
20
|
|
@@ -49,6 +45,13 @@ module Avm
|
|
49
45
|
::File.expand_path(git.to_s)
|
50
46
|
end
|
51
47
|
|
48
|
+
def revision_banner
|
49
|
+
infov '* Subject', commit.subject
|
50
|
+
infov '* Success?', successful_label
|
51
|
+
infov '* STDOUT', stdout_cache.content_path
|
52
|
+
infov '* STDERR', stderr_cache.content_path
|
53
|
+
end
|
54
|
+
|
52
55
|
def root_cache
|
53
56
|
::Avm.fs_cache.child('git', 'revision_test', git_absolute_path.parameterize, sha1,
|
54
57
|
options.fetch(:test_command).to_s.parameterize)
|
data/lib/avm/launcher/context.rb
CHANGED
@@ -13,7 +13,7 @@ module Avm
|
|
13
13
|
module Launcher
|
14
14
|
class Context
|
15
15
|
include ::EacRubyUtils::SimpleCache
|
16
|
-
|
16
|
+
enable_speaker
|
17
17
|
|
18
18
|
DEFAULT_PROJECTS_ROOT = '.'
|
19
19
|
DEFAULT_SETTINGS_FILE = ::File.join(ENV['HOME'], '.config', 'eac_launcher', 'settings.yml')
|
@@ -10,7 +10,7 @@ module Avm
|
|
10
10
|
module Git
|
11
11
|
class PublishBase < ::Avm::Launcher::Publish::Base
|
12
12
|
include ::EacRubyUtils::SimpleCache
|
13
|
-
|
13
|
+
enable_speaker
|
14
14
|
|
15
15
|
CHECKERS = %w[remote_url remote_fetch publish_remote_no_exist remote_equal remote_following
|
16
16
|
local_following].freeze
|
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
require_relative 'base/cache'
|
4
4
|
require 'avm/launcher/errors/non_project'
|
5
|
+
require 'eac_ruby_utils/speaker/sender'
|
5
6
|
|
6
7
|
module Avm
|
7
8
|
module Launcher
|
@@ -10,7 +11,7 @@ module Avm
|
|
10
11
|
class << self
|
11
12
|
def extend_object(object)
|
12
13
|
object.extend ::EacRubyUtils::SimpleCache
|
13
|
-
object.extend ::
|
14
|
+
object.extend ::EacRubyUtils::Speaker::Sender
|
14
15
|
object.extend ::Avm::Launcher::Instances::Base::Cache
|
15
16
|
super
|
16
17
|
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
|
5
|
+
module Avm
|
6
|
+
module Projects
|
7
|
+
module Stereotype
|
8
|
+
class JobComparator
|
9
|
+
common_constructor :job1, :job2
|
10
|
+
|
11
|
+
def result
|
12
|
+
return -1 if run_before?(job1, job2)
|
13
|
+
return 1 if run_before?(job2, job1)
|
14
|
+
|
15
|
+
job1.object_id <=> job2.class.name
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
def run_before?(a_job, other_job)
|
21
|
+
return false unless a_job.respond_to?(:run_before)
|
22
|
+
|
23
|
+
a_job.run_before.map(&:to_sym).include?(job_stereotype_key(other_job))
|
24
|
+
end
|
25
|
+
|
26
|
+
def job_stereotype_key(job)
|
27
|
+
job.class.name.split('::')[0..-2].join('::').demodulize.variableize.to_sym
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -19,8 +19,7 @@ module Avm
|
|
19
19
|
clean_all
|
20
20
|
selected_subrepos.map do |f|
|
21
21
|
infov 'Subrepo', f
|
22
|
-
|
23
|
-
node.stderr_line_prefix = ' '
|
22
|
+
::EacRubyUtils::Speaker.context.on(::EacCli::Speaker.new(err_line_prefix: ' ')) do
|
24
23
|
::Avm::Projects::Stereotypes::Git::Update::Subrepo.new(self, f).run
|
25
24
|
end
|
26
25
|
end
|
data/lib/avm/tools/version.rb
CHANGED
@@ -15,7 +15,7 @@ Gem::Specification.new do |s|
|
|
15
15
|
s.add_dependency 'colorize', '~> 0.8.1'
|
16
16
|
s.add_dependency 'docopt', '~> 0.6.1'
|
17
17
|
s.add_dependency 'eac_config', '~> 0.3'
|
18
|
-
s.add_dependency 'eac_ruby_utils', '~> 0.
|
18
|
+
s.add_dependency 'eac_ruby_utils', '~> 0.67'
|
19
19
|
|
20
20
|
s.add_development_dependency 'eac_ruby_gem_support', '~> 0.2'
|
21
21
|
end
|
@@ -70,8 +70,8 @@ module EacCli
|
|
70
70
|
end
|
71
71
|
|
72
72
|
def entry_value_from_input(entry_key, options)
|
73
|
-
entry_value =
|
74
|
-
|
73
|
+
entry_value = input("Value for entry \"#{entry_key}\"",
|
74
|
+
options.request_input_options)
|
75
75
|
warn('Entered value is blank') if entry_value.blank?
|
76
76
|
entry_value
|
77
77
|
end
|
@@ -1,26 +1,26 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'colorize'
|
4
|
-
require '
|
5
|
-
require 'eac_ruby_utils/
|
6
|
-
require 'eac_ruby_utils/require_sub'
|
7
|
-
::EacRubyUtils.require_sub __FILE__
|
4
|
+
require 'eac_ruby_utils/core_ext'
|
5
|
+
require 'eac_ruby_utils/speaker/receiver'
|
8
6
|
|
9
7
|
module EacCli
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
8
|
+
class Speaker
|
9
|
+
require_sub __FILE__, include_modules: true
|
10
|
+
include ::EacRubyUtils::Speaker::Receiver
|
11
|
+
|
12
|
+
common_constructor :options, default: [{}] do
|
13
|
+
self.options = self.class.lists.option.hash_keys_validate!(options)
|
14
14
|
end
|
15
15
|
|
16
16
|
def puts(string = '')
|
17
17
|
string.to_s.each_line do |line|
|
18
|
-
|
18
|
+
err_out.puts(err_line_prefix.to_s + line)
|
19
19
|
end
|
20
20
|
end
|
21
21
|
|
22
22
|
def out(string = '')
|
23
|
-
|
23
|
+
out_out.write(string.to_s)
|
24
24
|
end
|
25
25
|
|
26
26
|
def fatal_error(string)
|
@@ -52,7 +52,7 @@ module EacCli
|
|
52
52
|
# +bool+ ([Boolean], default: +false+): requires a answer "yes" or "no".
|
53
53
|
# +list+ ([Hash] or [Array], default: +nil+): requires a answer from a list.
|
54
54
|
# +noecho+ ([Boolean], default: +false+): does not output answer.
|
55
|
-
def
|
55
|
+
def input(question, options = {})
|
56
56
|
bool, list, noecho = options.to_options_consumer.consume_all(:bool, :list, :noecho)
|
57
57
|
if list
|
58
58
|
request_from_list(question, list, noecho)
|
@@ -110,22 +110,18 @@ module EacCli
|
|
110
110
|
end
|
111
111
|
|
112
112
|
def request_string(question, noecho)
|
113
|
-
|
113
|
+
err_out.write "#{question}: ".to_s.yellow
|
114
114
|
noecho ? request_string_noecho : request_string_echo
|
115
115
|
end
|
116
116
|
|
117
117
|
def request_string_noecho
|
118
|
-
r =
|
119
|
-
|
118
|
+
r = in_in.noecho(&:gets).chomp.strip
|
119
|
+
err_out.write("\n")
|
120
120
|
r
|
121
121
|
end
|
122
122
|
|
123
123
|
def request_string_echo
|
124
|
-
|
125
|
-
end
|
126
|
-
|
127
|
-
def current_node
|
128
|
-
::EacCli::Speaker.current_node
|
124
|
+
in_in.gets.chomp.strip
|
129
125
|
end
|
130
126
|
end
|
131
127
|
end
|
@@ -4,7 +4,7 @@ require 'eac_ruby_utils/by_reference'
|
|
4
4
|
|
5
5
|
module EacCli
|
6
6
|
# https://github.com/fazibear/colorize
|
7
|
-
|
7
|
+
class Speaker
|
8
8
|
STDERR = ::EacRubyUtils::ByReference.new { $stderr }
|
9
9
|
STDIN = ::EacRubyUtils::ByReference.new { $stdin }
|
10
10
|
STDOUT = ::EacRubyUtils::ByReference.new { $stdout }
|
@@ -0,0 +1,38 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
|
5
|
+
module EacCli
|
6
|
+
class Speaker
|
7
|
+
module Options
|
8
|
+
common_concern do
|
9
|
+
enable_listable
|
10
|
+
lists.add_symbol :option, :out_out, :err_out, :in_in, :parent, :err_line_prefix
|
11
|
+
end
|
12
|
+
|
13
|
+
def err_out
|
14
|
+
option(OPTION_ERR_OUT, ::EacCli::Speaker::STDERR)
|
15
|
+
end
|
16
|
+
|
17
|
+
def out_out
|
18
|
+
option(OPTION_OUT_OUT, ::EacCli::Speaker::STDOUT)
|
19
|
+
end
|
20
|
+
|
21
|
+
def in_in
|
22
|
+
option(OPTION_IN_IN, ::EacCli::Speaker::STDIN)
|
23
|
+
end
|
24
|
+
|
25
|
+
def err_line_prefix
|
26
|
+
option(OPTION_ERR_LINE_PREFIX, '')
|
27
|
+
end
|
28
|
+
|
29
|
+
def parent
|
30
|
+
options[OPTION_PARENT]
|
31
|
+
end
|
32
|
+
|
33
|
+
def option(key, default)
|
34
|
+
options[key] || parent.if_present(default) { |v| v.send(__METHOD__) }
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -3,23 +3,19 @@
|
|
3
3
|
require 'eac_cli/speaker'
|
4
4
|
|
5
5
|
RSpec.describe ::EacCli::Speaker do
|
6
|
-
let(:instance)
|
7
|
-
r = ::Object.new
|
8
|
-
r.extend(described_class)
|
9
|
-
r
|
10
|
-
end
|
6
|
+
let(:instance) { described_class.new }
|
11
7
|
|
12
|
-
describe '#
|
8
|
+
describe '#input' do
|
13
9
|
it 'recover value from hash list' do
|
14
10
|
allow(instance).to receive(:request_string).and_return('opt1')
|
15
11
|
list = { opt1: 'value1', opt2: 'value2' }
|
16
|
-
expect(instance.
|
12
|
+
expect(instance.input('Question', list: list)).to eq('value1')
|
17
13
|
end
|
18
14
|
|
19
15
|
it 'recover value from array list' do
|
20
16
|
allow(instance).to receive(:request_string).and_return('OPT1')
|
21
17
|
list = %w[opt1 opt2]
|
22
|
-
expect(instance.
|
18
|
+
expect(instance.input('Question', list: list)).to eq('opt1')
|
23
19
|
end
|
24
20
|
|
25
21
|
{
|
@@ -28,7 +24,7 @@ RSpec.describe ::EacCli::Speaker do
|
|
28
24
|
context "when bool: true and input is \"#{input}\"" do
|
29
25
|
it "return #{expected}" do
|
30
26
|
allow(instance).to receive(:request_string).and_return(input)
|
31
|
-
expect(instance.
|
27
|
+
expect(instance.input('Question', bool: true)).to eq(expected)
|
32
28
|
end
|
33
29
|
end
|
34
30
|
end
|
@@ -12,9 +12,9 @@ Gem::Specification.new do |s|
|
|
12
12
|
|
13
13
|
s.files = Dir['{lib}/**/*']
|
14
14
|
|
15
|
-
s.add_dependency 'eac_cli', '~> 0.
|
15
|
+
s.add_dependency 'eac_cli', '~> 0.20'
|
16
16
|
s.add_dependency 'eac_ruby_gems_utils', '~> 0.8'
|
17
|
-
s.add_dependency 'eac_ruby_utils', '~> 0.
|
17
|
+
s.add_dependency 'eac_ruby_utils', '~> 0.67'
|
18
18
|
|
19
19
|
s.add_development_dependency 'eac_ruby_gem_support', '~> 0.2'
|
20
20
|
end
|
@@ -1,12 +1,12 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require '
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
4
|
require 'eac_ruby_utils/settings_provider'
|
5
5
|
|
6
6
|
module EacRubyBase0
|
7
7
|
module JobsRunner
|
8
8
|
common_concern do
|
9
|
-
|
9
|
+
enable_speaker
|
10
10
|
include ::EacRubyUtils::SettingsProvider
|
11
11
|
end
|
12
12
|
|
@@ -1,6 +1,8 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'eac_cli/core_ext'
|
4
|
+
require 'eac_cli/speaker'
|
5
|
+
require 'eac_ruby_utils/speaker'
|
4
6
|
|
5
7
|
module EacRubyBase0
|
6
8
|
module Runner
|
@@ -20,9 +22,7 @@ module EacRubyBase0
|
|
20
22
|
end
|
21
23
|
|
22
24
|
def run
|
23
|
-
|
24
|
-
node.stderr = ::StringIO.new if parsed.quiet?
|
25
|
-
node.stdin = FailIfRequestInput.new if parsed.no_input?
|
25
|
+
::EacRubyUtils::Speaker.context.on(build_speaker) do
|
26
26
|
if parsed.version?
|
27
27
|
show_version
|
28
28
|
else
|
@@ -48,5 +48,14 @@ module EacRubyBase0
|
|
48
48
|
end
|
49
49
|
end
|
50
50
|
end
|
51
|
+
|
52
|
+
private
|
53
|
+
|
54
|
+
def build_speaker
|
55
|
+
options = {}
|
56
|
+
options[:err_out] = ::StringIO.new if parsed.quiet?
|
57
|
+
options[:in_in] = FailIfRequestInput.new if parsed.no_input?
|
58
|
+
::EacCli::Speaker.new(options)
|
59
|
+
end
|
51
60
|
end
|
52
61
|
end
|
@@ -23,7 +23,7 @@ Gem::Specification.new do |s|
|
|
23
23
|
s.test_files = Dir['{spec}/**/*', '.rspec']
|
24
24
|
|
25
25
|
s.add_dependency 'bundler', '~> 2.2', '>= 2.2.17'
|
26
|
-
s.add_dependency 'eac_ruby_utils', '~> 0.
|
26
|
+
s.add_dependency 'eac_ruby_utils', '~> 0.67'
|
27
27
|
|
28
28
|
# Tests
|
29
29
|
s.add_development_dependency 'eac_ruby_gem_support', '~> 0.2'
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/contextualizable'
|
4
|
+
|
5
|
+
module EacRubyUtils
|
6
|
+
module Speaker
|
7
|
+
include ::EacRubyUtils::Contextualizable
|
8
|
+
|
9
|
+
class << self
|
10
|
+
# @return [EacRubyUtils::Speaker::Receiver]
|
11
|
+
def current_receiver
|
12
|
+
context.current
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/abstract_methods'
|
4
|
+
|
5
|
+
module EacRubyUtils
|
6
|
+
module Speaker
|
7
|
+
module Receiver
|
8
|
+
extend ::EacRubyUtils::AbstractMethods
|
9
|
+
|
10
|
+
def error(_string)
|
11
|
+
raise_abstract_method(__FILE__)
|
12
|
+
end
|
13
|
+
|
14
|
+
def fatal_error(string)
|
15
|
+
error(string)
|
16
|
+
::Kernel.exit 1 # rubocop:disable Rails/Exit
|
17
|
+
end
|
18
|
+
|
19
|
+
# @see EacRubyUtils::Speaker::Sender.input
|
20
|
+
def input(_question, _options = {})
|
21
|
+
raise_abstract_method(__FILE__)
|
22
|
+
end
|
23
|
+
|
24
|
+
def info(_string)
|
25
|
+
raise_abstract_method(__FILE__)
|
26
|
+
end
|
27
|
+
|
28
|
+
def infom(_string)
|
29
|
+
raise_abstract_method(__FILE__)
|
30
|
+
end
|
31
|
+
|
32
|
+
def infov(*_args)
|
33
|
+
raise_abstract_method(__FILE__)
|
34
|
+
end
|
35
|
+
|
36
|
+
def out(_string = '')
|
37
|
+
raise_abstract_method(__FILE__)
|
38
|
+
end
|
39
|
+
|
40
|
+
def puts(_string = '')
|
41
|
+
raise_abstract_method(__FILE__)
|
42
|
+
end
|
43
|
+
|
44
|
+
def success(_string)
|
45
|
+
raise_abstract_method(__FILE__)
|
46
|
+
end
|
47
|
+
|
48
|
+
def title(_string)
|
49
|
+
raise_abstract_method(__FILE__)
|
50
|
+
end
|
51
|
+
|
52
|
+
def warn(_string)
|
53
|
+
raise_abstract_method(__FILE__)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module EacRubyUtils
|
4
|
+
module Speaker
|
5
|
+
module Sender
|
6
|
+
delegate :error, :fatal_error, :info, :infom, :title, :success, :warn, to: :speaker_receiver
|
7
|
+
|
8
|
+
def infov(*args)
|
9
|
+
speaker_receiver.infov(*args)
|
10
|
+
end
|
11
|
+
|
12
|
+
delegate :out, to: :speaker_receiver
|
13
|
+
|
14
|
+
delegate :puts, to: :speaker_receiver
|
15
|
+
|
16
|
+
# Shortcut to [EacRubyUtils::Speaker.current_receiver].
|
17
|
+
#
|
18
|
+
# @return [EacRubyUtils::Speaker::Receiver]
|
19
|
+
def speaker_receiver
|
20
|
+
::EacRubyUtils::Speaker.current_receiver
|
21
|
+
end
|
22
|
+
|
23
|
+
# Options:
|
24
|
+
# +bool+ ([Boolean], default: +false+): requires a answer "yes" or "no".
|
25
|
+
# +list+ ([Hash] or [Array], default: +nil+): requires a answer from a list.
|
26
|
+
# +noecho+ ([Boolean], default: +false+): does not output answer.
|
27
|
+
def input(question, options = {})
|
28
|
+
speaker_receiver.input(question, options)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require '
|
3
|
+
require 'eac_ruby_utils/patches/module/speaker'
|
4
4
|
|
5
5
|
RSpec.describe ::Module do
|
6
6
|
class StubClass # rubocop:disable RSpec/LeakyConstantDeclaration
|
@@ -8,6 +8,6 @@ RSpec.describe ::Module do
|
|
8
8
|
end
|
9
9
|
|
10
10
|
describe '#enable_speaker' do
|
11
|
-
it { expect(StubClass.included_modules).to include(::
|
11
|
+
it { expect(StubClass.included_modules).to include(::EacRubyUtils::Speaker::Sender) }
|
12
12
|
end
|
13
13
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: avm-tools
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.102.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Esquilo Azul Company
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-06-
|
11
|
+
date: 2021-06-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aranha-parsers
|
@@ -549,6 +549,7 @@ files:
|
|
549
549
|
- lib/avm/postgresql/instance_with.rb
|
550
550
|
- lib/avm/projects.rb
|
551
551
|
- lib/avm/projects/stereotype.rb
|
552
|
+
- lib/avm/projects/stereotype/job_comparator.rb
|
552
553
|
- lib/avm/projects/stereotypes.rb
|
553
554
|
- lib/avm/projects/stereotypes/git.rb
|
554
555
|
- lib/avm/projects/stereotypes/git/local_project_mixin.rb
|
@@ -756,8 +757,6 @@ files:
|
|
756
757
|
- vendor/eac_cli/lib/eac_cli/parser/collector.rb
|
757
758
|
- vendor/eac_cli/lib/eac_cli/parser/error.rb
|
758
759
|
- vendor/eac_cli/lib/eac_cli/patches.rb
|
759
|
-
- vendor/eac_cli/lib/eac_cli/patches/module.rb
|
760
|
-
- vendor/eac_cli/lib/eac_cli/patches/module/speaker.rb
|
761
760
|
- vendor/eac_cli/lib/eac_cli/patches/object.rb
|
762
761
|
- vendor/eac_cli/lib/eac_cli/patches/object/runner_with.rb
|
763
762
|
- vendor/eac_cli/lib/eac_cli/runner.rb
|
@@ -771,10 +770,9 @@ files:
|
|
771
770
|
- vendor/eac_cli/lib/eac_cli/runner_with/subcommands/definition_concern.rb
|
772
771
|
- vendor/eac_cli/lib/eac_cli/runner_with_set.rb
|
773
772
|
- vendor/eac_cli/lib/eac_cli/speaker.rb
|
774
|
-
- vendor/eac_cli/lib/eac_cli/speaker/_class_methods.rb
|
775
773
|
- vendor/eac_cli/lib/eac_cli/speaker/_constants.rb
|
776
774
|
- vendor/eac_cli/lib/eac_cli/speaker/list.rb
|
777
|
-
- vendor/eac_cli/lib/eac_cli/speaker/
|
775
|
+
- vendor/eac_cli/lib/eac_cli/speaker/options.rb
|
778
776
|
- vendor/eac_cli/lib/eac_cli/version.rb
|
779
777
|
- vendor/eac_cli/spec/lib/eac_cli/definition/alternative_spec.rb
|
780
778
|
- vendor/eac_cli/spec/lib/eac_cli/docopt/runner_extension_spec.rb
|
@@ -785,7 +783,6 @@ files:
|
|
785
783
|
- vendor/eac_cli/spec/lib/eac_cli/runner_with/help_spec.rb
|
786
784
|
- vendor/eac_cli/spec/lib/eac_cli/runner_with/subcommands_spec.rb
|
787
785
|
- vendor/eac_cli/spec/lib/eac_cli/speaker_spec.rb
|
788
|
-
- vendor/eac_cli/spec/lib/module/speaker_spec.rb
|
789
786
|
- vendor/eac_cli/spec/rubocop_spec.rb
|
790
787
|
- vendor/eac_cli/spec/spec_helper.rb
|
791
788
|
- vendor/eac_config/Gemfile
|
@@ -1203,6 +1200,7 @@ files:
|
|
1203
1200
|
- vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/module/patch.rb
|
1204
1201
|
- vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/module/require_sub.rb
|
1205
1202
|
- vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/module/simple_cache.rb
|
1203
|
+
- vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/module/speaker.rb
|
1206
1204
|
- vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/object.rb
|
1207
1205
|
- vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/object/asserts.rb
|
1208
1206
|
- vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/object/debug.rb
|
@@ -1230,6 +1228,9 @@ files:
|
|
1230
1228
|
- vendor/eac_ruby_utils/lib/eac_ruby_utils/settings_provider.rb
|
1231
1229
|
- vendor/eac_ruby_utils/lib/eac_ruby_utils/settings_provider/setting_value.rb
|
1232
1230
|
- vendor/eac_ruby_utils/lib/eac_ruby_utils/simple_cache.rb
|
1231
|
+
- vendor/eac_ruby_utils/lib/eac_ruby_utils/speaker.rb
|
1232
|
+
- vendor/eac_ruby_utils/lib/eac_ruby_utils/speaker/receiver.rb
|
1233
|
+
- vendor/eac_ruby_utils/lib/eac_ruby_utils/speaker/sender.rb
|
1233
1234
|
- vendor/eac_ruby_utils/lib/eac_ruby_utils/struct.rb
|
1234
1235
|
- vendor/eac_ruby_utils/lib/eac_ruby_utils/version.rb
|
1235
1236
|
- vendor/eac_ruby_utils/lib/eac_ruby_utils/yaml.rb
|
@@ -1256,6 +1257,7 @@ files:
|
|
1256
1257
|
- vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/hash/sym_keys_hash_spec.rb
|
1257
1258
|
- vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/module/listable_spec.rb
|
1258
1259
|
- vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/module/simple_cache_spec.rb
|
1260
|
+
- vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/module/speaker_spec.rb
|
1259
1261
|
- vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/object/if_present_spec.rb
|
1260
1262
|
- vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/object/template_spec_files/path/my_stub_with_template
|
1261
1263
|
- vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/pathname/basename_sub_spec.rb
|
@@ -1,37 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'eac_cli/speaker/node'
|
4
|
-
|
5
|
-
module EacCli
|
6
|
-
module Speaker
|
7
|
-
class << self
|
8
|
-
def current_node
|
9
|
-
nodes_stack.last
|
10
|
-
end
|
11
|
-
|
12
|
-
def on_node(&block)
|
13
|
-
push
|
14
|
-
yield(*(block.arity.zero? ? [] : [current_node]))
|
15
|
-
ensure
|
16
|
-
pop
|
17
|
-
end
|
18
|
-
|
19
|
-
def push
|
20
|
-
nodes_stack << ::EacCli::Speaker::Node.new
|
21
|
-
current_node
|
22
|
-
end
|
23
|
-
|
24
|
-
def pop
|
25
|
-
return nodes_stack.pop if nodes_stack.count > 1
|
26
|
-
|
27
|
-
raise "Cannot remove first node (nodes_stack.count: #{nodes_stack.count})"
|
28
|
-
end
|
29
|
-
|
30
|
-
private
|
31
|
-
|
32
|
-
def nodes_stack
|
33
|
-
@nodes_stack ||= [::EacCli::Speaker::Node.new]
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
@@ -1,24 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'eac_ruby_utils/patches/object/if_present'
|
4
|
-
require 'eac_cli/speaker/_constants'
|
5
|
-
|
6
|
-
module EacCli
|
7
|
-
module Speaker
|
8
|
-
class Node
|
9
|
-
attr_accessor :stdin, :stdout, :stderr, :stderr_line_prefix
|
10
|
-
|
11
|
-
def initialize(parent = nil)
|
12
|
-
self.stdin = parent.if_present(::EacCli::Speaker::STDIN, &:stdin)
|
13
|
-
self.stdout = parent.if_present(::EacCli::Speaker::STDOUT, &:stdout)
|
14
|
-
self.stderr = parent.if_present(::EacCli::Speaker::STDERR, &:stderr)
|
15
|
-
self.stderr_line_prefix = parent.if_present('', &:stderr_line_prefix)
|
16
|
-
end
|
17
|
-
|
18
|
-
def configure
|
19
|
-
yield(self)
|
20
|
-
self
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|