Sha256: 5b34911dfdeb7ba89371e6fcd227de074a59ce3c6229eef6218189f07607d2f9
Contents?: true
Size: 1.52 KB
Versions: 18
Compression:
Stored size: 1.52 KB
Contents
# frozen_string_literal: true # 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 # @example raise a generic error # raise DBus.error, "message" # @example raise a specific error # 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
Version data entries
18 entries across 18 versions & 1 rubygems