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.
Files changed (66) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +3 -0
  3. data/lib/avm/tools/runner/app_src/info.rb +19 -0
  4. data/lib/avm/tools/runner/application_stereotypes/list.rb +31 -0
  5. data/lib/avm/tools/runner/application_stereotypes.rb +16 -0
  6. data/lib/avm/tools/version.rb +1 -1
  7. metadata +6 -63
  8. data/lib/avm/tools/runner/eac_redmine_base0/dev_docker.rb +0 -17
  9. data/sub/eac_config/Gemfile +0 -5
  10. data/sub/eac_config/eac_config.gemspec +0 -19
  11. data/sub/eac_config/lib/eac_config/entry.rb +0 -53
  12. data/sub/eac_config/lib/eac_config/entry_path.rb +0 -41
  13. data/sub/eac_config/lib/eac_config/envvars_node/entry.rb +0 -54
  14. data/sub/eac_config/lib/eac_config/envvars_node.rb +0 -25
  15. data/sub/eac_config/lib/eac_config/load_nodes_search.rb +0 -39
  16. data/sub/eac_config/lib/eac_config/load_path.rb +0 -28
  17. data/sub/eac_config/lib/eac_config/node.rb +0 -67
  18. data/sub/eac_config/lib/eac_config/node_entry.rb +0 -22
  19. data/sub/eac_config/lib/eac_config/node_uri.rb +0 -38
  20. data/sub/eac_config/lib/eac_config/old_configs/base.rb +0 -43
  21. data/sub/eac_config/lib/eac_config/old_configs/file.rb +0 -47
  22. data/sub/eac_config/lib/eac_config/old_configs.rb +0 -75
  23. data/sub/eac_config/lib/eac_config/paths_hash/entry_key_error.rb +0 -8
  24. data/sub/eac_config/lib/eac_config/paths_hash/node.rb +0 -67
  25. data/sub/eac_config/lib/eac_config/paths_hash/path_search.rb +0 -39
  26. data/sub/eac_config/lib/eac_config/paths_hash.rb +0 -63
  27. data/sub/eac_config/lib/eac_config/rspec/setup.rb +0 -65
  28. data/sub/eac_config/lib/eac_config/rspec.rb +0 -9
  29. data/sub/eac_config/lib/eac_config/version.rb +0 -5
  30. data/sub/eac_config/lib/eac_config/yaml_file_node/entry.rb +0 -36
  31. data/sub/eac_config/lib/eac_config/yaml_file_node.rb +0 -47
  32. data/sub/eac_config/lib/eac_config.rb +0 -7
  33. data/sub/eac_config/spec/lib/eac_config/entry_path_spec.rb +0 -30
  34. data/sub/eac_config/spec/lib/eac_config/envvars_node/entry_spec.rb +0 -14
  35. data/sub/eac_config/spec/lib/eac_config/envvars_node_spec.rb +0 -40
  36. data/sub/eac_config/spec/lib/eac_config/old_configs_spec.rb +0 -46
  37. data/sub/eac_config/spec/lib/eac_config/paths_hash_spec.rb +0 -88
  38. data/sub/eac_config/spec/lib/eac_config/yaml_file_node_spec.rb +0 -52
  39. data/sub/eac_config/spec/lib/eac_config/yaml_file_node_spec_files/storage1.yaml +0 -6
  40. data/sub/eac_config/spec/lib/eac_config/yaml_file_node_spec_files/storage1_1.yaml +0 -2
  41. data/sub/eac_config/spec/lib/eac_config/yaml_file_node_spec_files/storage1_2/storage1_2_1.yaml +0 -2
  42. data/sub/eac_config/spec/lib/eac_config/yaml_file_node_spec_files/storage1_2.yaml +0 -4
  43. data/sub/eac_config/spec/rubocop_spec.rb +0 -3
  44. data/sub/eac_config/spec/spec_helper.rb +0 -4
  45. data/sub/eac_docker/Gemfile +0 -5
  46. data/sub/eac_docker/eac_docker.gemspec +0 -19
  47. data/sub/eac_docker/lib/eac_docker/container.rb +0 -78
  48. data/sub/eac_docker/lib/eac_docker/debug.rb +0 -15
  49. data/sub/eac_docker/lib/eac_docker/executables.rb +0 -18
  50. data/sub/eac_docker/lib/eac_docker/images/base.rb +0 -14
  51. data/sub/eac_docker/lib/eac_docker/images/coded.rb +0 -43
  52. data/sub/eac_docker/lib/eac_docker/images/named.rb +0 -30
  53. data/sub/eac_docker/lib/eac_docker/images/templatized.rb +0 -41
  54. data/sub/eac_docker/lib/eac_docker/images.rb +0 -9
  55. data/sub/eac_docker/lib/eac_docker/registry.rb +0 -17
  56. data/sub/eac_docker/lib/eac_docker/rspec/setup.rb +0 -17
  57. data/sub/eac_docker/lib/eac_docker/rspec.rb +0 -9
  58. data/sub/eac_docker/lib/eac_docker/version.rb +0 -5
  59. data/sub/eac_docker/lib/eac_docker.rb +0 -7
  60. data/sub/eac_docker/spec/lib/eac_docker/executables_spec.rb +0 -9
  61. data/sub/eac_docker/spec/lib/eac_docker/images/coded_spec.rb +0 -12
  62. data/sub/eac_docker/spec/lib/eac_docker/images/coded_spec_files/image1/Dockerfile +0 -1
  63. data/sub/eac_docker/spec/lib/eac_docker/images/templatized_spec.rb +0 -18
  64. data/sub/eac_docker/spec/lib/eac_docker/images/templatized_spec_files/stub_docker_image/Dockerfile +0 -1
  65. data/sub/eac_docker/spec/rubocop_spec.rb +0 -3
  66. 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: b24067d578a5336edb5025a099861a707d07c9e1124bf1eb79539175dd8bd4dd
