class Ephemeron::Logger
Constants
- PROXY_EVENTS
- VALID_EVENTS
Public Instance Methods
has?(model, event)
click to toggle source
# File lib/ephemeron/writers/logger.rb, line 14 def has?(model, event) validate model, event logs.include? Convert.call(model, event) end
log(model, event, opts = {})
click to toggle source
# File lib/ephemeron/writers/logger.rb, line 19 def log(model, event, opts = {}) validate model, event logs << Convert.call(model, event) rescue LoggerError, StoreError => e raise e unless opts[:soft] end
logs()
click to toggle source
# File lib/ephemeron/writers/logger.rb, line 10 def logs self.ts_logs ||= [] end
reset()
click to toggle source
# File lib/ephemeron/writers/logger.rb, line 26 def reset self.ts_logs = [] end
Private Instance Methods
event_name_for_validate(event)
click to toggle source
# File lib/ephemeron/writers/logger.rb, line 51 def event_name_for_validate(event) if event == :used 'mark as used' else 'log' end end
validate(model, event)
click to toggle source
# File lib/ephemeron/writers/logger.rb, line 32 def validate(model, event) raise(LoggerError, "event (#{event}) is invalid") if VALID_EVENTS.exclude?(event) return true if validate_proxy_events model, event raise(StoreError, "can't #{event_name_for_validate event} for nil") if model.nil? return true if Store.has?(model) return true if event == :saved raise StoreError, "can't #{event_name_for_validate event} " \ "if #{Store::Convert.call model} is not in store" end
validate_proxy_events(model, event)
click to toggle source
# File lib/ephemeron/writers/logger.rb, line 44 def validate_proxy_events(model, event) return false if PROXY_EVENTS.exclude?(event) return true if model.nil? raise LoggerError, 'Proxy events can be logged for nil only' end