Class: Ask::Auth::Providers::RailsCredentials

Inherits:
Object
  • Object
show all
Defined in:
lib/ask/auth/providers/rails_credentials.rb

Overview

Resolves credentials from Rails encrypted credentials.

Convention: resolve(:github_token) looks up Rails.application.credentials.github.token (dot-separated path from the credential name).

Safely returns nil when Rails is not loaded.

Instance Method Summary collapse

Instance Method Details

#call(name, user: nil) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
# File 'lib/ask/auth/providers/rails_credentials.rb', line 13

def call(name, user: nil)
  return nil unless defined?(::Rails) && ::Rails.application.respond_to?(:credentials)

  parts = name.to_s.split("_")
  value = parts.reduce(::Rails.application.credentials) do |obj, part|
    break nil unless obj.respond_to?(part)
    obj.public_send(part)
  end

  value
end