kreds 1.1.6 → 1.1.7

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: 854050f1d4157bcfb7cd033c15d751ddfa22ee702f77bd768752e96048f6ae26
4
- data.tar.gz: 7e549366af77fc5d2621bbbcccc87c66e927d458892ffc71fdd8950f25b9b92b
3
+ metadata.gz: 25d3eedf22bd754fdefe50c162f437fbced4417d1dc22170f7a63e950c5ccf27
4
+ data.tar.gz: 21e488de4ad9d8f7777e5215e10709e2089cf65a97c43f075ccb23871dbf593d
5
5
  SHA512:
6
- metadata.gz: 0d1ced3f9f5f4d2817a4ebb654e90ef0aa5c48dea648156d0e72843134a2ab2fb032e4fd85ba90a7f8a2987584c3eb9ce1710b0f97c7b16c2989c297300f0bb5
7
- data.tar.gz: 84f636b9899db018c4f5af342a40ef18cbf3c77e705f0d7d7ad8635f8ac8c96c2c2bdb7073435581d5e253457c5aea8ec327054db37113e21694052e148faa86
6
+ metadata.gz: 94388daa3c0f6415135f437c4d76d2097492d7963e195bc038b5e1a6a2ae06838e60638234bd88c0aa51de87706ded1254fcb3627e6a4f561da882bb7a2191d3
7
+ data.tar.gz: 80c30b05d7aca780b1d1b4eee7766516daf110885ebdc1e744189906032355a116b1e082d28783851e98312639d2b377ac3ef1a485a5df99a8b6255e16c36064
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## v1.1.7
2
+
3
+ - Added support for Ruby 4
4
+ - Dropped unnecessary dependencies
5
+
1
6
  ## v1.1.6
2
7
 
3
8
  - Added support for Rails 8.1
