avm 0.44.0 → 0.45.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/entries/auto_values/entry.rb +11 -4
- data/lib/avm/entries/jobs/base.rb +62 -0
- data/lib/avm/entries/jobs/variables_source/read_entry.rb +50 -0
- data/lib/avm/entries/jobs/variables_source.rb +15 -0
- data/lib/avm/entries/jobs/with_variables_source.rb +15 -0
- data/lib/avm/{jobs.rb → entries/jobs.rb} +4 -2
- data/lib/avm/instances/base/entry_keys.rb +1 -1
- data/lib/avm/instances/entry_keys.rb +1 -1
- data/lib/avm/rspec/setup.rb +7 -8
- data/lib/avm/rspec/shared_examples/entries_values.rb +23 -0
- data/lib/avm/version.rb +1 -1
- metadata +10 -7
- data/lib/avm/jobs/base.rb +0 -63
- data/lib/avm/jobs/variables_source.rb +0 -22
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: edce5f54d8e35b2991eca7c296980c8102a3f9de6079df2c3841660d91a5a09a
|
4
|
+
data.tar.gz: 1f3bb4e92e4a1d342490b54843f505c641479eec2af609dfb5c70ee81de4101f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2f827370664e3b78a4808a57227b5791da8a9185522a11081a6d50f05493648135e0734a680f2abbc1fc902775249f4011cad1f669bef8f6127258edd7b357f9
|
7
|
+
data.tar.gz: c95a5acd8db7c9c8ceb104cd203c9a30bdd1438de79309869cac1c3ed1ab1d8178b91f42b436a63ec312a54fe6ef9166c9f7395d26b35b826633856f7d43af03
|
@@ -8,15 +8,22 @@ module Avm
|
|
8
8
|
module AutoValues
|
9
9
|
class Entry
|
10
10
|
class << self
|
11
|
-
|
12
|
-
|
11
|
+
# @param path [EacConfig::EntryPath]
|
12
|
+
# @return String
|
13
|
+
def auto_value_method_name(path)
|
14
|
+
"auto_#{::EacConfig::EntryPath.assert(path).to_string.gsub('.', '_')}"
|
13
15
|
end
|
14
16
|
end
|
15
17
|
|
16
|
-
|
18
|
+
# @!method initialize(entries_provider, path)
|
19
|
+
# @param entries_provider
|
20
|
+
# @param path [EacConfig::EntryPath]
|
21
|
+
common_constructor :entries_provider, :path do
|
22
|
+
self.path = ::EacConfig::EntryPath.assert(path)
|
23
|
+
end
|
17
24
|
|
18
25
|
def auto_value_method
|
19
|
-
self.class.auto_value_method_name(
|
26
|
+
self.class.auto_value_method_name(path)
|
20
27
|
end
|
21
28
|
|
22
29
|
def found?
|
@@ -0,0 +1,62 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avm/entries/jobs/with_variables_source'
|
4
|
+
require 'avm/result'
|
5
|
+
require 'eac_cli/core_ext'
|
6
|
+
|
7
|
+
module Avm
|
8
|
+
module Entries
|
9
|
+
module Jobs
|
10
|
+
module Base
|
11
|
+
common_concern do
|
12
|
+
include ::ActiveSupport::Callbacks
|
13
|
+
include ::Avm::Entries::Jobs::WithVariablesSource
|
14
|
+
|
15
|
+
enable_speaker
|
16
|
+
enable_simple_cache
|
17
|
+
enable_listable
|
18
|
+
common_constructor :instance, :options, default: [{}] do
|
19
|
+
if option_list.present?
|
20
|
+
self.options = option_list.hash_keys_validate!(options.symbolize_keys)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
define_callbacks(*jobs)
|
24
|
+
end
|
25
|
+
|
26
|
+
module ClassMethods
|
27
|
+
def jobs
|
28
|
+
const_get('JOBS').dup
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
module InstanceMethods
|
33
|
+
def option_list
|
34
|
+
nil
|
35
|
+
end
|
36
|
+
|
37
|
+
def run
|
38
|
+
start_banner if respond_to?(:start_banner)
|
39
|
+
run_jobs
|
40
|
+
::Avm::Result.success('Done!')
|
41
|
+
rescue ::Avm::Result::Error => e
|
42
|
+
e.to_result
|
43
|
+
end
|
44
|
+
|
45
|
+
protected
|
46
|
+
|
47
|
+
def run_jobs
|
48
|
+
jobs.each do |job|
|
49
|
+
run_callbacks job do
|
50
|
+
send(job)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
def jobs
|
56
|
+
self.class.jobs
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
|
5
|
+
module Avm
|
6
|
+
module Entries
|
7
|
+
module Jobs
|
8
|
+
class VariablesSource
|
9
|
+
class ReadEntry
|
10
|
+
enable_method_class
|
11
|
+
common_constructor :variables_source, :path, :options, default: [{}]
|
12
|
+
delegate :instance, :job, to: :variables_source
|
13
|
+
|
14
|
+
def result
|
15
|
+
return result_from_job if result_from_job?
|
16
|
+
return result_from_instance_method if result_from_instance_method?
|
17
|
+
|
18
|
+
result_from_instance_entry
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
|
23
|
+
def path_method_name
|
24
|
+
path.gsub('.', '_').underscore
|
25
|
+
end
|
26
|
+
|
27
|
+
def result_from_instance_entry
|
28
|
+
instance.read_entry(path, options)
|
29
|
+
end
|
30
|
+
|
31
|
+
def result_from_instance_method
|
32
|
+
instance.send(path_method_name)
|
33
|
+
end
|
34
|
+
|
35
|
+
def result_from_instance_method?
|
36
|
+
instance.respond_to?(path_method_name, true)
|
37
|
+
end
|
38
|
+
|
39
|
+
def result_from_job
|
40
|
+
job.send(path_method_name)
|
41
|
+
end
|
42
|
+
|
43
|
+
def result_from_job?
|
44
|
+
job.respond_to?(path_method_name, true)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
|
5
|
+
module Avm
|
6
|
+
module Entries
|
7
|
+
module Jobs
|
8
|
+
class VariablesSource
|
9
|
+
require_sub __FILE__, require_dependency: true
|
10
|
+
common_constructor :job
|
11
|
+
delegate :instance, to: :job
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avm/entries/jobs/variables_source'
|
4
|
+
|
5
|
+
module Avm
|
6
|
+
module Entries
|
7
|
+
module Jobs
|
8
|
+
module WithVariablesSource
|
9
|
+
def variables_source
|
10
|
+
::Avm::Entries::Jobs::VariablesSource.new(self)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -35,7 +35,7 @@ module Avm
|
|
35
35
|
'' => %w[id from reply_to],
|
36
36
|
smtp: URI_FIELDS + %w[address domain authentication openssl_verify_mode starttls_auto tls]
|
37
37
|
},
|
38
|
-
web: URI_FIELDS
|
38
|
+
web: URI_FIELDS
|
39
39
|
}.each { |prefix, suffixes| keys_consts_set(prefix, suffixes) }
|
40
40
|
end
|
41
41
|
end
|
data/lib/avm/rspec/setup.rb
CHANGED
@@ -5,17 +5,16 @@ require 'eac_ruby_utils/core_ext'
|
|
5
5
|
module Avm
|
6
6
|
module Rspec
|
7
7
|
module Setup
|
8
|
-
|
9
|
-
obj.setup_in_avm_registry_example
|
10
|
-
obj.setup_not_in_avm_registry_example
|
11
|
-
end
|
8
|
+
EXAMPLES = %w[entries_values in_avm_registry not_in_avm_registry].freeze
|
12
9
|
|
13
|
-
def
|
14
|
-
|
10
|
+
def self.extended(obj)
|
11
|
+
obj.setup_examples
|
15
12
|
end
|
16
13
|
|
17
|
-
def
|
18
|
-
|
14
|
+
def setup_examples
|
15
|
+
EXAMPLES.each do |example|
|
16
|
+
require "avm/rspec/shared_examples/#{example}"
|
17
|
+
end
|
19
18
|
end
|
20
19
|
end
|
21
20
|
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
|
5
|
+
::RSpec.shared_examples 'entries_values' do |spec_file, expected_values|
|
6
|
+
describe '#read_entry' do
|
7
|
+
config_path = spec_file.to_pathname
|
8
|
+
config_path = config_path.dirname.join("#{config_path.basename_noext}_files", 'config.yml')
|
9
|
+
::EacRubyUtils::Rspec.default_setup.stub_eac_config_node(self, config_path)
|
10
|
+
|
11
|
+
expected_values.each do |instance_id, values|
|
12
|
+
values.each do |input, expected|
|
13
|
+
context "when a auto value is requested for \"#{instance_id}.#{input}\"" do
|
14
|
+
let(:instance) { described_class.by_id(instance_id) }
|
15
|
+
|
16
|
+
it ".read_entry should return \"#{expected}\"" do
|
17
|
+
expect(instance.read_entry(input)).to eq(expected)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
data/lib/avm/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: avm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.45.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eduardo H. Bogoni
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-09-
|
11
|
+
date: 2022-09-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: eac_cli
|
@@ -73,7 +73,7 @@ dependencies:
|
|
73
73
|
version: '0.12'
|
74
74
|
- - ">="
|
75
75
|
- !ruby/object:Gem::Version
|
76
|
-
version: 0.12.
|
76
|
+
version: 0.12.3
|
77
77
|
type: :runtime
|
78
78
|
prerelease: false
|
79
79
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -83,7 +83,7 @@ dependencies:
|
|
83
83
|
version: '0.12'
|
84
84
|
- - ">="
|
85
85
|
- !ruby/object:Gem::Version
|
86
|
-
version: 0.12.
|
86
|
+
version: 0.12.3
|
87
87
|
- !ruby/object:Gem::Dependency
|
88
88
|
name: eac_ruby_utils
|
89
89
|
requirement: !ruby/object:Gem::Requirement
|
@@ -241,6 +241,11 @@ files:
|
|
241
241
|
- lib/avm/entries/base/uri_components_entries_values/path_component.rb
|
242
242
|
- lib/avm/entries/base/uri_components_entries_values/url_component.rb
|
243
243
|
- lib/avm/entries/entry.rb
|
244
|
+
- lib/avm/entries/jobs.rb
|
245
|
+
- lib/avm/entries/jobs/base.rb
|
246
|
+
- lib/avm/entries/jobs/variables_source.rb
|
247
|
+
- lib/avm/entries/jobs/variables_source/read_entry.rb
|
248
|
+
- lib/avm/entries/jobs/with_variables_source.rb
|
244
249
|
- lib/avm/entries/keys_constants_set.rb
|
245
250
|
- lib/avm/entries/uri_builder.rb
|
246
251
|
- lib/avm/executables.rb
|
@@ -259,9 +264,6 @@ files:
|
|
259
264
|
- lib/avm/instances/docker_image.rb
|
260
265
|
- lib/avm/instances/entry_keys.rb
|
261
266
|
- lib/avm/instances/runner.rb
|
262
|
-
- lib/avm/jobs.rb
|
263
|
-
- lib/avm/jobs/base.rb
|
264
|
-
- lib/avm/jobs/variables_source.rb
|
265
267
|
- lib/avm/launcher/errors/base.rb
|
266
268
|
- lib/avm/launcher/errors/non_project.rb
|
267
269
|
- lib/avm/launcher/paths/real.rb
|
@@ -282,6 +284,7 @@ files:
|
|
282
284
|
- lib/avm/result.rb
|
283
285
|
- lib/avm/rspec.rb
|
284
286
|
- lib/avm/rspec/setup.rb
|
287
|
+
- lib/avm/rspec/shared_examples/entries_values.rb
|
285
288
|
- lib/avm/rspec/shared_examples/in_avm_registry.rb
|
286
289
|
- lib/avm/rspec/shared_examples/not_in_avm_registry.rb
|
287
290
|
- lib/avm/runners/base.rb
|
data/lib/avm/jobs/base.rb
DELETED
@@ -1,63 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'avm/jobs/variables_source'
|
4
|
-
require 'avm/result'
|
5
|
-
require 'eac_cli/core_ext'
|
6
|
-
|
7
|
-
module Avm
|
8
|
-
module Jobs
|
9
|
-
module Base
|
10
|
-
common_concern do
|
11
|
-
include ::ActiveSupport::Callbacks
|
12
|
-
|
13
|
-
enable_speaker
|
14
|
-
enable_simple_cache
|
15
|
-
enable_listable
|
16
|
-
common_constructor :instance, :options, default: [{}] do
|
17
|
-
if option_list.present?
|
18
|
-
self.options = option_list.hash_keys_validate!(options.symbolize_keys)
|
19
|
-
end
|
20
|
-
end
|
21
|
-
define_callbacks(*jobs)
|
22
|
-
end
|
23
|
-
|
24
|
-
module ClassMethods
|
25
|
-
def jobs
|
26
|
-
const_get('JOBS').dup
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
module InstanceMethods
|
31
|
-
def option_list
|
32
|
-
nil
|
33
|
-
end
|
34
|
-
|
35
|
-
def run
|
36
|
-
start_banner if respond_to?(:start_banner)
|
37
|
-
run_jobs
|
38
|
-
::Avm::Result.success('Done!')
|
39
|
-
rescue ::Avm::Result::Error => e
|
40
|
-
e.to_result
|
41
|
-
end
|
42
|
-
|
43
|
-
def variables_source
|
44
|
-
::Avm::Jobs::VariablesSource.new(self, instance)
|
45
|
-
end
|
46
|
-
|
47
|
-
protected
|
48
|
-
|
49
|
-
def run_jobs
|
50
|
-
jobs.each do |job|
|
51
|
-
run_callbacks job do
|
52
|
-
send(job)
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
def jobs
|
58
|
-
self.class.jobs
|
59
|
-
end
|
60
|
-
end
|
61
|
-
end
|
62
|
-
end
|
63
|
-
end
|
@@ -1,22 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'eac_ruby_utils/core_ext'
|
4
|
-
|
5
|
-
module Avm
|
6
|
-
module Jobs
|
7
|
-
class VariablesSource
|
8
|
-
common_constructor :job, :instance
|
9
|
-
|
10
|
-
def read_entry(path, options = {})
|
11
|
-
entry_from_job(path) || instance.read_entry(path, options)
|
12
|
-
end
|
13
|
-
|
14
|
-
private
|
15
|
-
|
16
|
-
def entry_from_job(path)
|
17
|
-
method = path.gsub('.', '_').underscore
|
18
|
-
return job.send(method) if job.respond_to?(method, true)
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|