class Reportier::Persister

Public Class Methods

get(tracker, persister_type = Defaults.global.persister) click to toggle source
# File lib/reportier/persister.rb, line 4
def self.get(tracker, persister_type = Defaults.global.persister)
  type = Namer.new.name_class(persister_type)
  persister = eval "#{type}Persister"
  persister.new(tracker)
end
new(tracker) click to toggle source
# File lib/reportier/persister.rb, line 10
def initialize(tracker)
  @tracker  = tracker
  @reporting_vars = {}
end

Public Instance Methods

clear() click to toggle source
# File lib/reportier/persister.rb, line 30
def clear
  @reporting_vars = {}
end
get_date() click to toggle source
# File lib/reportier/persister.rb, line 34
def get_date
  @tracker.started_at
end
report() click to toggle source
# File lib/reportier/persister.rb, line 21
def report
  attr_messages.inject(&:+).to_s
end
save(item) click to toggle source
# File lib/reportier/persister.rb, line 15
def save(item)
  item = item.to_sym
  initialize_reporting_var(item) unless get(item)
  incr(item)
end
set_date(date) click to toggle source
# File lib/reportier/persister.rb, line 38
def set_date(date)
  @tracker.started_at = date
end
to_hash(reporting_vars = @reporting_vars) click to toggle source
# File lib/reportier/persister.rb, line 42
def to_hash(reporting_vars = @reporting_vars)
  reporting_vars.merge(@tracker.defaults.reporting_vars)
end
to_json() click to toggle source
# File lib/reportier/persister.rb, line 25
def to_json
  hash = to_hash.map { |k,v| "\"#{k}\": #{v}" }.join(",\n")
  "{#{hash}}"
end

Private Instance Methods

attr_messages() click to toggle source
# File lib/reportier/persister.rb, line 60
def attr_messages
  to_hash.map do |key, val|
    "#{key}: #{val}\n"
  end
end
get(item) click to toggle source
# File lib/reportier/persister.rb, line 52
def get(item)
  @reporting_vars[item]
end
incr(item) click to toggle source
# File lib/reportier/persister.rb, line 48
def incr(item)
  @reporting_vars[item] += 1
end
initialize_reporting_var(name) click to toggle source
# File lib/reportier/persister.rb, line 66
def initialize_reporting_var(name)
  set(name, 0)
end
set(item, val) click to toggle source
# File lib/reportier/persister.rb, line 56
def set(item, val)
  @reporting_vars[item] = 0
end