4
- data.tar.gz: 9a64c337099caa0cd45dbbdbfe58248d5a0333c166da9eb5ffd1139ed3fc3788
3
+ metadata.gz: '08cbe8be7452f80405bfbc8fe71f64bc84b797af3399ee4d35c1d218065f7a98'
4
+ data.tar.gz: ae959f3f8c6c7e70da1c3dd4d425d8cda2fe73b27a8bd806b4bf24e7db424b53
5
5
  SHA512:
6
- metadata.gz: bcf410474f87daf2746cacceb809c9390af0929f0346fdd1cce147f2336cfd047ea803421869a57369bff43ad1c4af4a014a57afcab56bb27466dedbbd1eac9b
7
- data.tar.gz: 471c0268b03a367ebd9de94799938270c66f1cca8b95b92f261b278649e7fb27ab6b18c786bf0a9f13beeaa92ed9941c0e420946a8c69bbed56b9cf0f66c1692
6
+ metadata.gz: ef1e039ba2a5ff3be49286b37fb1d17b15561960d53458d55c011ecaec3e80bed22fd88caa5be6a8b5ba2ff09a1f60cddce412710f6aa44f64909c07ec4ce5d4
7
+ data.tar.gz: b560513dcf791a0bec5287054e3f4c18e5c71c3099b1b4f2d1617f8dd742cccfe6802a0c6547b46799bf8570b0aa498dab40dbaf299f26f6fa6b26cb74094cde
data/Gemfile CHANGED
@@ -10,3 +10,6 @@ Dir["#{gems_subdir}/*"].each do |dir|
10
10
 
11
11
  gem ::File.basename(dir), path: dir
12
12
  end
13
+
14
+ local_gemfile = ::File.join(::File.dirname(__FILE__), 'Gemfile.local')
15
+ eval_gemfile local_gemfile if ::File.exist?(local_gemfile)
@@ -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
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_cli/core_ext'
4
+
5
+ module Avm
6
+ module Tools
7
+ class Runner
8
+ class ApplicationStereotypes
9
+ require_sub __FILE__
10
+ runner_with :help, :subcommands do
11
+ subcommands
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Avm
4
4
  module Tools
5
- VERSION = '0.121.2'
5
+ VERSION = '0.124.0'
6
6
  end
7
7
  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.121.2
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-18 00:00:00.000000000 Z
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.22'
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.22'
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
@@ -1,5 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- source 'https://rubygems.org'
4
-
5
- gemspec
@@ -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