Sha256: 0f0c6e1d48a202016f7b253e40cbe679501346e37c6e55c87935a41f45e95d56

Contents?: true

Size: 954 Bytes

Versions: 12

Compression:

Stored size: 954 Bytes

Contents

module Auther
  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

12 entries across 12 versions & 1 rubygems

Version Path
auther-4.1.0 lib/auther/keymaster.rb
auther-4.0.0 lib/auther/keymaster.rb
auther-3.2.0 lib/auther/keymaster.rb
auther-3.1.0 lib/auther/keymaster.rb
auther-3.0.0 lib/auther/keymaster.rb
auther-2.2.0 lib/auther/keymaster.rb
auther-2.1.0 lib/auther/keymaster.rb
auther-2.0.0 lib/auther/keymaster.rb
auther-1.4.0 lib/auther/keymaster.rb
auther-1.3.0 lib/auther/keymaster.rb
auther-1.2.0 lib/auther/keymaster.rb
auther-1.1.0 lib/auther/keymaster.rb