Sha256: 2411328eac3470ec7a4135489ec4252d4a842fa848f080d869c101fd125837dd

Contents?: true

Size: 840 Bytes

Versions: 3

Compression:

Stored size: 840 Bytes

Contents

module Pay
  module Env
    private

    # Search for environment variables
    #
    # We must handle a lot of different cases, including the new Rails 6
    # environment separated credentials files which have no nesting for
    # the current environment.
    #
    # 1. Check environment variable
    # 2. Check environment scoped credentials, then secrets
    # 3. Check unscoped credentials, then secrets
    def find_value_by_name(scope, name)
      ENV["#{scope.upcase}_#{name.upcase}"] ||
        credentials.dig(env, scope, name) ||
        secrets.dig(env, scope, name) ||
        credentials.dig(scope, name) ||
        secrets.dig(scope, name)
    end

    def env
      Rails.env.to_sym
    end

    def secrets
      Rails.application.secrets
    end

    def credentials
      Rails.application.credentials
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
pay-2.0.2 lib/pay/env.rb
pay-2.0.1 lib/pay/env.rb
pay-2.0.0 lib/pay/env.rb