lib/honeybadger/cli/main.rb in honeybadger-3.0.2 vs lib/honeybadger/cli/main.rb in honeybadger-3.1.0

- old
+ new

@@ -4,10 +4,11 @@ require 'honeybadger/cli/install' require 'honeybadger/cli/notify' require 'honeybadger/cli/test' require 'honeybadger/config' require 'honeybadger/config/defaults' +require 'honeybadger/ruby' require 'honeybadger/util/http' require 'honeybadger/version' require 'logger' module Honeybadger @@ -135,16 +136,36 @@ def fetch_value(options, key) options[key] == key ? nil : options[key] end def build_config(options) - config = Config.new(logger: Logger.new('/dev/null')) + load_env + + config = Honeybadger.config + config.set(:report_data, true) config.set(:api_key, fetch_value(options, 'api_key')) if options.has_key?('api_key') config.set(:env, fetch_value(options, 'environment')) if options.has_key?('environment') - config.init!({ - framework: :cli - }) + config + end + + def load_env + # Initialize Rails when running from Rails root. + environment_rb = File.join(Dir.pwd, 'config', 'environment.rb') + load_rails_env(environment_rb) if File.exists?(environment_rb) + + # Ensure config is loaded (will be skipped if initialized by Rails). + Honeybadger.config.load! + end + + def load_rails_env(environment_rb) + begin + require 'rails' + rescue LoadError + # No Rails, so skip loading Rails environment. + return + end + require environment_rb end def log_error(e) case e when *Util::HTTP::ERRORS