kreds 1.1.2 → 1.1.4

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: d74986e248d965c5c327a305d00f6fa4e78c3cfa79c0ff3e24d1a51513b2b5ae
4
+ data.tar.gz: b92ca91903f6ed4f001b96af806ab31f241e76585784a5a4c931f1d40a592d7b
5
5
  SHA512:
6
- metadata.gz: ea580b8a4dca8c842c7e6f9c84a678cac94b3136b084dc1c91cb8c44b73d69077532441138c4a9c8bd91f84aec8c80bbb5919a27313cc18cb20d6d2df838bc6d
7
- data.tar.gz: a36ab8f0fe482843697cc96e28c903f08a61e35d0554bf56e696a06b4116af25ab8bb546fc546d2fa781bc37d1b137501f122224059dba298269d2128cd3bfac
6
+ metadata.gz: ef1aa0826e0024caec247ae91af53504684a3e21301db445fc0827358793ff67dd9b1457a9c7b65aaf101daf6e082f5136d054507cb2aa367034d732ff5c2cfd
7
+ data.tar.gz: acf4be931199bf84760259480cc49b85770e48595fe59cb347fa8041d2a6a9a5bc3eaa8aca1c2aabf7c2a88e67fb948ae56b371958ad2551ec0b886325422ca5
data/CHANGELOG.md CHANGED
@@ -1,3 +1,13 @@
1
+ ## v1.1.4
2
+
3
+ - Relaxed dependency versions
4
+ - Minor code optimizations
5
+
6
+ ## v1.1.3
7
+
8
+ - Improved error messages for better clarity
9
+ - Minor code optimizations and cleanup
10
+
1
11
  ## v1.1.2
2
12
 
3
13
  - 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
 
@@ -44,7 +44,7 @@ Kreds.fetch!(:captcha, :site_key)
44
44
  - [Debug and Inspection](#debug-and-inspection)
45
45
 
46
46
  **Community Resources:**
47
- - [Contributing](#contributing)
47
+ - [Getting Help and Contributing](#getting-help-and-contributing)
48
48
  - [License](#license)
49
49
  - [Code of Conduct](#code-of-conduct)
50
50
 
@@ -146,7 +146,7 @@ Kreds.show
146
146
  # => { aws: { access_key_id: "...", secret_access_key: "..." }, ... }
147
147
  ```
148
148
 
149
- ## Contributing
149
+ ## Getting Help and Contributing
150
150
 
151
151
  ### Getting Help
152
152
  Have a question or need assistance? Open a discussion in our [discussions section](https://github.com/brownboxdev/kreds/discussions) for:
data/kreds.gemspec CHANGED
@@ -19,6 +19,6 @@ Gem::Specification.new do |spec|
19
19
 
20
20
  spec.require_paths = ["lib"]
21
21
 
22
- spec.add_dependency "dry-types", "~> 1.8"
22
+ spec.add_dependency "dry-types", "~> 1.7"
23
23
  spec.add_dependency "rails", ">= 7.1", "< 8.1"
24
24
  end
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
@@ -7,22 +7,22 @@ module Kreds
7
7
  include Dry.Types()
8
8
 
9
9
  TYPES = {
10
- symbol_array: -> { self::Array.of(self::Coercible::Symbol).constrained(min_size: 1) },
11
- string: -> { self::Strict::String },
12
- boolean: -> { self::Strict::Bool }
10
+ symbol_array: self::Array.of(self::Coercible::Symbol).constrained(min_size: 1),
11
+ non_empty_string: self::Strict::String.constrained(min_size: 1),
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
25
25
 
26
- def type_for(name) = Kreds::Inputs::TYPES.fetch(name).call
26
+ def type_for(name) = Kreds::Inputs::TYPES.fetch(name)
27
27
  end
28
28
  end
data/lib/kreds/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Kreds
2
- VERSION = "1.1.2"
2
+ VERSION = "1.1.4".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.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - enjaku4
@@ -15,14 +15,14 @@ dependencies:
15
15
  requirements:
16
16
  - - "~>"
17
17
  - !ruby/object:Gem::Version
18
- version: '1.8'
18
+ version: '1.7'
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - "~>"
24
24
  - !ruby/object:Gem::Version
25
- version: '1.8'
25
+ version: '1.7'
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: rails
28
28
  requirement: !ruby/object:Gem::Requirement