kreds 1.1.2 → 1.1.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 256854440242a87fc2debc95c8c7cda4c2c8fb836946179eccba3d8946863b25
4
- data.tar.gz: 05c8465b2e8ab5a16f8b94cef84b85b074d5153bd60a143bd20719b0645b48e0
3
+ metadata.gz: f416324fdf1fb9493190c26649e33c4a417d0c7e555d34e18ba23d2ee1103432
4
+ data.tar.gz: d540058194d87c10e1b8206ea3189a432abd77b56b8a831f44ae377346c2cfb0
5
5
  SHA512:
6
- metadata.gz: ea580b8a4dca8c842c7e6f9c84a678cac94b3136b084dc1c91cb8c44b73d69077532441138c4a9c8bd91f84aec8c80bbb5919a27313cc18cb20d6d2df838bc6d
7
- data.tar.gz: a36ab8f0fe482843697cc96e28c903f08a61e35d0554bf56e696a06b4116af25ab8bb546fc546d2fa781bc37d1b137501f122224059dba298269d2128cd3bfac
6
+ metadata.gz: c08244465f69af24af696c5a5f6af05164052a38b886e35df82afbf10719cb433b112d06834dcd6d2e43ce6cf9e37307275e0f4e678240aea95b6489b16d581f
7
+ data.tar.gz: f60da9aac5e8f4fdacd4713ceda6b6333e30a2d7f175f8214f486ce03b7dbbd486c7f15349985e1d8b855cdbff1564fff7d1fc265442eb54822b80441a77ba9b
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## v1.1.3
2
+
3
+ - Improved error messages for better clarity
4
+ - Minor code optimizations and cleanup
5
+
1
6
  ## v1.1.2
2
7
 
3
8
  - Added input validation using `dry-types` for user-facing API
data/README.md CHANGED
@@ -9,8 +9,8 @@ Kreds is a simpler, shorter, and safer way to access Rails credentials, with a f
9
9
 
10
10
  - Simplified credential access with clear error messages
11
11
  - Environment variable fallback support
12
- - Environment-scoped credentials access (production, staging, development)
13
- - Automatic blank value detection and prevention
12
+ - Environment-scoped credentials access
13
+ - Blank value detection and prevention
14
14
 
15
15
  **Before and After:**
16
16
 
data/lib/kreds/fetch.rb CHANGED
@@ -1,7 +1,9 @@
1
1
  module Kreds
2
2
  module Fetch
3
3
  def fetch!(*keys, var: nil, &)
4
- symbolized_keys = Kreds::Inputs.process(keys, as: :symbol_array)
4
+ symbolized_keys = Kreds::Inputs.process(
5
+ keys, as: :symbol_array, message: "Expected an array of symbols or strings, got `#{keys.inspect}`"
6
+ )
5
7
 
6
8
  path = []
7
9
 
@@ -10,7 +12,13 @@ module Kreds
10
12
  fetch_key(hash, key, path, symbolized_keys)
11
13
  end
12
14
  rescue Kreds::BlankCredentialsError, Kreds::UnknownCredentialsError => e
13
- fallback_to_var(e, Kreds::Inputs.process(var, as: :string, optional: true), &)
15
+ fallback_to_var(
16
+ e,
17
+ Kreds::Inputs.process(
18
+ var, as: :non_empty_string, optional: true, message: "Expected a non-empty string, got `#{var.inspect}`"
19
+ ),
20
+ &
21
+ )
14
22
  end
15
23
 
16
24
  def env_fetch!(*keys, var: nil, &)
@@ -18,7 +26,9 @@ module Kreds
18
26
  end
19
27
 
20
28
  def var!(var, &)
21
- value = ENV.fetch(Kreds::Inputs.process(var, as: :string))
29
+ value = ENV.fetch(
30
+ Kreds::Inputs.process(var, as: :non_empty_string, message: "Expected a non-empty string, got `#{var.inspect}`")
31
+ )
22
32
 
23
33
  return raise_or_yield(Kreds::BlankEnvironmentVariableError.new("Blank value in environment variable: #{var.inspect}"), &) if value.blank?
24
34
 
data/lib/kreds/inputs.rb CHANGED
@@ -8,17 +8,17 @@ module Kreds
8
8
 
9
9
  TYPES = {
10
10
  symbol_array: -> { self::Array.of(self::Coercible::Symbol).constrained(min_size: 1) },
11
- string: -> { self::Strict::String },
11
+ non_empty_string: -> { self::Strict::String.constrained(min_size: 1) },
12
12
  boolean: -> { self::Strict::Bool }
13
13
  }.freeze
14
14
 
15
- def process(value, as:, optional: false)
15
+ def process(value, as:, optional: false, error: Kreds::InvalidArgumentError, message: nil)
16
16
  checker = type_for(as)
17
17
  checker = checker.optional if optional
18
18
 
19
19
  checker[value]
20
20
  rescue Dry::Types::CoercionError => e
21
- raise Kreds::InvalidArgumentError, e
21
+ raise error, message || e.message
22
22
  end
23
23
 
24
24
  private
data/lib/kreds/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Kreds
2
- VERSION = "1.1.2"
2
+ VERSION = "1.1.3".freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kreds
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.2
4
+ version: 1.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - enjaku4