data/README.md CHANGED
@@ -5,7 +5,7 @@
5
5
  [![Github Actions badge](https://github.com/enjaku4/kreds/actions/workflows/ci.yml/badge.svg)](https://github.com/enjaku4/kreds/actions/workflows/ci.yml)
6
6
  [![License](https://img.shields.io/github/license/enjaku4/kreds.svg)](LICENSE)
7
7
 
8
- Rails credentials are a convenient way to store secrets, but retrieving them could be more intuitive - that's where Kreds comes in. Kreds is a simpler, shorter, and safer way to access Rails credentials, with a few extra features built in. It provides environment variable fallback support and blank value detection with clear human-readable error messages.
8
+ Rails credentials are a convenient way to store secrets, but retrieving them could be more intuitive. Kreds provides a simpler, shorter, and safer way to access Rails credentials with blank value detection and clear human-readable error messages.
9
9
 
10
10
  **Example of Usage:**
11
11
 
@@ -54,7 +54,7 @@ gem "kreds"
54
54
 
55
55
  Install the gem:
56
56
 
57
- ```bash
57
+ ```shell
58
58
  bundle install
59
59
  ```
60
60
 
data/kreds.gemspec CHANGED
@@ -4,18 +4,19 @@ Gem::Specification.new do |spec|
4
4
  spec.name = "kreds"
5
5
  spec.version = Kreds::VERSION
6
6
  spec.authors = ["enjaku4"]
7
- spec.email = ["enjaku4@icloud.com"]
7
+ spec.email = ["contact@brownbox.dev"]
8
8
  spec.homepage = "https://github.com/enjaku4/kreds"
9
9
  spec.metadata["homepage_uri"] = spec.homepage
10
10
  spec.metadata["source_code_uri"] = spec.homepage
11
11
  spec.metadata["changelog_uri"] = "#{spec.homepage}/blob/master/CHANGELOG.md"
12
12
  spec.metadata["bug_tracker_uri"] = "#{spec.homepage}/issues"
13
13
  spec.metadata["documentation_uri"] = "#{spec.homepage}/blob/master/README.md"
14
+ spec.metadata["mailing_list_uri"] = "#{spec.homepage}/discussions"
14
15
  spec.metadata["rubygems_mfa_required"] = "true"
15
16
  spec.summary = "The missing shorthand for Rails credentials"
16
- spec.description = "Kreds provides a simpler, shorter, and safer way to access Rails credentials with clear error messages, environment variable fallback support, and blank value detection"
17
+ spec.description = "Simpler and safer Rails credentials access with blank value detection and clear error messages"
17
18
  spec.license = "MIT"
18
- spec.required_ruby_version = ">= 3.2", "< 3.5"
19
+ spec.required_ruby_version = ">= 3.2", "< 4.1"
19
20
 
20
21
  spec.files = [
21
22
  "kreds.gemspec", "README.md", "CHANGELOG.md", "LICENSE.txt"
@@ -23,6 +24,5 @@ Gem::Specification.new do |spec|
23
24
 
24
25
  spec.require_paths = ["lib"]
25
26
 
26
- spec.add_dependency "dry-types", "~> 1.7"
27
27
  spec.add_dependency "rails", ">= 7.1", "< 8.2"
28
28
  end
data/lib/kreds/fetch.rb CHANGED
@@ -1,9 +1,7 @@
1
1
  module Kreds
2
2
  module Fetch
3
3
  def fetch!(*keys, var: nil, &)
4
- symbolized_keys = Kreds::Inputs.process(
5
- keys, as: :symbol_array, message: "Expected an array of symbols or strings, got `#{keys.inspect}`"
6
- )
4
+ symbolized_keys = Kreds::Inputs.process(keys, as: :symbol_array)
7
5
 
8
6
  path = []
9
7
 
@@ -12,13 +10,7 @@ module Kreds
12
10
  fetch_key(hash, key, path, symbolized_keys)
13
11
  end
14
12
  rescue Kreds::BlankCredentialsError, Kreds::UnknownCredentialsError => e
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
- )
13
+ fallback_to_var(e, Kreds::Inputs.process(var, as: :non_empty_string, optional: true), &)
22
14
  end
23
15
 
24
16
  def env_fetch!(*keys, var: nil, &)
@@ -26,9 +18,7 @@ module Kreds
26
18
  end
27
19
 
28
20
  def var!(var, &)
29
- value = ENV.fetch(
30
- Kreds::Inputs.process(var, as: :non_empty_string, message: "Expected a non-empty string, got `#{var.inspect}`")
31
- )
21
+ value = ENV.fetch(Kreds::Inputs.process(var, as: :non_empty_string))
32
22
 
33
23
  return raise_or_yield(Kreds::BlankEnvironmentVariableError.new("Blank value in environment variable: #{var.inspect}"), &) if value.blank?
34
24
 
data/lib/kreds/inputs.rb CHANGED
@@ -1,28 +1,25 @@
1
- require "dry-types"
2
-
3
1
  module Kreds
4
2
  module Inputs
5
3
  extend self
6
4
 
7
- include Dry.Types()
5
+ def process(value, as:, optional: false)
6
+ return value if optional && value.nil?
7
+
8
+ send(as, value)
9
+ end
8
10
 
9
- TYPES = {
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
- }.freeze
11
+ private
14
12
 
15
- def process(value, as:, optional: false, error: Kreds::InvalidArgumentError, message: nil)
16
- checker = type_for(as)
17
- checker = checker.optional if optional
13
+ def symbol_array(value)
14
+ return value.map(&:to_sym) if value.is_a?(Array) && value.any? && value.all? { _1.is_a?(String) || _1.is_a?(Symbol) }
18
15
 
19
- checker[value]
20
- rescue Dry::Types::CoercionError => e
21
- raise error, message || e.message
16
+ raise(Kreds::InvalidArgumentError, "Expected an array of symbols or strings, got `#{value.inspect}`")
22
17
  end
23
18
 
24
- private
19
+ def non_empty_string(value)
20
+ return value if value.is_a?(String) && value.present?
25
21
 
26
- def type_for(name) = Kreds::Inputs::TYPES.fetch(name)
22
+ raise(Kreds::InvalidArgumentError, "Expected a non-empty string, got `#{value.inspect}`")
23
+ end
27
24
  end
28
25
  end
data/lib/kreds/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Kreds
2
- VERSION = "1.1.6".freeze
2
+ VERSION = "1.1.7".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.6
4
+ version: 1.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - enjaku4
@@ -9,20 +9,6 @@ bindir: bin
9
9
  cert_chain: []
10
10
  date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
- - !ruby/object:Gem::Dependency
13
- name: dry-types
14
- requirement: !ruby/object:Gem::Requirement
15
- requirements:
16
- - - "~>"
17
- - !ruby/object:Gem::Version
18
- version: '1.7'
19
- type: :runtime
20
- prerelease: false
21
- version_requirements: !ruby/object:Gem::Requirement
22
- requirements:
23
- - - "~>"
24
- - !ruby/object:Gem::Version
25
- version: '1.7'
26
12
  - !ruby/object:Gem::Dependency
27
13
  name: rails
28
14
  requirement: !ruby/object:Gem::Requirement
@@ -43,11 +29,10 @@ dependencies:
43
29
  - - "<"
44
30
  - !ruby/object:Gem::Version
45
31
  version: '8.2'
46
- description: Kreds provides a simpler, shorter, and safer way to access Rails credentials
47
- with clear error messages, environment variable fallback support, and blank value
48
- detection
32
+ description: Simpler and safer Rails credentials access with blank value detection
33
+ and clear error messages
49
34
  email:
50
- - enjaku4@icloud.com
35
+ - contact@brownbox.dev
51
36
  executables: []
52
37
  extensions: []
53
38
  extra_rdoc_files: []
@@ -70,6 +55,7 @@ metadata:
70
55
  changelog_uri: https://github.com/enjaku4/kreds/blob/master/CHANGELOG.md
71
56
  bug_tracker_uri: https://github.com/enjaku4/kreds/issues
72
57
  documentation_uri: https://github.com/enjaku4/kreds/blob/master/README.md
58
+ mailing_list_uri: https://github.com/enjaku4/kreds/discussions
73
59
  rubygems_mfa_required: 'true'
74
60
  rdoc_options: []
75
61
  require_paths:
@@ -81,7 +67,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
81
67
  version: '3.2'
82
68
  - - "<"
83
69
  - !ruby/object:Gem::Version
84
- version: '3.5'
70
+ version: '4.1'
85
71
  required_rubygems_version: !ruby/object:Gem::Requirement
86
72
  requirements:
87
73
  - - ">="