Module: Helicoid::Loom::Reporter

Defined in:
lib/loom.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



24
25
26
27
# File 'lib/loom.rb', line 24

def self.included(base)
  base.send(:alias_method, :rescue_action_in_public_without_loom, :rescue_action_in_public)
  base.send(:alias_method, :rescue_action_in_public, :send_to_loom)
end

Instance Method Details

#send_to_loom(exception) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/loom.rb', line 29

def send_to_loom(exception)
  raise if local_request?
  
  send(Helicoid::Loom.before_action) if Helicoid::Loom.before_action
  
  user_id = case Helicoid::Loom.user_id
  when Proc
    Helicoid::Loom.user_id.bind(self).call
  when Symbol, String
    send Helicoid::Loom.user_id
  end
  
  LoomException.log Helicoid::Loom.server, Helicoid::Loom.api_key do |loom|
    loom.session = session.data
    loom.remote_ip = request.remote_ip
    loom.exception = exception
    loom.cookies = request.cookies
    loom.request_parameters = request.parameters
    loom.url = request.request_uri
    loom.user_id = user_id
  end

  rescue_action_in_public_without_loom exception
end