avm-tools 0.70.2 → 0.74.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (128) hide show
  1. checksums.yaml +4 -4
  2. data/lib/avm/{stereotypes/eac_rails_base0.rb → eac_rails_base0.rb} +1 -3
  3. data/lib/avm/eac_rails_base0/instance.rb +2 -5
  4. data/lib/avm/{rails/runners.rb → eac_rails_base1.rb} +2 -4
  5. data/lib/avm/eac_rails_base1/instance.rb +24 -0
  6. data/lib/avm/eac_rails_base1/runner.rb +12 -0
  7. data/lib/avm/eac_rails_base1/runner/bundle.rb +28 -0
  8. data/lib/avm/eac_rails_base1/runner/code_runner.rb +28 -0
  9. data/lib/avm/eac_rails_base1/runner_with/bundle.rb +57 -0
  10. data/lib/avm/{stereotypes/rails.rb → eac_redmine_base0.rb} +2 -4
  11. data/lib/avm/eac_redmine_base0/instance.rb +2 -4
  12. data/lib/avm/{stereotypes/eac_ubuntu_base0.rb → eac_ubuntu_base0.rb} +1 -3
  13. data/lib/avm/{stereotypes/eac_webapp_base0.rb → eac_webapp_base0.rb} +1 -3
  14. data/lib/avm/eac_webapp_base0/instance.rb +2 -2
  15. data/lib/avm/eac_webapp_base0/runner.rb +12 -0
  16. data/lib/avm/eac_webapp_base0/runner/apache_host.rb +2 -3
  17. data/lib/avm/eac_webapp_base0/runner/data.rb +1 -1
  18. data/lib/avm/eac_webapp_base0/runner/data/dump.rb +1 -1
  19. data/lib/avm/eac_webapp_base0/runner/data/load.rb +1 -1
  20. data/lib/avm/eac_webapp_base0/runner/deploy.rb +3 -16
  21. data/lib/avm/eac_wordpress_base0.rb +9 -0
  22. data/lib/avm/eac_wordpress_base0/apache_host.rb +25 -0
  23. data/lib/avm/eac_wordpress_base0/deploy.rb +10 -0
  24. data/lib/avm/eac_wordpress_base0/instance.rb +24 -0
  25. data/lib/avm/eac_writings_base0.rb +9 -0
  26. data/lib/avm/eac_writings_base0/commons.rb +12 -0
  27. data/lib/avm/eac_writings_base0/file_build.rb +45 -0
  28. data/lib/avm/eac_writings_base0/file_build/base_stereotype.rb +19 -0
  29. data/lib/avm/eac_writings_base0/file_build/chapter_index.rb +23 -0
  30. data/lib/avm/eac_writings_base0/file_build/tex_source.rb +33 -0
  31. data/lib/avm/eac_writings_base0/project.rb +33 -0
  32. data/lib/avm/eac_writings_base0/project_build.rb +117 -0
  33. data/lib/avm/eac_writings_base0/project_build/chapters_content.rb +47 -0
  34. data/lib/avm/eac_writings_base0/project_build/copy_files.rb +42 -0
  35. data/lib/avm/executables.rb +1 -1
  36. data/lib/avm/instances/application.rb +4 -0
  37. data/lib/avm/instances/base.rb +2 -1
  38. data/lib/avm/instances/base/auto_values.rb +2 -1
  39. data/lib/avm/instances/base/auto_values/access.rb +5 -4
  40. data/lib/avm/instances/base/auto_values/admin.rb +2 -2
  41. data/lib/avm/instances/base/auto_values/database.rb +1 -1
  42. data/lib/avm/instances/base/auto_values/filesystem.rb +6 -2
  43. data/lib/avm/instances/base/auto_values/mailer.rb +34 -0
  44. data/lib/avm/instances/base/auto_values/ruby.rb +1 -1
  45. data/lib/avm/instances/base/auto_values/system.rb +2 -2
  46. data/lib/avm/instances/entry.rb +7 -1
  47. data/lib/avm/instances/entry_keys.rb +42 -7
  48. data/lib/avm/instances/runner.rb +40 -0
  49. data/lib/avm/{stereotypes/postgresql.rb → postgresql.rb} +1 -3
  50. data/lib/avm/postgresql/instance.rb +63 -0
  51. data/lib/avm/postgresql/instance/data_unit.rb +39 -0
  52. data/lib/avm/postgresql/instance_with.rb +18 -0
  53. data/lib/avm/projects/stereotypes/git_subtree/publish.rb +2 -0
  54. data/lib/avm/projects/stereotypes/git_subtree/warp.rb +3 -0
  55. data/lib/avm/tools/runner.rb +3 -3
  56. data/lib/avm/tools/runner/eac_rails_base0.rb +5 -18
  57. data/lib/avm/tools/runner/eac_rails_base0/apache_path.rb +1 -1
  58. data/lib/avm/tools/runner/eac_rails_base0/bundle.rb +3 -3
  59. data/lib/avm/tools/runner/eac_rails_base0/rails_server.rb +35 -0
  60. data/lib/avm/tools/runner/eac_rails_base0/runner.rb +3 -3
  61. data/lib/avm/tools/runner/eac_redmine_base0.rb +5 -23
  62. data/lib/avm/tools/runner/eac_redmine_base0/core_update.rb +1 -1
  63. data/lib/avm/tools/runner/eac_redmine_base0/docker.rb +1 -1
  64. data/lib/avm/tools/runner/eac_redmine_base0/project_rename.rb +3 -3
  65. data/lib/avm/tools/runner/eac_wordpress_base0.rb +5 -24
  66. data/lib/avm/tools/runner/instance.rb +28 -0
  67. data/lib/avm/tools/runner/instance/info.rb +44 -0
  68. data/lib/avm/tools/runner/local_project/eac_writings_base0.rb +35 -0
  69. data/lib/avm/tools/runner/local_project/eac_writings_base0/build_chapters.rb +48 -0
  70. data/lib/avm/tools/runner/local_project/eac_writings_base0/build_single.rb +37 -0
  71. data/lib/avm/tools/runner/local_project/eac_writings_base0/info.rb +36 -0
  72. data/lib/avm/tools/version.rb +1 -1
  73. data/template/avm/eac_rails_base0/deploy/config/envvars.d/email.yml.template +11 -0
  74. data/template/avm/eac_writings_base0/commons/all.tex +5 -0
  75. data/template/avm/eac_writings_base0/commons/ebook.tex +11 -0
  76. data/template/avm/eac_writings_base0/commons/images.tex +11 -0
  77. data/template/avm/eac_writings_base0/commons/links.tex +2 -0
  78. data/template/avm/eac_writings_base0/commons/portuguese.tex +8 -0
  79. data/template/avm/eac_writings_base0/commons/source_code.tex +21 -0
  80. data/template/avm/eac_writings_base0/commons/source_code/java.tex +15 -0
  81. data/template/avm/eac_writings_base0/commons/utils.tex +6 -0
  82. data/vendor/eac_cli/lib/eac_cli/runner.rb +1 -1
  83. data/vendor/eac_cli/lib/eac_cli/runner/context.rb +19 -2
  84. data/vendor/eac_cli/lib/eac_cli/version.rb +1 -1
  85. data/vendor/eac_ruby_base0/lib/eac_ruby_base0/runner.rb +12 -0
  86. data/vendor/eac_ruby_base0/lib/eac_ruby_base0/version.rb +1 -1
  87. data/vendor/eac_ruby_gems_utils/lib/eac_ruby_gems_utils/gem.rb +2 -1
  88. data/vendor/eac_ruby_gems_utils/lib/eac_ruby_gems_utils/gem/command.rb +1 -1
  89. data/vendor/eac_ruby_gems_utils/lib/eac_ruby_gems_utils/tests/multiple/decorated_gem.rb +10 -6
  90. data/vendor/eac_ruby_gems_utils/lib/eac_ruby_gems_utils/version.rb +1 -1
  91. data/vendor/eac_ruby_gems_utils/spec/{rubocop_check_spec.rb → code/rubocop_check_spec.rb} +0 -0
  92. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/blank_not_blank.rb +19 -0
  93. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/configs/base.rb +43 -0
  94. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/configs/file.rb +12 -31
  95. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console/configs.rb +4 -1
  96. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/fs/clearable_directory.rb +57 -0
  97. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/paths_hash.rb +21 -58
  98. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/paths_hash/entry_key_error.rb +8 -0
  99. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/paths_hash/node.rb +67 -0
  100. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/paths_hash/path_search.rb +39 -0
  101. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/ruby/command.rb +2 -1
  102. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/struct.rb +4 -0
  103. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/version.rb +1 -1
  104. data/vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/blank_not_blank_spec.rb +16 -0
  105. data/vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/configs_spec.rb +15 -0
  106. data/vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/paths_hash_spec.rb +52 -13
  107. metadata +57 -30
  108. data/lib/avm/rails/runners/bundle.rb +0 -35
  109. data/lib/avm/rails/runners/runner.rb +0 -48
  110. data/lib/avm/stereotypes/eac_redmine_base0.rb +0 -11
  111. data/lib/avm/stereotypes/eac_wordpress_base0/apache_host.rb +0 -27
  112. data/lib/avm/stereotypes/eac_wordpress_base0/deploy.rb +0 -12
  113. data/lib/avm/stereotypes/eac_wordpress_base0/instance.rb +0 -26
  114. data/lib/avm/stereotypes/postgresql/instance.rb +0 -65
  115. data/lib/avm/stereotypes/postgresql/instance/data_unit.rb +0 -41
  116. data/lib/avm/stereotypes/postgresql/instance_with.rb +0 -20
  117. data/lib/avm/stereotypes/rails/instance.rb +0 -20
  118. data/lib/avm/tools/runner/eac_rails_base0/apache_host.rb +0 -16
  119. data/lib/avm/tools/runner/eac_rails_base0/data.rb +0 -15
  120. data/lib/avm/tools/runner/eac_rails_base0/deploy.rb +0 -15
  121. data/lib/avm/tools/runner/eac_redmine_base0/bundle.rb +0 -14
  122. data/lib/avm/tools/runner/eac_redmine_base0/data.rb +0 -27
  123. data/lib/avm/tools/runner/eac_redmine_base0/data/dump.rb +0 -16
  124. data/lib/avm/tools/runner/eac_redmine_base0/deploy.rb +0 -15
  125. data/lib/avm/tools/runner/eac_redmine_base0/runner.rb +0 -14
  126. data/lib/avm/tools/runner/eac_wordpress_base0/apache_host.rb +0 -17
  127. data/lib/avm/tools/runner/eac_wordpress_base0/data.rb +0 -15
  128. data/lib/avm/tools/runner/eac_wordpress_base0/deploy.rb +0 -15
