class Reportier::Tracker
Attributes
defaults[R]
name[R]
persister[R]
reporter[R]
started_at[RW]
type[R]
Public Class Methods
[](type)
click to toggle source
# File lib/reportier/tracker.rb, line 7 def self.[](type) @current ||= Hash.new @current[type] ||= new(type: type) end
new(opts = {})
click to toggle source
# File lib/reportier/tracker.rb, line 12 def initialize(opts = {}) @type = opts[:type] @name = Namer.new.name \ "#{opts[:name]}#{@type && @type.capitalize}Tracker" @defaults = Defaults.global @reporter = opts[:reporter] || Reporter.get @persister = opts[:persister] || Persister.get(self) @persister.set_date(_set_date) end
Public Instance Methods
active?()
click to toggle source
# File lib/reportier/tracker.rb, line 35 def active? DateTime.now < expires_at end
add(item)
click to toggle source
# File lib/reportier/tracker.rb, line 22 def add(item) (report && clear) unless active? return if Defaults.global.trackers[@type] == 0 @persister.save(Namer.new.name_item(item)) end
report()
click to toggle source
# File lib/reportier/tracker.rb, line 28 def report @reporter.call(self) do "#{@type} report started at #{@started_at}\n" + @persister.report end end
to_hash()
click to toggle source
# File lib/reportier/tracker.rb, line 43 def to_hash @persister.to_hash end
to_json()
click to toggle source
# File lib/reportier/tracker.rb, line 39 def to_json @persister.to_json end
Private Instance Methods
_long_due?()
click to toggle source
# File lib/reportier/tracker.rb, line 73 def _long_due? expires_at < (DateTime.now - Defaults.global.trackers[@type]) end
_set_date()
click to toggle source
# File lib/reportier/tracker.rb, line 64 def _set_date return DateTime.now if _set_to_now? active? ? get_date : expires_at end
_set_to_now?()
click to toggle source
# File lib/reportier/tracker.rb, line 69 def _set_to_now? get_date.nil? || _long_due? end
clear()
click to toggle source
# File lib/reportier/tracker.rb, line 49 def clear @persister.clear @persister.set_date(_set_date) end
expires_at()
click to toggle source
# File lib/reportier/tracker.rb, line 54 def expires_at get_date + Defaults.global.trackers[@type] end
get_date()
click to toggle source
# File lib/reportier/tracker.rb, line 58 def get_date @persister.get_date end