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