eac_config 0.5.2 → 0.5.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f849abc9e1add60abdeb04359a38568809a240839eb68fbe6a69c298179713cf
4
- data.tar.gz: 9f9fdc2e7afc1143273b22c3267143c35f307dabcebee01a03b7c82cde2e232c
3
+ metadata.gz: 7f130e01595ad39a2e0b0f6fb1ece9f21f8d61eaaa434746837478d60e825dc5
4
+ data.tar.gz: 660bed3f2ed1991fba8be9818e05f0263df90190c6c857695ba02b2283630e60
5
5
  SHA512:
6
- metadata.gz: e2c40d3aeab688ecd2f85225cbafe9023a7bbd17d645d28608d6de12ff439aebd0fcfdd107da925082410b996c65a3930bcc1035e77e8a6c3b500fe5a4ed8816
7
- data.tar.gz: 403bc52ef8019a834eada038392cb2a91ae2d09530b35f5fa966946972855cbfd5744317347bb890550a7302fc0ea347a95c0dc2692786c86f1597c6b7a8f991
6
+ metadata.gz: f0cdc6364af4f758d3cb3c94b10bdadbc2124cfc1a0c2990e119be4df95b90c70ffd1d09fb17bc5ee4f5726b09499361b3f8f82d4f6b6544f7d8f58e8e38ff45
7
+ data.tar.gz: 58c59eecee35069c78de153071a281f6e04914a12b3948b67b35e57b861cb101f8f419126c5c3c27432ef4ca055a8b509ec7d96bc9c030cfc08cf80bd8cd9a54
@@ -49,6 +49,13 @@ module EacConfig
49
49
 
50
50
  delegate :to_h, to: :root
51
51
 
52
+ # @return [EacConfig::PathsHash
53
+ def write(entry_key, entry_value)
54
+ self[entry_key] = entry_value
55
+
56
+ self
57
+ end
58
+
52
59
  private
53
60
 
54
61
  attr_reader :data
@@ -7,11 +7,23 @@ module EacConfig
7
7
  module Rspec
8
8
  module Setup
9
9
  def self.extended(obj)
10
- obj.clean_envvars_load_path
10
+ obj.rspec_config.around do |example|
11
+ obj.on_envvars_load_path_clean(example)
12
+ end
11
13
  end
12
14
 
13
- def clean_envvars_load_path
14
- ::EacConfig::EnvvarsNode.new.load_path.entry.value = []
15
+ def on_envvars_load_path_clean(example)
16
+ old_value = envvars_load_path_entry.value
17
+ begin
18
+ envvars_load_path_entry.value = old_value = []
19
+ example.run
20
+ ensure
21
+ envvars_load_path_entry.value = old_value
22
+ end
23
+ end
24
+
25
+ def envvars_load_path_entry
26
+ ::EacConfig::EnvvarsNode.new.load_path.entry
15
27
  end
16
28
  end
17
29
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module EacConfig
4
- VERSION = '0.5.2'
4
+ VERSION = '0.5.3'
5
5
  end
@@ -18,14 +18,13 @@ module EacConfig
18
18
  end
19
19
 
20
20
  def value=(a_value)
21
- paths_hash[to_paths_hash_key] = a_value
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 paths_hash_uncached
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
- @data = nil
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 assert_path
40
- unless path.file?
41
- raise("\"#{path}\" is a not a file") if path.exist?
42
-
43
- persist_data({})
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
- path
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.5.2
4
+ version: 0.5.3
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-12-04 00:00:00.000000000 Z
11
+ date: 2021-12-06 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.70'
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.70'
40
+ version: '0.81'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: eac_ruby_gem_support
43
43
  requirement: !ruby/object:Gem::Requirement