diff --git a/.gitignore b/.gitignore index 56fabd8..c937098 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ log/* .DS_Store coverage pkg +*.kpf diff --git a/lib/merb_hoptoad_notifier/hoptoad_notifier.rb b/lib/merb_hoptoad_notifier/hoptoad_notifier.rb index 186edd7..d07bb05 100644 --- a/lib/merb_hoptoad_notifier/hoptoad_notifier.rb +++ b/lib/merb_hoptoad_notifier/hoptoad_notifier.rb @@ -20,6 +20,34 @@ def environment_filters @environment_filters ||= %w(AWS_ACCESS_KEY AWS_SECRET_ACCESS_KEY AWS_ACCOUNT SSH_AUTH_SOCK) end + def warn_hoptoad(message, request, session, options={}) + return if request.nil? + params = request.params + + data = { + :api_key => HoptoadNotifier.api_key, + :error_class => options[:error_class] || "Warning", + :error_message => message, + :backtrace => caller, + :environment => ENV.to_hash + } + + data[:request] = { + :params => params[:original_params] + } + + data[:environment] = clean_hoptoad_environment(ENV.to_hash.merge(request.env)) + data[:environment][:RAILS_ENV] = Merb.env + + data[:session] = { + :key => session.instance_variable_get("@session_id"), + :data => session.instance_variable_get("@data") + } + + send_to_hoptoad :notice => default_notice_options.merge(data) + true + end + def notify_hoptoad(request, session) return if request.nil? params = request.params