Sha256: 3a5086b1c8bded6250513a0a5eef74a74d80123cf7afa00b367199ce90f17e79

Contents?: true

Size: 995 Bytes

Versions: 11

Compression:

Stored size: 995 Bytes

Contents

module XeroGateway
  class Error
    attr_accessor :description, :date_time, :type, :message
    
    def initialize(params = {})
      params.each do |k,v|
        self.send("#{k}=", v)
      end
    end
    
    def ==(other)
      [:description, :date_time, :type, :message].each do |field|
        return false if send(field) != other.send(field)
      end
      return true
    end

    # pass a REXML::Element error object to 
    # have returned a new Error object
    def self.parse(error_element)
      description = REXML::XPath.first(error_element, "Description")
      date = REXML::XPath.first(error_element, "//DateTime")
      type = REXML::XPath.first(error_element, "//ExceptionType")
      message = REXML::XPath.first(error_element, "//Message")
      Error.new(
        :description => (description.text if description),
        :date_time => (date.text if date),
        :type => (type.text if type),
        :message => (message.text if message)
      )
    end

  end
end

Version data entries

11 entries across 11 versions & 2 rubygems

Version Path
xero_gateway-2.7.0 lib/xero_gateway/error.rb
xero_gateway-2.6.0 lib/xero_gateway/error.rb
xero_gateway-2.5.0 lib/xero_gateway/error.rb
xero_gateway-2.4.0 lib/xero_gateway/error.rb
xero_gateway-2.3.0 lib/xero_gateway/error.rb
xero_gateway-float-2.1.7 lib/xero_gateway/error.rb
xero_gateway-float-2.1.6 lib/xero_gateway/error.rb
xero_gateway-float-2.1.4 lib/xero_gateway/error.rb
xero_gateway-float-2.1.3 lib/xero_gateway/error.rb
xero_gateway-float-2.1.1 lib/xero_gateway/error.rb
xero_gateway-2.1.0 lib/xero_gateway/error.rb