canfig 0.0.8 → 0.0.13
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/canfig.rb +1 -0
- data/lib/canfig/config.rb +9 -7
- data/lib/canfig/env_config.rb +32 -0
- data/lib/canfig/open_config.rb +1 -1
- data/lib/canfig/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1a5e786da847f0b3b9f6c70578bcdb948f11d59bb7eab3a403ac7c4a900505a8
|
4
|
+
data.tar.gz: 21fa40cda7709f79b6604ea3f8883b84aa1f62f8e8b1bc3a73f5f415a5d4788a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2fa3db95500d7b55fe6ceedfda1fa3467b6a6bdf212af67f5fda28fb98155d1522a4dad858165d1d3b58695c083df212a533336646dd2dc5aaa9162a666067d0
|
7
|
+
data.tar.gz: a80a8e1010ee71fd2bdded9c3c661552be8f887eb8a051711204fee0539725f19f484f1e6610224f6b9ac5ad33b4c2ea997e2bca2b3778edcdac40ddd82c4562
|
data/lib/canfig.rb
CHANGED
data/lib/canfig/config.rb
CHANGED
@@ -37,13 +37,16 @@ module Canfig
|
|
37
37
|
end
|
38
38
|
|
39
39
|
def env(key, default=nil, &block)
|
40
|
-
|
41
|
-
|
40
|
+
@state[key] ||= begin
|
41
|
+
val = ENV.fetch(key.to_s.underscore.upcase, default, &block)
|
42
|
+
val = default if val.blank?
|
43
|
+
val && ENV.key?(val.to_s) ? env(val, default, &block) : val
|
44
|
+
end
|
42
45
|
end
|
43
46
|
|
44
|
-
def clear(
|
47
|
+
def clear(*keys)
|
45
48
|
save_state! do
|
46
|
-
@state[key] = nil
|
49
|
+
keys.each { |key| @state[key] = nil }
|
47
50
|
end
|
48
51
|
end
|
49
52
|
|
@@ -53,7 +56,7 @@ module Canfig
|
|
53
56
|
|
54
57
|
def get(key, default=nil, &block)
|
55
58
|
raise NoMethodError, "undefined method `#{key.to_s}' for #{self.to_s}" unless allowed?(key)
|
56
|
-
@state[key]
|
59
|
+
@state[key] || (block_given? ? yield : default)
|
57
60
|
end
|
58
61
|
|
59
62
|
def [](key)
|
@@ -118,8 +121,7 @@ module Canfig
|
|
118
121
|
|
119
122
|
protected
|
120
123
|
|
121
|
-
def initialize(*args, &block)
|
122
|
-
options = args.extract_options!
|
124
|
+
def initialize(*args, **options, &block)
|
123
125
|
@allowed = (args.map(&:to_sym) + options.symbolize_keys.keys).uniq
|
124
126
|
@state = {}
|
125
127
|
enable_state_saves!
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module Canfig
|
2
|
+
class EnvConfig < OpenConfig
|
3
|
+
attr_reader :namespace
|
4
|
+
|
5
|
+
def configure_with_args(argh)
|
6
|
+
save_state! do
|
7
|
+
argh.symbolize_keys.each { |key,val| env(key, val) }
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
def get(key, default=nil, &block)
|
12
|
+
super || env(key, default, &block)
|
13
|
+
end
|
14
|
+
|
15
|
+
def env(key, default=nil, &block)
|
16
|
+
@state[key.to_sym] ||= begin
|
17
|
+
key = key.to_s.underscore.upcase
|
18
|
+
key = key.gsub(/^#{namespace}/, '') if namespace
|
19
|
+
val = ENV.fetch("#{namespace}#{key}", default, &block)
|
20
|
+
val = default if val.blank?
|
21
|
+
val && ENV.key?(val.to_s) ? env(val, default, &block) : val
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
protected
|
26
|
+
|
27
|
+
def initialize(namespace=nil, **attributes, &block)
|
28
|
+
@namespace = namespace ? "#{namespace.to_s.underscore.upcase.gsub(/_$/, '')}_" : namespace
|
29
|
+
super(**attributes, &block)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
data/lib/canfig/open_config.rb
CHANGED
data/lib/canfig/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: canfig
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.13
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mark Rebec
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-12-
|
11
|
+
date: 2020-12-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -62,6 +62,7 @@ files:
|
|
62
62
|
- lib/canfig.rb
|
63
63
|
- lib/canfig/class.rb
|
64
64
|
- lib/canfig/config.rb
|
65
|
+
- lib/canfig/env_config.rb
|
65
66
|
- lib/canfig/instance.rb
|
66
67
|
- lib/canfig/module.rb
|
67
68
|
- lib/canfig/open_config.rb
|