module Tally::Keyable

Public Class Methods

new(key, record = nil) click to toggle source
# File lib/tally/keyable.rb, line 13
def initialize(key, record = nil)
  @key = key.to_s.gsub(":", ".").downcase.strip
  @record = record
end

Public Instance Methods

day() click to toggle source
# File lib/tally/keyable.rb, line 18
def day
  @day ||= Time.current.utc.to_date
end

Private Instance Methods

daily_key() click to toggle source
# File lib/tally/keyable.rb, line 24
def daily_key
  "#{ prefix }@#{ date_key }"
end
date_key() click to toggle source
# File lib/tally/keyable.rb, line 28
def date_key
  @date_key ||= day.strftime(Tally.config.date_format)
end
prefix() click to toggle source
# File lib/tally/keyable.rb, line 32
def prefix
  Tally.config.prefix
end
record_key() click to toggle source
# File lib/tally/keyable.rb, line 36
def record_key
  if record
    "#{ record.model_name.i18n_key }:#{ record.id }"
  end
end
redis_key() click to toggle source
# File lib/tally/keyable.rb, line 42
def redis_key
  @redis_key ||= "#{ prefix }:#{ simple_key }@#{ date_key }"
end
simple_key() click to toggle source
# File lib/tally/keyable.rb, line 46
def simple_key
  @simple_key ||= if record.respond_to?(:model_name)
    "#{ record_key }:#{ key }"
  else
    key
  end
end