module Rollbar
Public Class Methods
error(e)
click to toggle source
# File lib/heroku/rollbar.rb, line 4 def self.error(e) return if ENV['HEROKU_DISABLE_ERROR_REPORTING'] payload = json_encode(build_payload(e)) response = Excon.post('https://api.rollbar.com/api/1/item/', :body => payload) response = json_decode(response.body) raise response.to_s if response["err"] != 0 response["result"]["uuid"] rescue $stderr.puts(e.message, e.backtrace.join("\n")) nil end
Private Class Methods
base_payload()
click to toggle source
# File lib/heroku/rollbar.rb, line 38 def self.base_payload { :access_token => '488f0c3af3d6450cb5b5827c8099dbff', :data => { :platform => 'client', :environment => 'production', :code_version => Heroku::VERSION, :client => { :platform => RUBY_PLATFORM, :ruby => RUBY_VERSION }, :request => { :command => ARGV[0] } } } end
build_message_payload(message)
click to toggle source
# File lib/heroku/rollbar.rb, line 32 def self.build_message_payload(message) payload = base_payload payload[:data][:body] = {:message => {:body => message}} payload end
build_payload(e)
click to toggle source
# File lib/heroku/rollbar.rb, line 18 def self.build_payload(e) if e.is_a? Exception build_trace_payload(e) else build_message_payload(e.to_s) end end
build_trace_payload(e)
click to toggle source
# File lib/heroku/rollbar.rb, line 26 def self.build_trace_payload(e) payload = base_payload payload[:data][:body] = {:trace => trace_from_exception(e)} payload end
frames_from_exception(e)
click to toggle source
# File lib/heroku/rollbar.rb, line 61 def self.frames_from_exception(e) e.backtrace.map do |line| filename, lineno, method = line.scan(/(.+):(\d+):in `(.*)'/)[0] { :filename => filename, :lineno => lineno.to_i, :method => method } end end
trace_from_exception(e)
click to toggle source
# File lib/heroku/rollbar.rb, line 51 def self.trace_from_exception(e) { :frames => frames_from_exception(e), :exception => { :class => e.class.to_s, :message => e.message } } end