lib/honeybadger/cli/notify.rb in honeybadger-5.2.0 vs lib/honeybadger/cli/notify.rb in honeybadger-5.2.1

- old
+ new

@@ -1,67 +1,67 @@ -require 'digest' -require 'forwardable' -require 'honeybadger/cli/main' -require 'honeybadger/cli/helpers' -require 'honeybadger/util/http' -require 'honeybadger/util/stats' - -module Honeybadger - module CLI - class Notify - extend Forwardable - include Helpers::BackendCmd - - def initialize(options, args, config) - @options = options - @args = args - @config = config - @shell = ::Thor::Base.shell.new - end - - def run - payload = { - api_key: config.get(:api_key), - notifier: NOTIFIER, - error: { - class: options['class'], - message: options['message'] - }, - request: {}, - server: { - project_root: Dir.pwd, - environment_name: config.get(:env), - time: Time.now, - stats: Util::Stats.all - } - } - - payload[:error][:fingerprint] = Digest::SHA1.hexdigest(options['fingerprint']) if option?('fingerprint') - payload[:error][:tags] = options['tags'].to_s.strip.split(',').map(&:strip) if option?('tags') - - payload[:request][:component] = options['component'] if option?('component') - payload[:request][:action] = options['action'] if option?('action') - payload[:request][:url] = options['url'] if option?('url') - - payload.delete(:request) if payload[:request].empty? - - response = config.backend.notify(:notices, payload) - if response.success? - say("Error notification complete.", :green) - else - say(error_message(response), :red) - exit(1) - end - end - - private - - attr_reader :options, :args, :config - - def_delegator :@shell, :say - - def option?(key) - options.has_key?(key) && options[key] != key - end - end - end -end +require 'digest' +require 'forwardable' +require 'honeybadger/cli/main' +require 'honeybadger/cli/helpers' +require 'honeybadger/util/http' +require 'honeybadger/util/stats' + +module Honeybadger + module CLI + class Notify + extend Forwardable + include Helpers::BackendCmd + + def initialize(options, args, config) + @options = options + @args = args + @config = config + @shell = ::Thor::Base.shell.new + end + + def run + payload = { + api_key: config.get(:api_key), + notifier: NOTIFIER, + error: { + class: options['class'], + message: options['message'] + }, + request: {}, + server: { + project_root: Dir.pwd, + environment_name: config.get(:env), + time: Time.now, + stats: Util::Stats.all + } + } + + payload[:error][:fingerprint] = Digest::SHA1.hexdigest(options['fingerprint']) if option?('fingerprint') + payload[:error][:tags] = options['tags'].to_s.strip.split(',').map(&:strip) if option?('tags') + + payload[:request][:component] = options['component'] if option?('component') + payload[:request][:action] = options['action'] if option?('action') + payload[:request][:url] = options['url'] if option?('url') + + payload.delete(:request) if payload[:request].empty? + + response = config.backend.notify(:notices, payload) + if response.success? + say("Error notification complete.", :green) + else + say(error_message(response), :red) + exit(1) + end + end + + private + + attr_reader :options, :args, :config + + def_delegator :@shell, :say + + def option?(key) + options.has_key?(key) && options[key] != key + end + end + end +end