Sha256: d394994202b6463cfe4999f0d1cf58e6c240274530cc48bcd8dc9dcae230ca2b
Contents?: true
Size: 1.23 KB
Versions: 1
Compression:
Stored size: 1.23 KB
Contents
class Bullhorn module Sender extend self def serialize(str) str # CGI.escape(Base64.encode64(str.to_json).strip) end def notify(exception, env) Net::HTTP.post_form(URI(url), { :api_key => api_key, :message => exception.message, :backtrace => serialize(exception.backtrace), :env => serialize(whitelist(env)), :request_body => serialize(whitelist(request_body(env))) }) end protected def request_body(env) if io = env['rack.input'] io.rewind if io.respond_to?(:rewind) io.read end rescue "" end def whitelist(str_or_hash) case str_or_hash when Hash str_or_hash.dup.tap do |h| h.keys.each do |key| if h[key].respond_to?(:gsub) h[key] = sanitize(h[key]) else h[key] = h[key].inspect end end end when String sanitize(str_or_hash) end end def sanitize(str) str.dup.tap do |ret| @filters.each do |filter| ret.gsub!(Regexp.new(FILTERING % filter)) { |m| m.gsub($1, '[FILTERED]') } end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
bullhorn-0.0.1 | lib/bullhorn/sender.rb |