avm-tools 0.121.2 → 0.124.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/Gemfile +3 -0
- data/lib/avm/tools/runner/app_src/info.rb +19 -0
- data/lib/avm/tools/runner/application_stereotypes/list.rb +31 -0
- data/lib/avm/tools/runner/application_stereotypes.rb +16 -0
- data/lib/avm/tools/version.rb +1 -1
- metadata +6 -63
- data/lib/avm/tools/runner/eac_redmine_base0/dev_docker.rb +0 -17
- data/sub/eac_config/Gemfile +0 -5
- data/sub/eac_config/eac_config.gemspec +0 -19
- data/sub/eac_config/lib/eac_config/entry.rb +0 -53
- data/sub/eac_config/lib/eac_config/entry_path.rb +0 -41
- data/sub/eac_config/lib/eac_config/envvars_node/entry.rb +0 -54
- data/sub/eac_config/lib/eac_config/envvars_node.rb +0 -25
- data/sub/eac_config/lib/eac_config/load_nodes_search.rb +0 -39
- data/sub/eac_config/lib/eac_config/load_path.rb +0 -28
- data/sub/eac_config/lib/eac_config/node.rb +0 -67
- data/sub/eac_config/lib/eac_config/node_entry.rb +0 -22
- data/sub/eac_config/lib/eac_config/node_uri.rb +0 -38
- data/sub/eac_config/lib/eac_config/old_configs/base.rb +0 -43
- data/sub/eac_config/lib/eac_config/old_configs/file.rb +0 -47
- data/sub/eac_config/lib/eac_config/old_configs.rb +0 -75
- data/sub/eac_config/lib/eac_config/paths_hash/entry_key_error.rb +0 -8
- data/sub/eac_config/lib/eac_config/paths_hash/node.rb +0 -67
- data/sub/eac_config/lib/eac_config/paths_hash/path_search.rb +0 -39
- data/sub/eac_config/lib/eac_config/paths_hash.rb +0 -63
- data/sub/eac_config/lib/eac_config/rspec/setup.rb +0 -65
- data/sub/eac_config/lib/eac_config/rspec.rb +0 -9
- data/sub/eac_config/lib/eac_config/version.rb +0 -5
- data/sub/eac_config/lib/eac_config/yaml_file_node/entry.rb +0 -36
- data/sub/eac_config/lib/eac_config/yaml_file_node.rb +0 -47
- data/sub/eac_config/lib/eac_config.rb +0 -7
- data/sub/eac_config/spec/lib/eac_config/entry_path_spec.rb +0 -30
- data/sub/eac_config/spec/lib/eac_config/envvars_node/entry_spec.rb +0 -14
- data/sub/eac_config/spec/lib/eac_config/envvars_node_spec.rb +0 -40
- data/sub/eac_config/spec/lib/eac_config/old_configs_spec.rb +0 -46
- data/sub/eac_config/spec/lib/eac_config/paths_hash_spec.rb +0 -88
- data/sub/eac_config/spec/lib/eac_config/yaml_file_node_spec.rb +0 -52
- data/sub/eac_config/spec/lib/eac_config/yaml_file_node_spec_files/storage1.yaml +0 -6
- data/sub/eac_config/spec/lib/eac_config/yaml_file_node_spec_files/storage1_1.yaml +0 -2
- data/sub/eac_config/spec/lib/eac_config/yaml_file_node_spec_files/storage1_2/storage1_2_1.yaml +0 -2
- data/sub/eac_config/spec/lib/eac_config/yaml_file_node_spec_files/storage1_2.yaml +0 -4
- data/sub/eac_config/spec/rubocop_spec.rb +0 -3
- data/sub/eac_config/spec/spec_helper.rb +0 -4
- data/sub/eac_docker/Gemfile +0 -5
- data/sub/eac_docker/eac_docker.gemspec +0 -19
- data/sub/eac_docker/lib/eac_docker/container.rb +0 -78
- data/sub/eac_docker/lib/eac_docker/debug.rb +0 -15
- data/sub/eac_docker/lib/eac_docker/executables.rb +0 -18
- data/sub/eac_docker/lib/eac_docker/images/base.rb +0 -14
- data/sub/eac_docker/lib/eac_docker/images/coded.rb +0 -43
- data/sub/eac_docker/lib/eac_docker/images/named.rb +0 -30
- data/sub/eac_docker/lib/eac_docker/images/templatized.rb +0 -41
- data/sub/eac_docker/lib/eac_docker/images.rb +0 -9
- data/sub/eac_docker/lib/eac_docker/registry.rb +0 -17
- data/sub/eac_docker/lib/eac_docker/rspec/setup.rb +0 -17
- data/sub/eac_docker/lib/eac_docker/rspec.rb +0 -9
- data/sub/eac_docker/lib/eac_docker/version.rb +0 -5
- data/sub/eac_docker/lib/eac_docker.rb +0 -7
- data/sub/eac_docker/spec/lib/eac_docker/executables_spec.rb +0 -9
- data/sub/eac_docker/spec/lib/eac_docker/images/coded_spec.rb +0 -12
- data/sub/eac_docker/spec/lib/eac_docker/images/coded_spec_files/image1/Dockerfile +0 -1
- data/sub/eac_docker/spec/lib/eac_docker/images/templatized_spec.rb +0 -18
- data/sub/eac_docker/spec/lib/eac_docker/images/templatized_spec_files/stub_docker_image/Dockerfile +0 -1
- data/sub/eac_docker/spec/rubocop_spec.rb +0 -3
- data/sub/eac_docker/spec/spec_helper.rb +0 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '08cbe8be7452f80405bfbc8fe71f64bc84b797af3399ee4d35c1d218065f7a98'
|
4
|
+
data.tar.gz: ae959f3f8c6c7e70da1c3dd4d425d8cda2fe73b27a8bd806b4bf24e7db424b53
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ef1e039ba2a5ff3be49286b37fb1d17b15561960d53458d55c011ecaec3e80bed22fd88caa5be6a8b5ba2ff09a1f60cddce412710f6aa44f64909c07ec4ce5d4
|
7
|
+
data.tar.gz: b560513dcf791a0bec5287054e3f4c18e5c71c3099b1b4f2d1617f8dd742cccfe6802a0c6547b46799bf8570b0aa498dab40dbaf299f26f6fa6b26cb74094cde
|
data/Gemfile
CHANGED
@@ -9,11 +9,15 @@ module Avm
|
|
9
9
|
class Info
|
10
10
|
runner_with :help do
|
11
11
|
desc 'Show information about local project instance.'
|
12
|
+
bool_opt '-p', '--parent', 'Show the parent source.'
|
13
|
+
bool_opt '-t', '--tests', 'Show test commands.'
|
12
14
|
end
|
13
15
|
|
14
16
|
def run
|
15
17
|
show_instance
|
16
18
|
show_source
|
19
|
+
show_parent
|
20
|
+
show_test_commands
|
17
21
|
end
|
18
22
|
|
19
23
|
private
|
@@ -23,11 +27,26 @@ module Avm
|
|
23
27
|
infov 'Launcher stereotypes', instance.stereotypes.map(&:label).join(', ')
|
24
28
|
end
|
25
29
|
|
30
|
+
def show_parent
|
31
|
+
return unless parsed.parent?
|
32
|
+
|
33
|
+
infov 'Parent', runner_context.call(:subject).parent
|
34
|
+
end
|
35
|
+
|
26
36
|
def show_source
|
27
37
|
infov 'Stereotype', runner_context.call(:subject).class
|
28
38
|
infov 'SCM', runner_context.call(:subject).scm
|
29
39
|
end
|
30
40
|
|
41
|
+
def show_test_commands
|
42
|
+
return unless parsed.tests?
|
43
|
+
|
44
|
+
infov 'Test commands', runner_context.call(:subject).test_commands.count
|
45
|
+
runner_context.call(:subject).test_commands.each do |name, command|
|
46
|
+
infov " * #{name}", command
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
31
50
|
def instance
|
32
51
|
runner_context.call(:instance)
|
33
52
|
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avm/tools/core_ext'
|
4
|
+
|
5
|
+
module Avm
|
6
|
+
module Tools
|
7
|
+
class Runner
|
8
|
+
class ApplicationStereotypes
|
9
|
+
class List
|
10
|
+
runner_with :help, :output
|
11
|
+
|
12
|
+
def run
|
13
|
+
infov 'Found', stereotypes.count
|
14
|
+
run_output
|
15
|
+
end
|
16
|
+
|
17
|
+
def output_content
|
18
|
+
stereotypes.map { |s| "#{s}\n" }.join
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
|
23
|
+
def stereotypes
|
24
|
+
::Avm::Registry.application_stereotypes.available
|
25
|
+
.sort_by { |s| [s.name, s.namespace_module] }
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
data/lib/avm/tools/version.rb
CHANGED
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.124.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: 2022-07-
|
11
|
+
date: 2022-07-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aranha-parsers
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '0.
|
33
|
+
version: '0.27'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '0.
|
40
|
+
version: '0.27'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: avm-eac_asciidoctor_base0
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -371,11 +371,12 @@ files:
|
|
371
371
|
- lib/avm/tools/runner/app_src/test.rb
|
372
372
|
- lib/avm/tools/runner/app_src/update.rb
|
373
373
|
- lib/avm/tools/runner/app_src/version_bump.rb
|
374
|
+
- lib/avm/tools/runner/application_stereotypes.rb
|
375
|
+
- lib/avm/tools/runner/application_stereotypes/list.rb
|
374
376
|
- lib/avm/tools/runner/config.rb
|
375
377
|
- lib/avm/tools/runner/config/load_path.rb
|
376
378
|
- lib/avm/tools/runner/eac_asciidoctor_base0.rb
|
377
379
|
- lib/avm/tools/runner/eac_redmine_base0.rb
|
378
|
-
- lib/avm/tools/runner/eac_redmine_base0/dev_docker.rb
|
379
380
|
- lib/avm/tools/runner/eac_redmine_base0/docker.rb
|
380
381
|
- lib/avm/tools/runner/eac_redmine_base0/project_rename.rb
|
381
382
|
- lib/avm/tools/runner/eac_webapp_base0.rb
|
@@ -550,64 +551,6 @@ files:
|
|
550
551
|
- sub/avm-git/spec/lib/avm/git/scms/git_subrepo_spec.rb
|
551
552
|
- sub/avm-git/spec/rubocop_spec.rb
|
552
553
|
- sub/avm-git/spec/spec_helper.rb
|
553
|
-
- sub/eac_config/Gemfile
|
554
|
-
- sub/eac_config/eac_config.gemspec
|
555
|
-
- sub/eac_config/lib/eac_config.rb
|
556
|
-
- sub/eac_config/lib/eac_config/entry.rb
|
557
|
-
- sub/eac_config/lib/eac_config/entry_path.rb
|
558
|
-
- sub/eac_config/lib/eac_config/envvars_node.rb
|
559
|
-
- sub/eac_config/lib/eac_config/envvars_node/entry.rb
|
560
|
-
- sub/eac_config/lib/eac_config/load_nodes_search.rb
|
561
|
-
- sub/eac_config/lib/eac_config/load_path.rb
|
562
|
-
- sub/eac_config/lib/eac_config/node.rb
|
563
|
-
- sub/eac_config/lib/eac_config/node_entry.rb
|
564
|
-
- sub/eac_config/lib/eac_config/node_uri.rb
|
565
|
-
- sub/eac_config/lib/eac_config/old_configs.rb
|
566
|
-
- sub/eac_config/lib/eac_config/old_configs/base.rb
|
567
|
-
- sub/eac_config/lib/eac_config/old_configs/file.rb
|
568
|
-
- sub/eac_config/lib/eac_config/paths_hash.rb
|
569
|
-
- sub/eac_config/lib/eac_config/paths_hash/entry_key_error.rb
|
570
|
-
- sub/eac_config/lib/eac_config/paths_hash/node.rb
|
571
|
-
- sub/eac_config/lib/eac_config/paths_hash/path_search.rb
|
572
|
-
- sub/eac_config/lib/eac_config/rspec.rb
|
573
|
-
- sub/eac_config/lib/eac_config/rspec/setup.rb
|
574
|
-
- sub/eac_config/lib/eac_config/version.rb
|
575
|
-
- sub/eac_config/lib/eac_config/yaml_file_node.rb
|
576
|
-
- sub/eac_config/lib/eac_config/yaml_file_node/entry.rb
|
577
|
-
- sub/eac_config/spec/lib/eac_config/entry_path_spec.rb
|
578
|
-
- sub/eac_config/spec/lib/eac_config/envvars_node/entry_spec.rb
|
579
|
-
- sub/eac_config/spec/lib/eac_config/envvars_node_spec.rb
|
580
|
-
- sub/eac_config/spec/lib/eac_config/old_configs_spec.rb
|
581
|
-
- sub/eac_config/spec/lib/eac_config/paths_hash_spec.rb
|
582
|
-
- sub/eac_config/spec/lib/eac_config/yaml_file_node_spec.rb
|
583
|
-
- sub/eac_config/spec/lib/eac_config/yaml_file_node_spec_files/storage1.yaml
|
584
|
-
- sub/eac_config/spec/lib/eac_config/yaml_file_node_spec_files/storage1_1.yaml
|
585
|
-
- sub/eac_config/spec/lib/eac_config/yaml_file_node_spec_files/storage1_2.yaml
|
586
|
-
- sub/eac_config/spec/lib/eac_config/yaml_file_node_spec_files/storage1_2/storage1_2_1.yaml
|
587
|
-
- sub/eac_config/spec/rubocop_spec.rb
|
588
|
-
- sub/eac_config/spec/spec_helper.rb
|
589
|
-
- sub/eac_docker/Gemfile
|
590
|
-
- sub/eac_docker/eac_docker.gemspec
|
591
|
-
- sub/eac_docker/lib/eac_docker.rb
|
592
|
-
- sub/eac_docker/lib/eac_docker/container.rb
|
593
|
-
- sub/eac_docker/lib/eac_docker/debug.rb
|
594
|
-
- sub/eac_docker/lib/eac_docker/executables.rb
|
595
|
-
- sub/eac_docker/lib/eac_docker/images.rb
|
596
|
-
- sub/eac_docker/lib/eac_docker/images/base.rb
|
597
|
-
- sub/eac_docker/lib/eac_docker/images/coded.rb
|
598
|
-
- sub/eac_docker/lib/eac_docker/images/named.rb
|
599
|
-
- sub/eac_docker/lib/eac_docker/images/templatized.rb
|
600
|
-
- sub/eac_docker/lib/eac_docker/registry.rb
|
601
|
-
- sub/eac_docker/lib/eac_docker/rspec.rb
|
602
|
-
- sub/eac_docker/lib/eac_docker/rspec/setup.rb
|
603
|
-
- sub/eac_docker/lib/eac_docker/version.rb
|
604
|
-
- sub/eac_docker/spec/lib/eac_docker/executables_spec.rb
|
605
|
-
- sub/eac_docker/spec/lib/eac_docker/images/coded_spec.rb
|
606
|
-
- sub/eac_docker/spec/lib/eac_docker/images/coded_spec_files/image1/Dockerfile
|
607
|
-
- sub/eac_docker/spec/lib/eac_docker/images/templatized_spec.rb
|
608
|
-
- sub/eac_docker/spec/lib/eac_docker/images/templatized_spec_files/stub_docker_image/Dockerfile
|
609
|
-
- sub/eac_docker/spec/rubocop_spec.rb
|
610
|
-
- sub/eac_docker/spec/spec_helper.rb
|
611
554
|
- sub/eac_git/Gemfile
|
612
555
|
- sub/eac_git/eac_git.gemspec
|
613
556
|
- sub/eac_git/lib/eac_git.rb
|
@@ -1,17 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'avm/docker/runner'
|
4
|
-
|
5
|
-
module Avm
|
6
|
-
module Tools
|
7
|
-
class Runner
|
8
|
-
class EacRedmineBase0 < ::Avm::EacRailsBase1::Runner
|
9
|
-
class DevDocker < ::Avm::Docker::Runner
|
10
|
-
def docker_image
|
11
|
-
::Avm::EacUbuntuBase0::DockerImage
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
data/sub/eac_config/Gemfile
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
$LOAD_PATH.push File.expand_path('lib', __dir__)
|
4
|
-
|
5
|
-
require 'eac_config/version'
|
6
|
-
|
7
|
-
Gem::Specification.new do |s|
|
8
|
-
s.name = 'eac_config'
|
9
|
-
s.version = EacConfig::VERSION
|
10
|
-
s.authors = ['Put here the authors']
|
11
|
-
s.summary = 'Put here de description.'
|
12
|
-
|
13
|
-
s.files = Dir['{lib}/**/*']
|
14
|
-
|
15
|
-
s.add_dependency 'addressable'
|
16
|
-
s.add_dependency 'eac_ruby_utils', '~> 0.83'
|
17
|
-
|
18
|
-
s.add_development_dependency 'eac_ruby_gem_support', '~> 0.5.1'
|
19
|
-
end
|
@@ -1,53 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'eac_config/entry_path'
|
4
|
-
require 'eac_ruby_utils/core_ext'
|
5
|
-
|
6
|
-
module EacConfig
|
7
|
-
class Entry
|
8
|
-
enable_simple_cache
|
9
|
-
common_constructor :root_node, :path do
|
10
|
-
self.path = ::EacConfig::EntryPath.assert(path)
|
11
|
-
end
|
12
|
-
|
13
|
-
def found?
|
14
|
-
node_entry.if_present(false, &:found?)
|
15
|
-
end
|
16
|
-
|
17
|
-
def found_node
|
18
|
-
node_entry.if_present(&:node)
|
19
|
-
end
|
20
|
-
|
21
|
-
def secret_value
|
22
|
-
node_entry.if_present(&:secret_value)
|
23
|
-
end
|
24
|
-
|
25
|
-
def value
|
26
|
-
node_entry.if_present(&:value)
|
27
|
-
end
|
28
|
-
|
29
|
-
def value=(a_value)
|
30
|
-
write_node.self_entry(path).value = a_value
|
31
|
-
end
|
32
|
-
|
33
|
-
def write_node
|
34
|
-
root_node.write_node || root_node
|
35
|
-
end
|
36
|
-
|
37
|
-
private
|
38
|
-
|
39
|
-
def node_entry_uncached
|
40
|
-
node_entry_from_root || node_entry_from_load_path
|
41
|
-
end
|
42
|
-
|
43
|
-
def node_entry_from_load_path_uncached
|
44
|
-
root_node.recursive_loaded_nodes.lazy.map { |loaded_node| loaded_node.self_entry(path) }
|
45
|
-
.find(&:found?)
|
46
|
-
end
|
47
|
-
|
48
|
-
def node_entry_from_root_uncached
|
49
|
-
e = root_node.self_entry(path)
|
50
|
-
e.found? ? e : nil
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
@@ -1,41 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'eac_ruby_utils/core_ext'
|
4
|
-
|
5
|
-
module EacConfig
|
6
|
-
class EntryPath
|
7
|
-
PART_SEPARATOR = '.'
|
8
|
-
|
9
|
-
class << self
|
10
|
-
def assert(source)
|
11
|
-
source.is_a?(self) ? source : new(build_parts(source))
|
12
|
-
end
|
13
|
-
|
14
|
-
def build_parts(source)
|
15
|
-
return validate_parts!(source.split(PART_SEPARATOR)) if source.is_a?(::String)
|
16
|
-
return validate_parts!(source.flat_map { |part| build_parts(part) }) if
|
17
|
-
source.is_a?(::Enumerable)
|
18
|
-
|
19
|
-
build_parts(source.to_s)
|
20
|
-
end
|
21
|
-
|
22
|
-
def validate_parts!(parts)
|
23
|
-
parts.assert_argument(::Enumerable, 'parts')
|
24
|
-
parts.each_with_index do |part, index|
|
25
|
-
raise ::ArgumentError, "Part #{index} of #{parts} is blank" if part.blank?
|
26
|
-
raise ::ArgumentError, "Part #{index} is not a string" unless part.is_a?(::String)
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
attr_reader :parts
|
32
|
-
|
33
|
-
def initialize(parts)
|
34
|
-
@parts = parts.to_a.freeze
|
35
|
-
end
|
36
|
-
|
37
|
-
def to_s
|
38
|
-
"#{self.class}[#{parts.join(PART_SEPARATOR)}]"
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
@@ -1,54 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'eac_config/entry_path'
|
4
|
-
require 'eac_config/node_entry'
|
5
|
-
require 'eac_ruby_utils/blank_not_blank'
|
6
|
-
require 'eac_ruby_utils/core_ext'
|
7
|
-
require 'eac_ruby_utils/yaml'
|
8
|
-
|
9
|
-
module EacConfig
|
10
|
-
class EnvvarsNode
|
11
|
-
class Entry < ::EacConfig::NodeEntry
|
12
|
-
class << self
|
13
|
-
def entry_path_to_envvar_name(path)
|
14
|
-
::EacConfig::EntryPath.assert(path).parts.join('_').gsub(/[^a-z0-9_]/i, '')
|
15
|
-
.gsub(/\A_+/, '').gsub(/_+\z/, '').gsub(/_{2,}/, '_').upcase
|
16
|
-
end
|
17
|
-
|
18
|
-
def from_value(string)
|
19
|
-
return nil if string.nil?
|
20
|
-
return ::EacRubyUtils::Yaml.load(string) if string.start_with?('---')
|
21
|
-
|
22
|
-
string
|
23
|
-
end
|
24
|
-
|
25
|
-
def to_value(object)
|
26
|
-
return nil if object.nil?
|
27
|
-
return object if object.is_a?(String)
|
28
|
-
|
29
|
-
::EacRubyUtils::Yaml.dump(object)
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
enable_simple_cache
|
34
|
-
|
35
|
-
def found?
|
36
|
-
ENV.key?(envvar_name)
|
37
|
-
end
|
38
|
-
|
39
|
-
def value
|
40
|
-
self.class.from_value(ENV[envvar_name])
|
41
|
-
end
|
42
|
-
|
43
|
-
def value=(a_value)
|
44
|
-
ENV[envvar_name] = self.class.to_value(a_value)
|
45
|
-
end
|
46
|
-
|
47
|
-
private
|
48
|
-
|
49
|
-
def envvar_name_uncached
|
50
|
-
self.class.entry_path_to_envvar_name(path)
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|
@@ -1,25 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'addressable'
|
4
|
-
require 'eac_config/node'
|
5
|
-
require 'eac_ruby_utils/core_ext'
|
6
|
-
|
7
|
-
module EacConfig
|
8
|
-
# A node that read/write entries from environment variables.
|
9
|
-
class EnvvarsNode
|
10
|
-
require_sub __FILE__
|
11
|
-
include ::EacConfig::Node
|
12
|
-
|
13
|
-
URI = ::Addressable::URI.parse('self://envvars')
|
14
|
-
|
15
|
-
class << self
|
16
|
-
def from_uri(uri)
|
17
|
-
return new if uri == URI
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
def url
|
22
|
-
URI
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
@@ -1,39 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'eac_ruby_utils/core_ext'
|
4
|
-
|
5
|
-
module EacConfig
|
6
|
-
class LoadNodesSearch
|
7
|
-
common_constructor :root_node do
|
8
|
-
add_next_pending until pending.empty?
|
9
|
-
end
|
10
|
-
|
11
|
-
def result
|
12
|
-
added
|
13
|
-
end
|
14
|
-
|
15
|
-
private
|
16
|
-
|
17
|
-
def added
|
18
|
-
@added ||= []
|
19
|
-
end
|
20
|
-
|
21
|
-
def add_next_pending
|
22
|
-
current = pending.pop
|
23
|
-
current.self_loaded_nodes.each do |loaded_node|
|
24
|
-
next if added.include?(loaded_node)
|
25
|
-
|
26
|
-
added << loaded_node
|
27
|
-
pending.push(loaded_node)
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
def pending
|
32
|
-
@pending ||= begin
|
33
|
-
r = Queue.new
|
34
|
-
r.push(root_node)
|
35
|
-
r
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
@@ -1,28 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'eac_config/entry_path'
|
4
|
-
require 'eac_ruby_utils/core_ext'
|
5
|
-
|
6
|
-
module EacConfig
|
7
|
-
class LoadPath
|
8
|
-
ENTRY_PATH = ::EacConfig::EntryPath.assert(%w[load_path])
|
9
|
-
|
10
|
-
common_constructor :node
|
11
|
-
|
12
|
-
def entry
|
13
|
-
node.self_entry(ENTRY_PATH)
|
14
|
-
end
|
15
|
-
|
16
|
-
# @return [Array<String>]
|
17
|
-
def paths
|
18
|
-
r = entry.value
|
19
|
-
r.is_a?(::Array) ? r : []
|
20
|
-
end
|
21
|
-
|
22
|
-
def push(new_path)
|
23
|
-
entry.value = paths + [new_path]
|
24
|
-
end
|
25
|
-
|
26
|
-
delegate :to_s, to: :paths
|
27
|
-
end
|
28
|
-
end
|
@@ -1,67 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'eac_config/entry'
|
4
|
-
require 'eac_config/entry_path'
|
5
|
-
require 'eac_config/load_path'
|
6
|
-
require 'eac_config/load_nodes_search'
|
7
|
-
require 'eac_config/node_entry'
|
8
|
-
require 'eac_config/node_uri'
|
9
|
-
require 'eac_ruby_utils/core_ext'
|
10
|
-
require 'eac_ruby_utils/context'
|
11
|
-
|
12
|
-
module EacConfig
|
13
|
-
module Node
|
14
|
-
class << self
|
15
|
-
def context
|
16
|
-
@context ||= ::EacRubyUtils::Context.new
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
attr_accessor :write_node
|
21
|
-
|
22
|
-
common_concern do
|
23
|
-
enable_abstract_methods
|
24
|
-
include ::Comparable
|
25
|
-
end
|
26
|
-
|
27
|
-
def entry(path)
|
28
|
-
::EacConfig::Entry.new(self, path)
|
29
|
-
end
|
30
|
-
|
31
|
-
# @return [[EacConfig::IncludePath]]
|
32
|
-
def load_path
|
33
|
-
@load_path ||= ::EacConfig::LoadPath.new(self)
|
34
|
-
end
|
35
|
-
|
36
|
-
# @return [Addressable::URI]
|
37
|
-
def url
|
38
|
-
raise_abstract_method(__method__)
|
39
|
-
end
|
40
|
-
|
41
|
-
# Return a entry which search values only in the self node.
|
42
|
-
# @return [EacConfig::NodeEntry]
|
43
|
-
def self_entry(path)
|
44
|
-
self_entry_class.new(self, path)
|
45
|
-
end
|
46
|
-
|
47
|
-
def self_entry_class
|
48
|
-
self.class.const_get('Entry')
|
49
|
-
end
|
50
|
-
|
51
|
-
# @return [Array<EacConfig::Node>]
|
52
|
-
def self_loaded_nodes
|
53
|
-
load_path.paths.map { |node_path| load_node(node_path) }
|
54
|
-
end
|
55
|
-
|
56
|
-
# @return [Array<EacConfig::Node>]
|
57
|
-
def recursive_loaded_nodes
|
58
|
-
::EacConfig::LoadNodesSearch.new(self).result
|
59
|
-
end
|
60
|
-
|
61
|
-
private
|
62
|
-
|
63
|
-
def load_node(node_path)
|
64
|
-
::EacConfig::NodeUri.new(node_path, url).instanciate
|
65
|
-
end
|
66
|
-
end
|
67
|
-
end
|
@@ -1,22 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'eac_config/entry_path'
|
4
|
-
require 'eac_config/paths_hash'
|
5
|
-
require 'eac_ruby_utils/core_ext'
|
6
|
-
|
7
|
-
module EacConfig
|
8
|
-
# A entry which search values only in the source node.
|
9
|
-
class NodeEntry
|
10
|
-
enable_abstract_methods
|
11
|
-
enable_simple_cache
|
12
|
-
common_constructor :node, :path do
|
13
|
-
self.path = ::EacConfig::EntryPath.assert(path)
|
14
|
-
end
|
15
|
-
|
16
|
-
abstract_methods :found?, :value, :value=
|
17
|
-
|
18
|
-
def secret_value
|
19
|
-
value
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
@@ -1,38 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module EacConfig
|
4
|
-
class NodeUri
|
5
|
-
enable_simple_cache
|
6
|
-
common_constructor :source, :loader_uri, default: [nil]
|
7
|
-
|
8
|
-
def available_node_classes
|
9
|
-
require 'eac_config/envvars_node'
|
10
|
-
require 'eac_config/yaml_file_node'
|
11
|
-
[::EacConfig::EnvvarsNode, ::EacConfig::YamlFileNode]
|
12
|
-
end
|
13
|
-
|
14
|
-
def instanciate
|
15
|
-
available_node_classes.lazy.map { |k| k.from_uri(self) }.find(&:present?) ||
|
16
|
-
raise("No class mapped for \"#{to_addressable}\"")
|
17
|
-
end
|
18
|
-
|
19
|
-
delegate :to_s, to: :to_addressable
|
20
|
-
|
21
|
-
private
|
22
|
-
|
23
|
-
def to_addressable_uncached
|
24
|
-
r = ::Addressable::URI.parse(source)
|
25
|
-
path = r.path.to_pathname
|
26
|
-
r.path = path.expand_path(loader_uri_path_directory).to_path if path.relative?
|
27
|
-
r.scheme = 'file' if r.scheme.blank?
|
28
|
-
r
|
29
|
-
end
|
30
|
-
|
31
|
-
def loader_uri_path_directory
|
32
|
-
r = loader_uri.path
|
33
|
-
raise ".loader_uri \"#{loader_uri}\" has no path (Source: \"#{source}\")" if r.blank?
|
34
|
-
|
35
|
-
r.to_pathname.parent
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|