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
14
# File 'lib/reportier/persister.rb', line 10

def initialize(tracker)
  @tracker  = tracker
  @reporting_vars = {}
  _initialize_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
33
# File 'lib/reportier/persister.rb', line 30

def clear
  @reporting_vars = {}
  _initialize_reporting_vars
end

#get_dateObject



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

def get_date
  @tracker.started_at
end

#reportObject



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

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

#save(item) ⇒ Object



16
17
18
19
20
# File 'lib/reportier/persister.rb', line 16

def save(item)
  item = item.to_sym
  initialize_reporting_var(item) unless get(item)
  incr(item)
end

#set_date(date) ⇒ Object



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

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

#to_hashObject



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

def to_hash
  @reporting_vars
end

#to_jsonObject



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

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