Module: Embulk::Input::GoogleSpreadsheets::Traceable

Included in:
ConfigError, DataError
Defined in:
lib/embulk/input/google_spreadsheets/error.rb

Instance Method Summary collapse

Instance Method Details

#initialize(e, more_msg = nil) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/embulk/input/google_spreadsheets/error.rb', line 7

def initialize(e, more_msg = nil)
  message = e.is_a?(String) ? '' : "(#{e.class}) "
  message << "#{e}#{more_msg}\n"
  message << "\tat #{e.backtrace.join("\n\tat ")}\n" if e.respond_to?(:backtrace)

  while e.respond_to?(:cause) and e.cause
    # Java Exception cannot follow the JRuby causes.
    message << "Caused by (#{e.cause.class}) #{e.cause}\n"
    message << "\tat #{e.cause.backtrace.join("\n\tat ")}\n" if e.cause.respond_to?(:backtrace)
    e = e.cause
  end

  super(message)
end