class IronBank::User

A Zuora user, only available if the user data has been exported and provided to IronBank through the `users_file` configuration option.

Cf. knowledgecenter.zuora.com/CF_Users_and_Administrators/A_Administrator_Settings/Manage_Users#Export_User_Data_to_a_CSV_File

Constants

FIELDS
US_DATE_FORMAT

Attributes

attributes[R]

Public Class Methods

all() click to toggle source
# File lib/iron_bank/user.rb, line 35
def all
  store.values
end
find(user_id) click to toggle source
# File lib/iron_bank/user.rb, line 39
def find(user_id)
  store[user_id] || raise(IronBank::NotFoundError, "user id: #{user_id}")
end
load_records() click to toggle source
# File lib/iron_bank/user.rb, line 29
def load_records
  CSV.foreach(users_file, headers: true).with_object({}) do |row, store|
    store[row["User ID"]] = new(row.to_h.compact)
  end
end
new(attributes) click to toggle source
# File lib/iron_bank/user.rb, line 76
def initialize(attributes)
  @attributes = attributes
end
store() click to toggle source
# File lib/iron_bank/user.rb, line 16
def store
  return {} unless users_file

  @store ||= begin
    if File.exist?(users_file)
      load_records
    else
      IronBank.logger.warn "File does not exist: #{users_file}"
      {}
    end
  end
end

Public Instance Methods

created_on() click to toggle source
# File lib/iron_bank/user.rb, line 90
def created_on
  @created_on ||= Date.strptime(attributes["Created On"], US_DATE_FORMAT)
end
inspect() click to toggle source
# File lib/iron_bank/user.rb, line 80
def inspect
  ruby_id = "#{self.class.name}:0x#{(object_id << 1).to_s(16)} id=\"#{id}\""

  "#<#{ruby_id} user_name=\"#{user_name}\">"
end
last_login() click to toggle source
# File lib/iron_bank/user.rb, line 86
def last_login
  @last_login ||= Date.strptime(attributes["Last Login"], US_DATE_FORMAT)
end