ask-auth 0.1.4 → 0.2.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: 52438e8c475956073bd3f61dcba1e5f6f6ff0619cf83532ba6429603786373e6
4
- data.tar.gz: 199345260588e9813e0feddd9881fbcf7290e67dae2ed5fd259c380085927dad
3
+ metadata.gz: 899769786d686dad5733fb428f4947d077af5e4913573558890ac309dc246d7e
4
+ data.tar.gz: 8dad782619a917d310858ec90136b86638fdffe64e71060c72ba8af42f91a41f
5
5
  SHA512:
6
- metadata.gz: 39dd2a342b2b02afb910bc1132b8e90e211a2607d0413db69808646ac04fa91653c16d9014284f5e6a841370a497621d4eb6b83c83151c46a7d6a73739f9f815
7
- data.tar.gz: 0dc793d15763b903da6b55b85e0791ef90c4c86f6d81059abab08211767d7d980b492c774d305dea683d884d68869dd98f9d4269abd72b43980909a3b4407c3a
6
+ metadata.gz: 69064653971ef660f7c2aa2f297f5a1119888a18b5521ebee9c4bbf1058f474ffb70275d9cf60dec044ee94565520d9e0fc9defc782ee4b74505e17b01d4a6c4
7
+ data.tar.gz: e819dd4a9a9bac4a5d9cca0064d750610b16c8d1baf3de33cd4bb792ec3292279091a271e0c34ccfa85738ff228cd798384e503ef4cd909aae96b4e66b118fca
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Ask
4
4
  module Auth
5
- VERSION = "0.1.4"
5
+ VERSION = "0.2.0"
6
6
  end
7
7
  end
data/lib/ask/auth.rb CHANGED
@@ -18,10 +18,12 @@ module Ask
18
18
  #
19
19
  module Auth
20
20
  class MissingCredential < KeyError
21
- def initialize(name)
22
- super("No credential found for #{name.inspect}. " \
23
- "Set #{name.to_s.upcase} in your environment, add it to ~/.ask/credentials.yml, " \
24
- "or configure a provider.")
21
+ def initialize(names)
22
+ names = Array(names).flatten
23
+ inspected = names.map(&:inspect).join(", ")
24
+ super("No credential found for #{inspected}. " \
25
+ "Set one of #{names.map { |n| n.to_s.upcase }.uniq.join(", ")} in your environment, " \
26
+ "add it to ~/.ask/credentials.yml, or configure a provider.")
25
27
  end
26
28
  end
27
29
 
@@ -49,21 +51,29 @@ module Ask
49
51
  end
50
52
 
51
53
  # Walk providers in order and return the first non-nil credential.
52
- # +name+:: Symbol or String identifying the credential (e.g. +:github_token+)
54
+ # Accepts one or more credential names tries each in order,
55
+ # returning the first match across all providers.
56
+ #
57
+ # Ask::Auth.resolve(:openai_api_key)
58
+ # Ask::Auth.resolve(:opencode_go_api_key, :opencode_api_key, user: current_user)
59
+ #
60
+ # +names+:: One or more Symbols or Strings identifying the credential
53
61
  # +user+:: Optional user record for per-user providers (Database, OAuth)
54
- def resolve(name, user: nil)
55
- name = name.to_s.strip
56
- return nil if name.empty?
62
+ def resolve(*names, user: nil)
63
+ names = names.flatten.map { |n| n.to_s.strip }.reject(&:empty?)
64
+ return nil if names.empty?
57
65
 
58
- configuration.providers.each do |provider|
59
- value = provider.call(name, user: user)
60
- next if value.nil?
66
+ names.each do |name|
67
+ configuration.providers.each do |provider|
68
+ value = provider.call(name, user: user)
69
+ next if value.nil?
61
70
 
62
- normalized = normalize(value)
63
- return normalized unless normalized.nil?
71
+ normalized = normalize(value)
72
+ return normalized unless normalized.nil?
73
+ end
64
74
  end
65
75
 
66
- raise MissingCredential, name
76
+ raise MissingCredential, names
67
77
  end
68
78
 
69
79
  private
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ask-auth
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kaka Ruto