@@ -1,21 +1,25 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'active_support/core_ext/object'
4
- require 'eac_ruby_utils/patches/object/asserts'
3
+ require 'eac_ruby_utils/core_ext'
5
4
 
6
5
  module EacRubyUtils
7
6
  class PathsHash
7
+ require_sub __FILE__
8
+
8
9
  class << self
9
10
  def parse_entry_key(entry_key)
10
11
  r = entry_key.to_s.strip
11
- raise EntryKeyError, 'Entry key cannot start or end with dot' if
12
+ raise ::EacRubyUtils::PathsHash::EntryKeyError, 'Entry key cannot start or end with dot' if
12
13
  r.start_with?('.') || r.end_with?('.')
13
14
 
14
15
  r = r.split('.').map(&:strip)
15
- raise EntryKeyError, "Entry key \"#{entry_key}\" is empty" if r.empty?
16
+ if r.empty?
17
+ raise ::EacRubyUtils::PathsHash::EntryKeyError, "Entry key \"#{entry_key}\" is empty"
18
+ end
16
19
  return r.map(&:to_sym) unless r.any?(&:blank?)
17
20
 
18
- raise EntryKeyError, "Entry key \"#{entry_key}\" has at least one blank part"
21
+ raise ::EacRubyUtils::PathsHash::EntryKeyError,
22
+ "Entry key \"#{entry_key}\" has at least one blank part"
19
23
  end
