eac_config 0.5.1 → 0.7.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/eac_config/paths_hash.rb +7 -0
- data/lib/eac_config/rspec/setup.rb +57 -0
- data/lib/eac_config/rspec.rb +9 -0
- data/lib/eac_config/version.rb +1 -1
- data/lib/eac_config/yaml_file_node/entry.rb +2 -3
- data/lib/eac_config/yaml_file_node.rb +10 -11
- metadata +6 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f42b32f6fdf720e0c6896de2e624ea4072b9bd5f25ae4f9bedcd9cbae53c466e
|
4
|
+
data.tar.gz: a626301154320dec9a1fa48bf1b3f7e8ac69886eb1df02328209090d78d0a93c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8fd767d65396eb954b750d919a47da556d6e99983a306b18d01ee51c19c94bd04c0ff508ffea69a03163919695e55f05a32108a794114352304c113b1e05c051
|
7
|
+
data.tar.gz: 6081fa3c82b0713fc21674512522092e0e13c2eb8c7c0d9a6546476b0acab476cf004a65a61866156099218fd8c4b1a62b8f74c2b8c08ce51f647ae59e1d192e
|
@@ -0,0 +1,57 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
require 'eac_ruby_utils/fs/temp'
|
5
|
+
require 'eac_config/envvars_node'
|
6
|
+
require 'eac_config/node'
|
7
|
+
require 'eac_config/yaml_file_node'
|
8
|
+
|
9
|
+
module EacConfig
|
10
|
+
module Rspec
|
11
|
+
module Setup
|
12
|
+
def self.extended(obj)
|
13
|
+
obj.rspec_config.around do |example|
|
14
|
+
obj.on_envvars_load_path_clean(example)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def on_envvars_load_path_clean(example)
|
19
|
+
old_value = envvars_load_path_entry.value
|
20
|
+
begin
|
21
|
+
envvars_load_path_entry.value = old_value = []
|
22
|
+
example.run
|
23
|
+
ensure
|
24
|
+
envvars_load_path_entry.value = old_value
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def envvars_load_path_entry
|
29
|
+
::EacConfig::EnvvarsNode.new.load_path.entry
|
30
|
+
end
|
31
|
+
|
32
|
+
def stub_eac_config_node(target_example = nil, target_file = nil, &node_builder)
|
33
|
+
parent_self = self
|
34
|
+
(target_example || rspec_config).around do |example|
|
35
|
+
parent_self.stub_eac_config_node_on_file(target_file) do |file|
|
36
|
+
::EacConfig::Node
|
37
|
+
.context.on(parent_self.stub_eac_config_node_build(file, &node_builder)) do
|
38
|
+
example.run
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def stub_eac_config_node_build(file, &node_builder)
|
45
|
+
node_builder.present? ? node_builder.call(file) : ::EacConfig::YamlFileNode.new(file)
|
46
|
+
end
|
47
|
+
|
48
|
+
def stub_eac_config_node_on_file(target_file)
|
49
|
+
if target_file
|
50
|
+
yield(target_file.to_pathname)
|
51
|
+
else
|
52
|
+
::EacRubyUtils::Fs::Temp.on_file { |file| yield(file) }
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
data/lib/eac_config/version.rb
CHANGED
@@ -18,14 +18,13 @@ module EacConfig
|
|
18
18
|
end
|
19
19
|
|
20
20
|
def value=(a_value)
|
21
|
-
paths_hash
|
22
|
-
node.persist_data(paths_hash.root.to_h)
|
21
|
+
node.persist_data(paths_hash.write(to_paths_hash_key, a_value).root.to_h)
|
23
22
|
end
|
24
23
|
|
25
24
|
private
|
26
25
|
|
27
26
|
# @return [EacConfig::PathsHash]
|
28
|
-
def
|
27
|
+
def paths_hash
|
29
28
|
::EacConfig::PathsHash.new(node.data)
|
30
29
|
end
|
31
30
|
|
@@ -9,6 +9,7 @@ module EacConfig
|
|
9
9
|
class YamlFileNode
|
10
10
|
require_sub __FILE__
|
11
11
|
include ::EacConfig::Node
|
12
|
+
enable_simple_cache
|
12
13
|
|
13
14
|
class << self
|
14
15
|
def from_uri(uri)
|
@@ -20,14 +21,10 @@ module EacConfig
|
|
20
21
|
self.path = path.to_pathname
|
21
22
|
end
|
22
23
|
|
23
|
-
def data
|
24
|
-
@data ||= ::EacRubyUtils::Yaml.load_file(assert_path) || {}
|
25
|
-
end
|
26
|
-
|
27
24
|
def persist_data(new_data)
|
28
25
|
path.parent.mkpath
|
29
26
|
::EacRubyUtils::Yaml.dump_file(path, new_data)
|
30
|
-
|
27
|
+
reset_cache(:data)
|
31
28
|
end
|
32
29
|
|
33
30
|
def url
|
@@ -36,13 +33,15 @@ module EacConfig
|
|
36
33
|
|
37
34
|
private
|
38
35
|
|
39
|
-
def
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
36
|
+
def data_uncached
|
37
|
+
r = nil
|
38
|
+
if path.file?
|
39
|
+
r = ::EacRubyUtils::Yaml.load_file(path)
|
40
|
+
elsif path.exist?
|
41
|
+
raise("\"#{path}\" is a not a file")
|
44
42
|
end
|
45
|
-
|
43
|
+
|
44
|
+
r.is_a?(::Hash) ? r : {}
|
46
45
|
end
|
47
46
|
end
|
48
47
|
end
|
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.7.0
|
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: 2021-
|
11
|
+
date: 2021-12-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: addressable
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '0.
|
33
|
+
version: '0.81'
|
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.81'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: eac_ruby_gem_support
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -75,6 +75,8 @@ files:
|
|
75
75
|
- lib/eac_config/paths_hash/entry_key_error.rb
|
76
76
|
- lib/eac_config/paths_hash/node.rb
|
77
77
|
- lib/eac_config/paths_hash/path_search.rb
|
78
|
+
- lib/eac_config/rspec.rb
|
79
|
+
- lib/eac_config/rspec/setup.rb
|
78
80
|
- lib/eac_config/version.rb
|
79
81
|
- lib/eac_config/yaml_file_node.rb
|
80
82
|
- lib/eac_config/yaml_file_node/entry.rb
|