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