Sha256: 5d6e541e219e45d8cf21c7df4b5ded4b91208d3c1c217a932cac8976246a37f3

Contents?: true

Size: 1.44 KB

Versions: 18

Compression:

Stored size: 1.44 KB

Contents

# error.rb
#
# This file is part of the ruby-dbus project
# Copyright (C) 2007 Arnaud Cornet and Paul van Tilburg
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License, version 2.1 as published by the Free Software Foundation.
# See the file "COPYING" for the exact licensing terms.

module DBus
  # Represents a D-Bus Error, both on the client and server side.
  class Error < StandardError
    # error_name. +message+ is inherited from +Exception+
    attr_reader :name
    # for received errors, the raw D-Bus message
    attr_reader :dbus_message

    # If +msg+ is a +DBus::Message+, its contents is used for initialization.
    # Otherwise, +msg+ is taken as a string and +name+ is used.
    def initialize(msg, name = "org.freedesktop.DBus.Error.Failed")
      if msg.is_a? DBus::Message
        @dbus_message = msg
        @name = msg.error_name
        super(msg.params[0]) # or nil
        if msg.params[1].is_a? Array
          set_backtrace msg.params[1]
        end
      else
        @name = name
        super(msg)
      end
      # TODO validate error name
    end
  end # class Error

  # raise DBus.error, "message"
  # raise DBus.error("org.example.Error.SeatOccupied"), "Seat #{n} is occupied"
  def error(name = "org.freedesktop.DBus.Error.Failed")
    # message will be set by Kernel.raise
    DBus::Error.new(nil, name)
  end
  module_function :error
end # module DBus

Version data entries

18 entries across 18 versions & 2 rubygems

Version Path
ruby-dbus-0.10.0 lib/dbus/error.rb
ruby-dbus-0.9.3 lib/dbus/error.rb
ruby-dbus-0.9.2 lib/dbus/error.rb
ruby-dbus-0.9.1 lib/dbus/error.rb
ruby-dbus-openplacos-0.7.2.2 lib/dbus/error.rb
ruby-dbus-0.9.0 lib/dbus/error.rb
ruby-dbus-0.8.0 lib/dbus/error.rb
ruby-dbus-openplacos-0.7.2.1 lib/dbus/error.rb
ruby-dbus-openplacos-0.7.2 lib/dbus/error.rb
ruby-dbus-0.7.2 lib/dbus/error.rb
ruby-dbus-0.7.1 lib/dbus/error.rb
ruby-dbus-openplacos-0.7.0 lib/dbus/error.rb
ruby-dbus-0.7.0 lib/dbus/error.rb
ruby-dbus-openplacos-0.6.2 lib/dbus/error.rb
ruby-dbus-openplacos-0.6.1 lib/dbus/error.rb
ruby-dbus-openplacos-0.6.0 lib/dbus/error.rb
ruby-dbus-0.6.0 lib/dbus/error.rb
ruby-dbus-0.5.0 lib/dbus/error.rb