Sha256: 7b37036b16ea54150f97e159c5e564926d17bd5c5ea9f558ce1e069672b330bb

Contents?: true

Size: 1022 Bytes

Versions: 3

Compression:

Stored size: 1022 Bytes

Contents

# frozen_string_literal: true

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

3 entries across 3 versions & 1 rubygems

Version Path
auther-7.0.0 lib/auther/keymaster.rb
auther-6.1.0 lib/auther/keymaster.rb
auther-6.0.0 lib/auther/keymaster.rb