Sha256: bef1c43842a1810c19fe6f18d1eaaa947e11365534d4ac3ba4a3a473b6273c3a

Contents?: true

Size: 991 Bytes

Versions: 2

Compression:

Stored size: 991 Bytes

Contents

module Auther
  # Provides access to setting keys.
  class Keymaster
    attr_reader :account_name

    def self.namespace
      "auther"
    end

    def self.redirect_url_key options = {}
      [namespace, "redirect", "url"] * options.fetch(:delimiter, "_")
    end

    def self.get_account_name session = {}
      matching_keys = session.keys.select { |key| key.to_s =~ /auther.+login/ }
      key = matching_keys.first || ""
      key.gsub("#{namespace}_", "").gsub "_login", ""
    end

    def self.get_account_login session = {}
      account_name = get_account_name session
      session[new(account_name).login_key]
    end

    def initialize account_name = nil
      @account_name = account_name
    end

    def login_key
      build_key "login"
    end

    def password_key
      build_key "password"
    end

    private

    def build_key key_name, options = {}
      [self.class.namespace, account_name, key_name].compact * options.fetch(:delimiter, "_")
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
auther-5.0.1 lib/auther/keymaster.rb
auther-5.0.0 lib/auther/keymaster.rb