Class: Reportier::Persister

Inherits:
Object
  • Object
show all
Defined in:
lib/reportier/persister.rb

Direct Known Subclasses

MemoryPersister, RedisPersister

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(tracker) ⇒ Persister

Returns a new instance of Persister.



10
11
12
13
# File 'lib/reportier/persister.rb', line 10

def initialize(tracker)
  @tracker  = tracker
  @reporting_vars = {}
end

Class Method Details

.get(tracker, persister_type = Defaults.global.persister) ⇒ Object



4
5
6
7
8
# 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

Instance Method Details

#clearObject



30
31
32
# File 'lib/reportier/persister.rb', line 30

def clear
  @reporting_vars = {}
end

#get_dateObject



34
35
36
# File 'lib/reportier/persister.rb', line 34

def get_date
  @tracker.started_at
end

#reportObject



21
22
23
# File 'lib/reportier/persister.rb', line 21

def report
  attr_messages.inject(&:+).to_s
end

#save(item) ⇒ Object



15
16
17
18
19
# 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) ⇒ Object



38
39
40
# File 'lib/reportier/persister.rb', line 38

def set_date(date)
  @tracker.started_at = date
end

#to_hash(reporting_vars = @reporting_vars) ⇒ Object



42
43
44
# File 'lib/reportier/persister.rb', line 42

def to_hash(reporting_vars = @reporting_vars)
  reporting_vars.merge(@tracker.defaults.reporting_vars)
end

#to_jsonObject



25
26
27
28
# File 'lib/reportier/persister.rb', line 25

def to_json
  hash = to_hash.map { |k,v| "\"#{k}\": #{v}" }.join(",\n")
  "{#{hash}}"
end