kreds 1.0.0 → 1.1.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/CHANGELOG.md +4 -0
- data/README.md +13 -1
- data/lib/kreds/fetch.rb +22 -10
- data/lib/kreds/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: de9b5e5f467bfe86da6487a402620213b7108dbcd90d64a5c088e8f563dc466e
|
4
|
+
data.tar.gz: c147c37a7ca2ea09f166022b0ffb294c5f452a33392a8d15edfe07ed30167a40
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 164bdf54d2f0ec9037cc568c6749bd22fdca2fed40388a74f9a35a8954cf34cc74697efdb2516fa57c34966c194f9d65c466c0a447f6ca4489504c1d3c913bb3
|
7
|
+
data.tar.gz: 90850b11cbe6f9890dd7e60752251af0f3e323cf7c87a460677fef764a80421690d9de2979fd0e0761ffd29295fc686501385fd8e911bd6c35af8aaad51b8383
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -52,7 +52,7 @@ If all keys are correct but the value is blank, Kreds will raise `Kreds::BlankCr
|
|
52
52
|
You can optionally provide a fallback environment variable:
|
53
53
|
|
54
54
|
```ruby
|
55
|
-
Kreds.fetch!(:aws, :s3, :credentials, :access_key_id,
|
55
|
+
Kreds.fetch!(:aws, :s3, :credentials, :access_key_id, var: "AWS_ACCESS_KEY_ID")
|
56
56
|
```
|
57
57
|
|
58
58
|
If the key is missing or blank in credentials, Kreds will attempt to fetch the value from the specified environment variable.
|
@@ -85,6 +85,18 @@ You can also provide an optional fallback environment variable:
|
|
85
85
|
Kreds.env_fetch!(:recaptcha, :site_key, var: "RECAPTCHA_SITE_KEY")
|
86
86
|
```
|
87
87
|
|
88
|
+
### Pass a block on failure
|
89
|
+
|
90
|
+
You can pass a block to `fetch!`, `env_fetch!`, and `var!`, which will be executed if the method fails to retrieve the value.
|
91
|
+
|
92
|
+
```ruby
|
93
|
+
Kreds.fetch!(:aws, :s3, :credentials, :access_key_id) do
|
94
|
+
raise MyCustomError, "Custom error message"
|
95
|
+
end
|
96
|
+
|
97
|
+
Kreds.var!("THREADS") { 1 }
|
98
|
+
```
|
99
|
+
|
88
100
|
### Show credentials
|
89
101
|
|
90
102
|
To inspect all credentials as a hash:
|
data/lib/kreds/fetch.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
module Kreds
|
2
2
|
module Fetch
|
3
|
-
def fetch!(*keys, var: nil)
|
3
|
+
def fetch!(*keys, var: nil, &)
|
4
4
|
validate_keys!(keys)
|
5
5
|
validate_var!(var)
|
6
6
|
|
@@ -11,18 +11,21 @@ module Kreds
|
|
11
11
|
fetch_key(hash, key, path, keys)
|
12
12
|
end
|
13
13
|
rescue Kreds::BlankCredentialsError, Kreds::UnknownCredentialsError => e
|
14
|
-
fallback_to_var(e, var)
|
14
|
+
fallback_to_var(e, var, &)
|
15
15
|
end
|
16
16
|
|
17
|
-
def env_fetch!(*keys, var: nil)
|
18
|
-
fetch!(Rails.env, *keys, var: var)
|
17
|
+
def env_fetch!(*keys, var: nil, &)
|
18
|
+
fetch!(Rails.env, *keys, var: var, &)
|
19
19
|
end
|
20
20
|
|
21
|
-
def var!(var)
|
21
|
+
def var!(var, &)
|
22
22
|
validate_var!(var)
|
23
23
|
|
24
24
|
result, success = check_var(var)
|
25
|
-
|
25
|
+
|
26
|
+
return result if success
|
27
|
+
|
28
|
+
raise_or_yield(result, &)
|
26
29
|
end
|
27
30
|
|
28
31
|
private
|
@@ -50,11 +53,16 @@ module Kreds
|
|
50
53
|
raise Kreds::UnknownCredentialsError, "Credentials key not found: [:#{path.join("][:")}]"
|
51
54
|
end
|
52
55
|
|
53
|
-
def fallback_to_var(error, var)
|
54
|
-
|
56
|
+
def fallback_to_var(error, var, &)
|
57
|
+
if var.present?
|
58
|
+
result, success = check_var(var)
|
55
59
|
|
56
|
-
|
57
|
-
|
60
|
+
return result if success
|
61
|
+
|
62
|
+
raise_or_yield(Kreds::Error.new([error.message, result.message].join(", ")), &)
|
63
|
+
end
|
64
|
+
|
65
|
+
raise_or_yield(error, &)
|
58
66
|
end
|
59
67
|
|
60
68
|
def check_var(var)
|
@@ -66,5 +74,9 @@ module Kreds
|
|
66
74
|
rescue KeyError
|
67
75
|
[Kreds::UnknownEnvironmentVariableError.new("Environment variable not found: #{var.inspect}"), false]
|
68
76
|
end
|
77
|
+
|
78
|
+
def raise_or_yield(error, &)
|
79
|
+
block_given? ? yield : raise(error)
|
80
|
+
end
|
69
81
|
end
|
70
82
|
end
|
data/lib/kreds/version.rb
CHANGED