20
24
  end
21
25
 
@@ -26,68 +30,27 @@ module EacRubyUtils
26
30
  end
27
31
 
28
32
  def [](entry_key)
29
- root.read_entry(self.class.parse_entry_key(entry_key), [])
33
+ root.read_entry(::EacRubyUtils::PathsHash::PathSearch.parse_entry_key(entry_key))
30
34
  end
31
35
 
32
36
  def []=(entry_key, entry_value)
33
- root.write_entry(self.class.parse_entry_key(entry_key), entry_value, [])
37
+ root.write_entry(
38
+ ::EacRubyUtils::PathsHash::PathSearch.parse_entry_key(entry_key), entry_value
39
+ )
34
40
  end
35
41
 
36
- delegate :to_h, to: :root
37
-
38
- private
39
-
40
- attr_reader :data
41
-
42
- class EntryKeyError < StandardError
42
+ def fetch(entry_key)
43
+ root.fetch(::EacRubyUtils::PathsHash::PathSearch.parse_entry_key(entry_key))
43
44
  end
44
45
 
45
- class Node
46
- def initialize(source_hash)
47
- source_hash.assert_argument(Hash, 'source_hash')
48
- @data = source_hash.map { |k, v| [k.to_sym, v.is_a?(Hash) ? Node.new(v) : v] }.to_h
49
- end
50
-
51
- def to_h
52
- data.map { |k, v| [k, v.is_a?(Node) ? v.to_h : v] }.to_h
53
- end
54
-
55
- def read_entry(path, current)
56
- validate_path(path, current)
57
- node_key = path.shift
58
- node = data[node_key]
59
- return (node.is_a?(Node) ? node.to_h : node) if path.empty?
60
- return nil if node.blank?
61
- return node.read_entry(path, current + [node_key]) if node.is_a?(Node)
62
-
63
- raise(EntryKeyError,
64
- "Path #{current.join(',')} is not a Node and path continues (#{current + path})")
65
- end
66
-
67
- def write_entry(path, value, current)
68
- validate_path(path, current)
69
- node_key = path.shift
70
- write_entry_value(path, node_key, value, current)
71
- end
72
-
73
- private
46
+ def key?(entry_key)
47
+ root.entry?(::EacRubyUtils::PathsHash::PathSearch.parse_entry_key(entry_key))
48
+ end
74
49
 
75
- def write_entry_value(path, node_key, value, current)
76
- if path.empty?
77
- data[node_key] = value.is_a?(Hash) ? Node.new(value) : value
78
- else
79
- data[node_key] = Node.new({}) unless data[node_key].is_a?(Node)
80
- data[node_key].write_entry(path, value, current + [node_key])
81
- end
82
- end
50
+ delegate :to_h, to: :root
83
51
 
84
- def validate_path(path, current)
85
- path.assert_argument(Array, 'path')
86
- current.assert_argument(Array, 'current')
87
- raise EntryKeyError, 'Path is empty' if path.empty?
88
- end
52
+ private
89
53
 
90
- attr_reader :data
91
- end
54
+ attr_reader :data
92
55
  end
93
56
  end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ module EacRubyUtils
