Exception: Appscript::CommandError

Inherits:
RuntimeError
  • Object
show all
Defined in:
lib/rb-scpt.rb

Overview

COMMAND ERROR

public

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(reference, command_name, parameters, real_error, codecs) ⇒ CommandError

Returns a new instance of CommandError.



1014
1015
1016
1017
1018
# File 'lib/rb-scpt.rb', line 1014

def initialize(reference, command_name, parameters, real_error, codecs)
  @reference, @command_name, @parameters = reference, command_name, parameters
  @real_error, @codecs = real_error, codecs
  super()
end

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



1012
1013
1014
# File 'lib/rb-scpt.rb', line 1012

def name
  @name
end

#parametersObject (readonly)

Returns the value of attribute parameters.



1012
1013
1014
# File 'lib/rb-scpt.rb', line 1012

def parameters
  @parameters
end

#real_errorObject (readonly)

Returns the value of attribute real_error.



1012
1013
1014
# File 'lib/rb-scpt.rb', line 1012

def real_error
  @real_error
end

#referenceObject (readonly)

Returns the value of attribute reference.



1012
1013
1014
# File 'lib/rb-scpt.rb', line 1012

def reference
  @reference
end

Instance Method Details

#error_messageObject



1048
1049
1050
# File 'lib/rb-scpt.rb', line 1048

def error_message
  return @real_error.message
end

#error_numberObject Also known as: to_i



1038
1039
1040
1041
1042
1043
1044
# File 'lib/rb-scpt.rb', line 1038

def error_number
  if @real_error.is_a?(AE::MacOSError) or @real_error.is_a?(AEM::EventError)
    return @real_error.to_i
  else
    return -2700
  end
end

#expected_typeObject



1058
1059
1060
1061
1062
# File 'lib/rb-scpt.rb', line 1058

def expected_type
  return nil if not @real_error.is_a?(AEM::EventError)
  desc = @real_error.raw[KAE::KOSAErrorExpectedType]
  return desc ? @codecs.unpack(desc) : nil
end

#offending_objectObject



1052
1053
1054
1055
1056
# File 'lib/rb-scpt.rb', line 1052

def offending_object
  return nil if not @real_error.is_a?(AEM::EventError)
  desc = @real_error.raw[KAE::KOSAErrorOffendingObject]
  return desc ? @codecs.unpack(desc) : nil
end

#partial_resultObject



1064
1065
1066
1067
1068
# File 'lib/rb-scpt.rb', line 1064

def partial_result
  return nil if not @real_error.is_a?(AEM::EventError)
  desc = @real_error.raw[KAE::KOSAErrorPartialResult]
  return desc ? @codecs.unpack(desc) : nil
end

#to_sObject



1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
# File 'lib/rb-scpt.rb', line 1020

def to_s
  if @real_error.is_a?(AEM::EventError)
    err = "CommandError\n\t\tOSERROR: #{error_number}"
    err += "\n\t\tMESSAGE: #{error_message}" if error_message != ''
    [
      ["\n\t\tOFFENDING OBJECT", KAE::KOSAErrorOffendingObject],
      ["\n\t\tEXPECTED TYPE", KAE::KOSAErrorExpectedType],
      ["\n\t\tPARTIAL RESULT", KAE::KOSAErrorPartialResult],
    ].each do |label, key|
      desc = @real_error.raw[key]
      err += "#{label}: #{@codecs.unpack(desc).inspect}" if desc
    end
  else
    err = @real_error
  end
  return "#{err}\n\t\tCOMMAND: #{@reference}.#{@command_name}(#{(@parameters.collect { |item| item.inspect }).join(', ')})\n"
end