kreds 1.1.7 → 2.0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 25d3eedf22bd754fdefe50c162f437fbced4417d1dc22170f7a63e950c5ccf27
4
- data.tar.gz: 21e488de4ad9d8f7777e5215e10709e2089cf65a97c43f075ccb23871dbf593d
3
+ metadata.gz: 999a28daaa8839baa7e0ef9d1c2ff9f71fe244852ff18aa915998a8b48778214
4
+ data.tar.gz: 61fc895370da4b88283255b5d624105a915aef7e6ccf243817a52bde688105f7
5
5
  SHA512:
6
- metadata.gz: 94388daa3c0f6415135f437c4d76d2097492d7963e195bc038b5e1a6a2ae06838e60638234bd88c0aa51de87706ded1254fcb3627e6a4f561da882bb7a2191d3
7
- data.tar.gz: 80c30b05d7aca780b1d1b4eee7766516daf110885ebdc1e744189906032355a116b1e082d28783851e98312639d2b377ac3ef1a485a5df99a8b6255e16c36064
6
+ metadata.gz: d832a8fc6215794b577870950409214c0a3271032be13405037e304101b6b2f63f74724ff6af3bf6d956f21401232001a27aa652ff7176f465999b8d3c4545ae
7
+ data.tar.gz: 8436bcf11fa89dd44a88683f6b05e657e984be67b82caaf603308abec24e09685cb42112e3163387d79d89f4bc3f80caa456d919dbcfe2d0f00996622678e932
data/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ ## v2.0.0
2
+
3
+ - Dropped support for Ruby 3.2
4
+ - Dropped support for Rails 7.1
5
+ - Improved error messages and input validation
6
+ - Added `Kreds.env_show` method
7
+ - `Kreds.env_fetch!` now raises `InvalidArgumentError` when called with no keys
8
+
1
9
  ## v1.1.7
2
10
 
3
11
  - Added support for Ruby 4
data/README.md CHANGED
@@ -24,10 +24,10 @@ Rails.application.credentials.fetch(:recaptcha).fetch(:key)
24
24
 
25
25
  # Kreds (clear, human-readable errors):
26
26
  Kreds.fetch!(:recaptcha, :site_key)
27
- # => Blank value in credentials: [:recaptcha][:site_key] (Kreds::BlankCredentialsError)
27
+ # => Blank value in credentials: :recaptcha => :site_key (Kreds::BlankCredentialsError)
28
28
 
29
29
  Kreds.fetch!(:recaptcha, :key)
30
- # => Credentials key not found: [:recaptcha][:key] (Kreds::UnknownCredentialsError)
30
+ # => Credentials key not found: :recaptcha => :key (Kreds::UnknownCredentialsError)
31
31
  ```
32
32
 
33
33
  ## Table of Contents
@@ -139,13 +139,25 @@ Useful for debugging and exploring available credentials in the Rails console.
139
139
 
140
140
  ```ruby
141
141
  Kreds.show
142
+ # => { production: { aws: { access_key_id: "...", secret_access_key: "..." } }, ... }
143
+ ```
144
+
145
+ **`Kreds.env_show`**
146
+
147
+ Like `show`, but scoped to the current Rails environment.
148
+
149
+ **Returns:** Hash containing credentials for `Rails.env`
150
+
151
+ ```ruby
152
+ # In production, returns credentials[:production]
153
+ Kreds.env_show
142
154
  # => { aws: { access_key_id: "...", secret_access_key: "..." }, ... }