4
+ class PathsHash
5
+ class EntryKeyError < StandardError
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,67 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+ require 'eac_ruby_utils/paths_hash/entry_key_error'
5
+
6
+ module EacRubyUtils
7
+ class PathsHash
8
+ class Node
9
+ PATH_SEARCH_UNENDED_ERROR_MESSAGE = 'Path search is not a Node and is not ended'
10
+
11
+ def initialize(source_hash)
12
+ source_hash.assert_argument(Hash, 'source_hash')
13
+ @data = source_hash.map { |k, v| [k.to_sym, v.is_a?(Hash) ? Node.new(v) : v] }.to_h
14
+ end
15
+
16
+ def entry?(path_search)
17
+ return false unless data.key?(path_search.cursor)
18
+ return true if path_search.ended?
19
+ return data.fetch(path_search.cursor).entry?(path_search.succeeding) if
20
+ data.fetch(path_search.cursor).is_a?(Node)
21
+
22
+ false # Paths continue and there is not available nodes
23
+ end
24
+
25
+ def fetch(path_search)
26
+ if data.key?(path_search.cursor)
27
+ node = data.fetch(path_search.cursor)
28
+ return (node.is_a?(Node) ? node.to_h : node) if path_search.ended?
29
+ return nil if node.blank?
30
+ return node.fetch(path_search.succeeding) if node.is_a?(Node)
31
+ end
32
+
33
+ path_search.raise_error(PATH_SEARCH_UNENDED_ERROR_MESSAGE)
34
+ end
35
+
36
+ def to_h
37
+ data.map { |k, v| [k, v.is_a?(Node) ? v.to_h : v] }.to_h
38
+ end
39
+
40
+ def read_entry(path_search)
41
+ node = data[path_search.cursor]
42
+ return (node.is_a?(Node) ? node.to_h : node) if path_search.ended?
43
+ return nil if node.blank?
44
+ return node.read_entry(path_search.succeeding) if node.is_a?(Node)
45
+
46
+ path_search.raise_error(PATH_SEARCH_UNENDED_ERROR_MESSAGE)
47
+ end
48
+
49
+ def write_entry(path_search, value)
50
+ if path_search.ended?
51
+ data[path_search.cursor] = value.is_a?(Hash) ? self.class.new(value) : value
52
+ else
53
+ assert_data_node(path_search.cursor).write_entry(path_search.succeeding, value)
54
+ end
55
+ end
56
+
57
+ private
58
+
59
+ attr_reader :data
60
+
61
+ def assert_data_node(key)
62
+ data[key] = self.class.new({}) unless data[key].is_a?(Node)
63
+ data[key]
64
+ end
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ module EacRubyUtils
4
+ class PathsHash
5
+ class PathSearch
6
+ class << self
7
+ def parse_entry_key(string)
8
+ new(::EacRubyUtils::PathsHash.parse_entry_key(string), [])
9
+ end
10
+ end
11
+
12
+ common_constructor :current, :previous do
13
+ self.current = current.assert_argument(Array, 'current').freeze
14
+ self.previous = previous.assert_argument(Array, 'previous')
15
+ raise ::EacRubyUtils::PathsHash::EntryKeyError, 'Current is empty' if current.empty?
16
+ end
17
+
18
+ def cursor
19
+ current.first
20
+ end
21
+
22
+ def ended?
23
+ current.count <= 1
24
+ end
25
+
26
+ def raise_error(message)
27
+ raise ::EacRubyUtils::PathsHash::EntryKeyError, "#{message} (#{self})"
28
+ end
29
+
30
+ def succeeding
31
+ self.class.new(current[1..-1], previous + [cursor])
32
+ end
33
+
34
+ def to_s
35
+ "#{self.class}[Current: #{current}, Previous: #{previous}]"
36
+ end
37
+ end
38
+ end
39
+ end
@@ -8,7 +8,8 @@ module EacRubyUtils
8
8
  # A [EacRubyUtils::Envs::Command] which runs in a clean Ruby environment.
9
9
  class Command < ::EacRubyUtils::Envs::Command
10
10
  def initialize(bundle_args, extra_options = {})
11
- super(::EacRubyUtils::Envs.local, bundle_args, extra_options)
11
+ host_env = extra_options.delete(:host_env)
12
+ super(host_env || ::EacRubyUtils::Envs.local, bundle_args, extra_options)
12
13
  end
13
14
 
14
15
  %w[system execute].each do |method_prefix|
@@ -27,6 +27,10 @@ module EacRubyUtils
27
27
  property_method?(method_name) || super
28
28
  end
29
29
 
30
+ def slice_fetch(*keys)
31
+ self.class.new(keys.map { |key| [key, fetch(key)] }.to_h)
32
+ end
33
+
30
34
  def to_h
31
35
  data.dup
32
36
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module EacRubyUtils
4
- VERSION = '0.46.0'
4
+ VERSION = '0.49.0'
5
5
  end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/blank_not_blank'
4
+
5
+ RSpec.describe ::EacRubyUtils::BlankNotBlank do
6
+ let(:instance) { described_class.instance }
7
+
8
+ it do
9
+ expect { described_class.new }.to raise_error(::NoMethodError)
10
+ end
11
+
12
+ it { expect(instance).to be_present }
13
+ it { expect(instance).not_to be_blank }
14
+ it { expect(instance).to be_truthy }
15
+ it { expect(instance).to eq('') }
16
+ end
@@ -28,4 +28,19 @@ RSpec.describe ::EacRubyUtils::Configs do
28
28
 
