eac_config 0.13.0 → 0.14.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/eac_config/node.rb +4 -2
- data/lib/eac_config/node_uri/instanciate_single.rb +29 -0
- data/lib/eac_config/node_uri.rb +15 -8
- data/lib/eac_config/version.rb +1 -1
- metadata +11 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7129c57e10676ddf2fd7b418aa21de384634e1ee9a3b1b5086524f62fa2a84fd
|
4
|
+
data.tar.gz: 61af2046de4dd5d3325fe1719b7ddb3e62e4134497a20ef0b923ceb5ebabee65
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6f04f61ae7c90c57ed1fbc492a894ccf525fe8aa47ebbf6dbe665fd0289615d67c66b2f09b3f99f51b5b72c7a2961da7971ec74139a9f25773548bd70a3e2ed7
|
7
|
+
data.tar.gz: b4284d78053b22cf34e9134d3d1529b0079d46cfca98ebb3ae7abefd87062f019c1e9acf46ad9173517457e4c3c8a09b0b894237d8d9b9b1d7ac9b6caeec03a8
|
data/lib/eac_config/node.rb
CHANGED
@@ -56,7 +56,7 @@ module EacConfig
|
|
56
56
|
|
57
57
|
# @return [Array<EacConfig::Node>]
|
58
58
|
def self_loaded_nodes
|
59
|
-
load_path.paths.
|
59
|
+
load_path.paths.flat_map { |node_path| load_nodes(node_path) }
|
60
60
|
end
|
61
61
|
|
62
62
|
# @return [Array<EacConfig::Node>]
|
@@ -72,7 +72,9 @@ module EacConfig
|
|
72
72
|
|
73
73
|
private
|
74
74
|
|
75
|
-
|
75
|
+
# @param node_path [String]
|
76
|
+
# @return [Array<EacConfig::Node>]
|
77
|
+
def load_nodes(node_path)
|
76
78
|
::EacConfig::NodeUri.new(node_path, url).instanciate
|
77
79
|
end
|
78
80
|
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module EacConfig
|
4
|
+
class NodeUri
|
5
|
+
class InstanciateSingle
|
6
|
+
acts_as_instance_method
|
7
|
+
enable_simple_cache
|
8
|
+
common_constructor :node_uri, :instance_uri
|
9
|
+
|
10
|
+
# @return [Array<Class>]
|
11
|
+
def available_node_classes
|
12
|
+
require 'eac_config/envvars_node'
|
13
|
+
require 'eac_config/yaml_file_node'
|
14
|
+
[::EacConfig::EnvvarsNode, ::EacConfig::YamlFileNode]
|
15
|
+
end
|
16
|
+
|
17
|
+
# @return [EacConfig::Node]
|
18
|
+
def result
|
19
|
+
available_node_classes.lazy.map { |k| k.from_uri(self) }.find(&:present?) ||
|
20
|
+
raise("No class mapped for \"#{to_addressable}\"")
|
21
|
+
end
|
22
|
+
|
23
|
+
# @return [Addressable::URI]
|
24
|
+
def to_addressable
|
25
|
+
instance_uri.to_uri
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
data/lib/eac_config/node_uri.rb
CHANGED
@@ -5,21 +5,26 @@ module EacConfig
|
|
5
5
|
enable_simple_cache
|
6
6
|
common_constructor :source, :loader_uri, default: [nil]
|
7
7
|
|
8
|
-
|
9
|
-
require 'eac_config/envvars_node'
|
10
|
-
require 'eac_config/yaml_file_node'
|
11
|
-
[::EacConfig::EnvvarsNode, ::EacConfig::YamlFileNode]
|
12
|
-
end
|
13
|
-
|
8
|
+
# @return [Array<EacConfig::Node>]
|
14
9
|
def instanciate
|
15
|
-
|
16
|
-
raise("No class mapped for \"#{to_addressable}\"")
|
10
|
+
instance_uris.map { |uri| instanciate_single(uri) }
|
17
11
|
end
|
18
12
|
|
19
13
|
delegate :to_s, to: :to_addressable
|
20
14
|
|
21
15
|
private
|
22
16
|
|
17
|
+
# @return [Array<Addressable::URI>]
|
18
|
+
def instance_uris
|
19
|
+
if to_addressable.scheme == 'file'
|
20
|
+
::Pathname.glob(to_addressable.path).map do |found_path|
|
21
|
+
::Addressable::URI.new(scheme: 'file', path: found_path.to_path)
|
22
|
+
end
|
23
|
+
else
|
24
|
+
[to_addressable]
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
23
28
|
def to_addressable_uncached
|
24
29
|
r = ::Addressable::URI.parse(source)
|
25
30
|
path = r.path.to_pathname
|
@@ -34,5 +39,7 @@ module EacConfig
|
|
34
39
|
|
35
40
|
r.to_pathname.parent
|
36
41
|
end
|
42
|
+
|
43
|
+
require_sub __FILE__, require_mode: :kernel
|
37
44
|
end
|
38
45
|
end
|
data/lib/eac_config/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: eac_config
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.14.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Put here the authors
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-10-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: addressable
|
@@ -19,7 +19,7 @@ dependencies:
|
|
19
19
|
version: '2.8'
|
20
20
|
- - ">="
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: 2.8.
|
22
|
+
version: 2.8.5
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -29,7 +29,7 @@ dependencies:
|
|
29
29
|
version: '2.8'
|
30
30
|
- - ">="
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: 2.8.
|
32
|
+
version: 2.8.5
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: eac_ruby_utils
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -37,6 +37,9 @@ dependencies:
|
|
37
37
|
- - "~>"
|
38
38
|
- !ruby/object:Gem::Version
|
39
39
|
version: '0.119'
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: 0.119.2
|
40
43
|
type: :runtime
|
41
44
|
prerelease: false
|
42
45
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -44,6 +47,9 @@ dependencies:
|
|
44
47
|
- - "~>"
|
45
48
|
- !ruby/object:Gem::Version
|
46
49
|
version: '0.119'
|
50
|
+
- - ">="
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: 0.119.2
|
47
53
|
- !ruby/object:Gem::Dependency
|
48
54
|
name: eac_ruby_gem_support
|
49
55
|
requirement: !ruby/object:Gem::Requirement
|
@@ -76,6 +82,7 @@ files:
|
|
76
82
|
- lib/eac_config/node.rb
|
77
83
|
- lib/eac_config/node_entry.rb
|
78
84
|
- lib/eac_config/node_uri.rb
|
85
|
+
- lib/eac_config/node_uri/instanciate_single.rb
|
79
86
|
- lib/eac_config/old_configs.rb
|
80
87
|
- lib/eac_config/old_configs/base.rb
|
81
88
|
- lib/eac_config/old_configs/file.rb
|