143
155
  ```
144
156
 
145
157
  ## Getting Help and Contributing
146
158
 
147
159
  ### Getting Help
148
- Have a question or need assistance? Open a discussion in our [discussions section](https://github.com/enjaku4/kreds/discussions) for:
160
+ Have a question or need assistance? Open a discussion in the [discussions section](https://github.com/enjaku4/kreds/discussions) for:
149
161
  - Usage questions
150
162
  - Implementation guidance
151
163
  - Feature suggestions
@@ -160,7 +172,7 @@ Found a bug? Please [create an issue](https://github.com/enjaku4/kreds/issues) w
160
172
  Ready to contribute? You can:
161
173
  - Fix bugs by submitting pull requests
162
174
  - Improve documentation
163
- - Add new features (please discuss first in our [discussions section](https://github.com/enjaku4/kreds/discussions))
175
+ - Add new features (please discuss first in the [discussions section](https://github.com/enjaku4/kreds/discussions))
164
176
 
165
177
  Before contributing, please read the [contributing guidelines](https://github.com/enjaku4/kreds/blob/master/CONTRIBUTING.md)
166
178
 
data/kreds.gemspec CHANGED
@@ -16,7 +16,7 @@ Gem::Specification.new do |spec|
16
16
  spec.summary = "The missing shorthand for Rails credentials"
17
17
  spec.description = "Simpler and safer Rails credentials access with blank value detection and clear error messages"
18
18
  spec.license = "MIT"
19
- spec.required_ruby_version = ">= 3.2", "< 4.1"
19
+ spec.required_ruby_version = ">= 3.3", "< 4.1"
20
20
 
21
21
  spec.files = [
22
22
  "kreds.gemspec", "README.md", "CHANGELOG.md", "LICENSE.txt"
@@ -24,5 +24,5 @@ Gem::Specification.new do |spec|
24
24
 
25
25
  spec.require_paths = ["lib"]
26
26
 
27
- spec.add_dependency "rails", ">= 7.1", "< 8.2"
27
+ spec.add_dependency "rails", ">= 7.2", "< 8.2"
28
28
  end
data/lib/kreds/fetch.rb CHANGED
@@ -14,7 +14,7 @@ module Kreds
14
14
  end
15
15
 
16
16
  def env_fetch!(*keys, var: nil, &)
17
- fetch!(Rails.env, *keys, var:, &)
17
+ fetch!(Rails.env, *Kreds::Inputs.process(keys, as: :symbol_array), var:, &)
18
18
  end
19
19
 
20
20
  def var!(var, &)
@@ -33,7 +33,7 @@ module Kreds
33
33
  value = hash.fetch(key)
34
34
 
35
35
  raise Kreds::BlankCredentialsError, "Blank value in credentials: #{path_to_s(path)}" if value.blank?
36
- raise Kreds::UnknownCredentialsError, "Credentials key not found: #{path_to_s(path)}[:#{keys[path.size]}]" unless value.is_a?(Hash) || keys == path
36
+ raise Kreds::UnknownCredentialsError, "Credentials key not found: #{path_to_s(path.append(keys[path.size]))}" unless value.is_a?(Hash) || keys == path
37
37
 
38
38
  value
39
39
  rescue KeyError
@@ -41,7 +41,7 @@ module Kreds
41
41
  end
42
42
 
43
43
  def fallback_to_var(error, var, &)
44
- return raise_or_yield(error, &) if var.blank?
44
+ return raise_or_yield(error, &) if var.nil?
45
45
 
46
46
  var!(var, &)
47
47
  rescue Kreds::BlankEnvironmentVariableError, Kreds::UnknownEnvironmentVariableError => e
@@ -53,7 +53,7 @@ module Kreds
53
53
  end
54
54
 
55
55
  def path_to_s(path)
56
- "[:#{path.join("][:")}]"
56
+ path.map(&:inspect).join(" => ")
57
57
  end
58
58
  end
59
59
  end
data/lib/kreds/show.rb CHANGED
@@ -1,7 +1,11 @@
1
1
  module Kreds
2
2
  module Show
3
3
  def show
4
- Rails.application.credentials.as_json.deep_symbolize_keys
4
+ Rails.application.credentials.config.to_h
5
+ end
6
+
7
+ def env_show
8
+ show[Rails.env.to_sym] || {}
5
9
  end
6
10
  end
7
11
  end
data/lib/kreds/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Kreds
2
- VERSION = "1.1.7".freeze
2
+ VERSION = "2.0.0".freeze
3
3
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kreds
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.7
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - enjaku4
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 1980-01-02 00:00:00.000000000 Z
10
+ date: 2026-03-31 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: rails
@@ -15,7 +15,7 @@ dependencies:
15
15
  requirements:
16
16
  - - ">="
17
17
  - !ruby/object:Gem::Version
18
- version: '7.1'
18
+ version: '7.2'
19
19
  - - "<"
20
20
  - !ruby/object:Gem::Version
21
21
  version: '8.2'
@@ -25,7 +25,7 @@ dependencies:
25
25
  requirements:
26
26
  - - ">="
27
27
  - !ruby/object:Gem::Version
28
- version: '7.1'
28
+ version: '7.2'
29
29
  - - "<"
30
30
  - !ruby/object:Gem::Version
31
31
  version: '8.2'
@@ -64,7 +64,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
64
64
  requirements:
65
65
  - - ">="
66
66
  - !ruby/object:Gem::Version
67
- version: '3.2'
67
+ version: '3.3'
68
68
  - - "<"
69
69
  - !ruby/object:Gem::Version
70
70
  version: '4.1'
@@ -74,7 +74,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
76
  requirements: []
77
- rubygems_version: 3.7.2
77
+ rubygems_version: 4.0.8
78
78
  specification_version: 4
79
79
  summary: The missing shorthand for Rails credentials
80
80
  test_files: []