29
29
  it { expect(::YAML.load_file(storage_path)).to eq(parent: { child: 'value1' }) }
30
30
  end
31
+
32
+ describe '#read' do
33
+ let(:present_key) { 'a.present.key' }
34
+ let(:blank_key) { 'a.blank.key' }
35
+
36
+ before do
37
+ instance[present_key] = 'A value'
38
+ instance[blank_key] = ''
39
+ instance.save
40
+ instance.load
41
+ end
42
+
43
+ it { expect(instance[present_key]).to be_present }
44
+ it { expect(instance[blank_key]).to be_present }
45
+ end
31
46
  end
@@ -3,20 +3,20 @@
3
3
  require 'eac_ruby_utils/paths_hash'
4
4
 
5
5
  RSpec.describe ::EacRubyUtils::PathsHash do
6
- describe '#[]' do
7
- let(:source_hash) do
8
- {
9
- parent: {
10
- child1: {
11
- child1_1: 'v1_1',
12
- child1_2: 'v1_2'
13
- },
14
- child2: 'v2'
15
- }
6
+ let(:source_hash) do
7
+ {
8
+ parent: {
9
+ child1: {
10
+ child1_1: 'v1_1',
11
+ child1_2: 'v1_2'
12
+ },
13
+ child2: 'v2'
16
14
  }
17
- end
18
- let(:instance) { described_class.new(source_hash) }
15
+ }
16
+ end
17
+ let(:instance) { described_class.new(source_hash) }
19
18
 
19
+ describe '#[]' do
20
20
  {
21
21
  'parent.child1.child1_1' => 'v1_1',
22
22
  'parent.child1.child1_2' => 'v1_2',
@@ -38,7 +38,7 @@ RSpec.describe ::EacRubyUtils::PathsHash do
38
38
  end
39
39
 
40
40
  describe '#[]=' do
41
- let(:instance) { described_class.new }
41
+ let(:source_hash) { {} }
42
42
 
43
43
  before do
44
44
  instance['a.b.c'] = '123'
@@ -46,4 +46,43 @@ RSpec.describe ::EacRubyUtils::PathsHash do
46
46
 
47
47
  it { expect(instance.to_h).to eq(a: { b: { c: '123' } }) }
48
48
  end
49
+
50
+ describe '#fetch' do
51
+ {
52
+ 'parent.child1.child1_1' => 'v1_1',
53
+ 'parent.child1.child1_2' => 'v1_2',
54
+ 'parent.child1.child1_2.no_exist' => ::EacRubyUtils::PathsHash::EntryKeyError,
55
+ 'parent.child1.child1_3' => ::EacRubyUtils::PathsHash::EntryKeyError,
56
+ 'parent.child2' => 'v2',
57
+ 'no_exist' => ::EacRubyUtils::PathsHash::EntryKeyError,
58
+ 'parent.child1' => {
59
+ child1_1: 'v1_1',
60
+ child1_2: 'v1_2'
61
+ }
62
+ }.each do |entry_key, expected_value|
63
+ if expected_value.is_a?(::Class) && expected_value < ::Exception
64
+ it "raise error #{expected_value}" do
65
+ expect { instance.fetch(entry_key) }.to raise_error(expected_value)
66
+ end
67
+ else
68
+ it "\#fetch return \"#{expected_value}\"" do
69
+ expect(instance.fetch(entry_key)).to eq(expected_value)
70
+ end
71
+ end
72
+ end
73
+ end
74
+
75
+ describe '#key?' do
76
+ {
77
+ 'parent.child1.child1_1' => true,
78
+ 'parent.child1.child1_2' => true,
79
+ 'parent.child1.child1_2.no_exist' => false,
80
+ 'parent.child1.child1_3' => false,
81
+ 'parent.child2' => true,
82
+ 'no_exist' => false,
83
+ 'parent.child1' => true
84
+ }.each do |entry_key, expected_value|
85
+ it { expect(instance.key?(entry_key)).to eq(expected_value) }
86
+ end
87
+ end
49
88
  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.70.2
4
+ version: 0.74.1
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: 2020-10-13 00:00:00.000000000 Z
11
+ date: 2020-10-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aranha-parsers
@@ -290,17 +290,27 @@ files:
290
290
  - lib/avm/docker/image.rb
291
291
  - lib/avm/docker/registry.rb
292
292
  - lib/avm/docker/runner.rb
293
+ - lib/avm/eac_rails_base0.rb
293
294
  - lib/avm/eac_rails_base0/apache_host.rb
294
295
  - lib/avm/eac_rails_base0/apache_path.rb
295
296
  - lib/avm/eac_rails_base0/deploy.rb
296
297
  - lib/avm/eac_rails_base0/instance.rb
298
+ - lib/avm/eac_rails_base1.rb
299
+ - lib/avm/eac_rails_base1/instance.rb
300
+ - lib/avm/eac_rails_base1/runner.rb
301
+ - lib/avm/eac_rails_base1/runner/bundle.rb
302
+ - lib/avm/eac_rails_base1/runner/code_runner.rb
303
+ - lib/avm/eac_rails_base1/runner_with/bundle.rb
304
+ - lib/avm/eac_redmine_base0.rb
297
305
  - lib/avm/eac_redmine_base0/core_update.rb
298
306
  - lib/avm/eac_redmine_base0/data_unit.rb
299
307
  - lib/avm/eac_redmine_base0/deploy.rb
300
308
  - lib/avm/eac_redmine_base0/instance.rb
309
+ - lib/avm/eac_ubuntu_base0.rb
301
310
  - lib/avm/eac_ubuntu_base0/apache.rb
302
311
  - lib/avm/eac_ubuntu_base0/apache/resource.rb
303
312
  - lib/avm/eac_ubuntu_base0/docker_image.rb
313
+ - lib/avm/eac_webapp_base0.rb
304
314
  - lib/avm/eac_webapp_base0/apache_host.rb
305
315
  - lib/avm/eac_webapp_base0/deploy.rb
306
316
  - lib/avm/eac_webapp_base0/deploy/appended_directories.rb
@@ -308,11 +318,26 @@ files:
308
318
  - lib/avm/eac_webapp_base0/deploy/git_info.rb
309
319
  - lib/avm/eac_webapp_base0/deploy/version.rb
310
320
  - lib/avm/eac_webapp_base0/instance.rb
321
+ - lib/avm/eac_webapp_base0/runner.rb
311
322
  - lib/avm/eac_webapp_base0/runner/apache_host.rb
312
323
  - lib/avm/eac_webapp_base0/runner/data.rb
313
324
  - lib/avm/eac_webapp_base0/runner/data/dump.rb
314
325
  - lib/avm/eac_webapp_base0/runner/data/load.rb
315
326
  - lib/avm/eac_webapp_base0/runner/deploy.rb
327
+ - lib/avm/eac_wordpress_base0.rb
328
+ - lib/avm/eac_wordpress_base0/apache_host.rb
329
+ - lib/avm/eac_wordpress_base0/deploy.rb
330
+ - lib/avm/eac_wordpress_base0/instance.rb
331
+ - lib/avm/eac_writings_base0.rb
332
+ - lib/avm/eac_writings_base0/commons.rb
333
+ - lib/avm/eac_writings_base0/file_build.rb
334
+ - lib/avm/eac_writings_base0/file_build/base_stereotype.rb
335
+ - lib/avm/eac_writings_base0/file_build/chapter_index.rb
336
+ - lib/avm/eac_writings_base0/file_build/tex_source.rb
337
+ - lib/avm/eac_writings_base0/project.rb
338
+ - lib/avm/eac_writings_base0/project_build.rb
339
+ - lib/avm/eac_writings_base0/project_build/chapters_content.rb
340
+ - lib/avm/eac_writings_base0/project_build/copy_files.rb
316
341
  - lib/avm/executables.rb
317
342
  - lib/avm/files.rb
318
343
  - lib/avm/files/formatter.rb
@@ -374,6 +399,7 @@ files:
374
399
  - lib/avm/instances/base/auto_values/data.rb
375
400
  - lib/avm/instances/base/auto_values/database.rb
376
401
  - lib/avm/instances/base/auto_values/filesystem.rb
402
+ - lib/avm/instances/base/auto_values/mailer.rb
377
403
  - lib/avm/instances/base/auto_values/ruby.rb
378
404
  - lib/avm/instances/base/auto_values/source.rb
379
405
  - lib/avm/instances/base/auto_values/system.rb
@@ -386,6 +412,7 @@ files:
386
412
  - lib/avm/instances/entries.rb
387
413
  - lib/avm/instances/entry.rb
388
414
  - lib/avm/instances/entry_keys.rb
415
+ - lib/avm/instances/runner.rb
389
416
  - lib/avm/launcher/context/instance_manager.rb
390
417
  - lib/avm/launcher/context/instance_manager/cached_instance.rb
391
418
  - lib/avm/launcher/context/instance_manager/cached_instances.rb
@@ -402,6 +429,10 @@ files:
402
429
  - lib/avm/patches/object/i18n.rb
403
430
  - lib/avm/patches/object/template.rb
404
431
  - lib/avm/path_string.rb
432
+ - lib/avm/postgresql.rb
433
+ - lib/avm/postgresql/instance.rb
434
+ - lib/avm/postgresql/instance/data_unit.rb
435
+ - lib/avm/postgresql/instance_with.rb
405
436
  - lib/avm/projects.rb
406
437
  - lib/avm/projects/stereotype.rb
407
438
  - lib/avm/projects/stereotypes.rb
@@ -425,9 +456,6 @@ files:
425
456
  - lib/avm/projects/stereotypes/ruby_gem/update.rb
426
457
  - lib/avm/projects/stereotypes/ruby_gem/version_bump.rb
427
458
  - lib/avm/rails.rb
428
- - lib/avm/rails/runners.rb
429
- - lib/avm/rails/runners/bundle.rb
430
- - lib/avm/rails/runners/runner.rb
431
459
  - lib/avm/result.rb
432
460
  - lib/avm/ruby.rb
433
461
  - lib/avm/ruby/gems.rb
@@ -442,42 +470,19 @@ files:
442
470
  - lib/avm/self/instance/entry_keys.rb
443
471
  - lib/avm/self/root.rb
444
472
  - lib/avm/stereotypes.rb
445
- - lib/avm/stereotypes/eac_rails_base0.rb
446
- - lib/avm/stereotypes/eac_redmine_base0.rb
447
- - lib/avm/stereotypes/eac_ubuntu_base0.rb
448
- - lib/avm/stereotypes/eac_webapp_base0.rb
449
- - lib/avm/stereotypes/eac_wordpress_base0/apache_host.rb
450
- - lib/avm/stereotypes/eac_wordpress_base0/deploy.rb
451
- - lib/avm/stereotypes/eac_wordpress_base0/instance.rb
452
- - lib/avm/stereotypes/postgresql.rb
453
- - lib/avm/stereotypes/postgresql/instance.rb
454
- - lib/avm/stereotypes/postgresql/instance/data_unit.rb
455
- - lib/avm/stereotypes/postgresql/instance_with.rb
456
- - lib/avm/stereotypes/rails.rb
457
- - lib/avm/stereotypes/rails/instance.rb
458
473
  - lib/avm/sync.rb
459
474
  - lib/avm/tools.rb
460
475
  - lib/avm/tools/runner.rb
461
476
  - lib/avm/tools/runner/eac_rails_base0.rb
462
- - lib/avm/tools/runner/eac_rails_base0/apache_host.rb
463
477
  - lib/avm/tools/runner/eac_rails_base0/apache_path.rb
464
478
  - lib/avm/tools/runner/eac_rails_base0/bundle.rb
465
- - lib/avm/tools/runner/eac_rails_base0/data.rb
466
- - lib/avm/tools/runner/eac_rails_base0/deploy.rb
479
+ - lib/avm/tools/runner/eac_rails_base0/rails_server.rb
467
480
  - lib/avm/tools/runner/eac_rails_base0/runner.rb
468
481
  - lib/avm/tools/runner/eac_redmine_base0.rb
469
- - lib/avm/tools/runner/eac_redmine_base0/bundle.rb
470
482
  - lib/avm/tools/runner/eac_redmine_base0/core_update.rb
471
- - lib/avm/tools/runner/eac_redmine_base0/data.rb
472
- - lib/avm/tools/runner/eac_redmine_base0/data/dump.rb
473
- - lib/avm/tools/runner/eac_redmine_base0/deploy.rb
474
483
  - lib/avm/tools/runner/eac_redmine_base0/docker.rb
475
484
  - lib/avm/tools/runner/eac_redmine_base0/project_rename.rb
476
- - lib/avm/tools/runner/eac_redmine_base0/runner.rb
477
485
  - lib/avm/tools/runner/eac_wordpress_base0.rb
478
- - lib/avm/tools/runner/eac_wordpress_base0/apache_host.rb
479
- - lib/avm/tools/runner/eac_wordpress_base0/data.rb
480
- - lib/avm/tools/runner/eac_wordpress_base0/deploy.rb
481
486
  - lib/avm/tools/runner/files.rb
482
487
  - lib/avm/tools/runner/files/format.rb
483
488
  - lib/avm/tools/runner/files/rotate.rb
@@ -492,11 +497,17 @@ files:
492
497
  - lib/avm/tools/runner/git/revisions_test.rb
493
498
  - lib/avm/tools/runner/git/subrepo.rb
494
499
  - lib/avm/tools/runner/git/subrepo/check.rb
500
+ - lib/avm/tools/runner/instance.rb
501
+ - lib/avm/tools/runner/instance/info.rb
495
502
  - lib/avm/tools/runner/launcher.rb
496
503
  - lib/avm/tools/runner/launcher/instances.rb
497
504
  - lib/avm/tools/runner/launcher/projects.rb
498
505
  - lib/avm/tools/runner/launcher/publish.rb
499
506
  - lib/avm/tools/runner/local_project.rb
507
+ - lib/avm/tools/runner/local_project/eac_writings_base0.rb
508
+ - lib/avm/tools/runner/local_project/eac_writings_base0/build_chapters.rb
509
+ - lib/avm/tools/runner/local_project/eac_writings_base0/build_single.rb
510
+ - lib/avm/tools/runner/local_project/eac_writings_base0/info.rb
500
511
  - lib/avm/tools/runner/local_project/info.rb
501
512
  - lib/avm/tools/runner/local_project/ruby.rb
502
513
  - lib/avm/tools/runner/local_project/ruby/bundler.rb
@@ -548,9 +559,18 @@ files:
548
559
  - lib/eac_launcher/version.rb
549
560
  - template/avm/eac_rails_base0/apache_path/default.conf
550
561
  - template/avm/eac_rails_base0/deploy/config/database.yml.template
562
+ - template/avm/eac_rails_base0/deploy/config/envvars.d/email.yml.template
551
563
  - template/avm/eac_redmine_base0/deploy/config/install.sh.template
552
564
  - template/avm/eac_redmine_base0/deploy/config/secrets.yml
553
565
  - template/avm/eac_webapp_base0/apache_host/no_ssl.conf
566
+ - template/avm/eac_writings_base0/commons/all.tex
567
+ - template/avm/eac_writings_base0/commons/ebook.tex
568
+ - template/avm/eac_writings_base0/commons/images.tex
569
+ - template/avm/eac_writings_base0/commons/links.tex
570
+ - template/avm/eac_writings_base0/commons/portuguese.tex
571
+ - template/avm/eac_writings_base0/commons/source_code.tex
572
+ - template/avm/eac_writings_base0/commons/source_code/java.tex
573
+ - template/avm/eac_writings_base0/commons/utils.tex
554
574
  - template/avm/ruby/gems/generator/gemspec.template
555
575
  - template/avm/ruby/gems/generator/root_lib.template
556
576
  - template/avm/ruby/gems/generator/static/Gemfile
@@ -836,10 +856,10 @@ files:
836
856
  - vendor/eac_ruby_gems_utils/lib/eac_ruby_gems_utils/tests/multiple/result.rb
837
857
  - vendor/eac_ruby_gems_utils/lib/eac_ruby_gems_utils/tests/rspec.rb
838
858
  - vendor/eac_ruby_gems_utils/lib/eac_ruby_gems_utils/version.rb
859
+ - vendor/eac_ruby_gems_utils/spec/code/rubocop_check_spec.rb
839
860
  - vendor/eac_ruby_gems_utils/spec/lib/eac_ruby_gems_utils/gem/version_file_spec.rb
840
861
  - vendor/eac_ruby_gems_utils/spec/lib/eac_ruby_gems_utils/gem/version_file_spec_files/a_version_file.rb
841
862
  - vendor/eac_ruby_gems_utils/spec/lib/eac_ruby_gems_utils/gem_spec.rb
842
- - vendor/eac_ruby_gems_utils/spec/rubocop_check_spec.rb
843
863
  - vendor/eac_ruby_gems_utils/spec/spec_helper.rb
844
864
  - vendor/eac_ruby_gems_utils/spec/support/mygem/Gemfile
845
865
  - vendor/eac_ruby_gems_utils/spec/support/mygem/Gemfile.lock
@@ -854,11 +874,13 @@ files:
854
874
  - vendor/eac_ruby_utils/eac_ruby_utils.gemspec
855
875
  - vendor/eac_ruby_utils/lib/eac_ruby_utils.rb
856
876
  - vendor/eac_ruby_utils/lib/eac_ruby_utils/arguments_consumer.rb
877
+ - vendor/eac_ruby_utils/lib/eac_ruby_utils/blank_not_blank.rb
857
878
  - vendor/eac_ruby_utils/lib/eac_ruby_utils/boolean.rb
858
879
  - vendor/eac_ruby_utils/lib/eac_ruby_utils/by_reference.rb
859
880
  - vendor/eac_ruby_utils/lib/eac_ruby_utils/common_concern.rb
860
881
  - vendor/eac_ruby_utils/lib/eac_ruby_utils/common_constructor.rb
861
882
  - vendor/eac_ruby_utils/lib/eac_ruby_utils/configs.rb
883
+ - vendor/eac_ruby_utils/lib/eac_ruby_utils/configs/base.rb
862
884
  - vendor/eac_ruby_utils/lib/eac_ruby_utils/configs/file.rb
863
885
  - vendor/eac_ruby_utils/lib/eac_ruby_utils/console.rb
864
886
  - vendor/eac_ruby_utils/lib/eac_ruby_utils/console/configs.rb
@@ -891,6 +913,7 @@ files:
891
913
  - vendor/eac_ruby_utils/lib/eac_ruby_utils/envs/ssh_env/terminal.rb
892
914
  - vendor/eac_ruby_utils/lib/eac_ruby_utils/filesystem_cache.rb
893
915
  - vendor/eac_ruby_utils/lib/eac_ruby_utils/fs.rb
916
+ - vendor/eac_ruby_utils/lib/eac_ruby_utils/fs/clearable_directory.rb
894
917
  - vendor/eac_ruby_utils/lib/eac_ruby_utils/fs/extname.rb
895
918
  - vendor/eac_ruby_utils/lib/eac_ruby_utils/fs/temp.rb
896
919
  - vendor/eac_ruby_utils/lib/eac_ruby_utils/fs/temp/directory.rb
@@ -951,6 +974,9 @@ files:
951
974
  - vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/time/default_time_zone_set.rb
952
975
  - vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/time/local_time_zone.rb
953
976
  - vendor/eac_ruby_utils/lib/eac_ruby_utils/paths_hash.rb
977
+ - vendor/eac_ruby_utils/lib/eac_ruby_utils/paths_hash/entry_key_error.rb
978
+ - vendor/eac_ruby_utils/lib/eac_ruby_utils/paths_hash/node.rb
979
+ - vendor/eac_ruby_utils/lib/eac_ruby_utils/paths_hash/path_search.rb
954
980
  - vendor/eac_ruby_utils/lib/eac_ruby_utils/require_sub.rb
955
981
  - vendor/eac_ruby_utils/lib/eac_ruby_utils/rspec.rb
956
982
  - vendor/eac_ruby_utils/lib/eac_ruby_utils/rspec/conditional.rb
@@ -974,6 +1000,7 @@ files:
974
1000
  - vendor/eac_ruby_utils/lib/eac_ruby_utils/version.rb
975
1001
  - vendor/eac_ruby_utils/lib/eac_ruby_utils/yaml.rb
976
1002
  - vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/arguments_consumer_spec.rb
1003
+ - vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/blank_not_blank_spec.rb
977
1004
  - vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/common_concern_spec.rb
978
1005
  - vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/common_constructor_spec.rb
979
1006
  - vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/configs_spec.rb