class Bizness::Filters::EventFilter

Public Instance Methods

call() click to toggle source
# File lib/bizness/filters/event_filter.rb, line 3
def call
  Hey.publish!("#{event_name}#{delimiter}executed", payload) do
    evented_call
  end
end

Private Instance Methods

delimiter() click to toggle source
# File lib/bizness/filters/event_filter.rb, line 35
def delimiter
  Hey.configuration.delimiter
end
event_name() click to toggle source
# File lib/bizness/filters/event_filter.rb, line 21
def event_name
  __original_operation__.class.name.underscore.gsub("/", delimiter)
end
evented_call() click to toggle source
# File lib/bizness/filters/event_filter.rb, line 11
def evented_call
  result = filtered_operation.call
  event_status = (respond_to?(:successful?) && !successful?) ? "failed" : "succeeded"
  Hey.publish!("#{event_name}#{delimiter}#{event_status}", payload(result))
  result
rescue Exception => e
  Hey.publish!("#{event_name}#{delimiter}aborted", payload.merge(error: e.message, stacktrace: e.backtrace, exception: e.class.name))
  raise e
end
payload(result = nil) click to toggle source
# File lib/bizness/filters/event_filter.rb, line 25
def payload(result = nil)
  if self.respond_to?(:to_h)
    to_h
  elsif result.is_a?(Hash)
    result
  else
    Hash.new
  end
end