class DBus::Data::Base
The base class for explicitly typed values.
A value is either {Basic} or a {Container}. {Basic} values are either {Fixed}-size or {StringLike}.
Attributes
value[R]
@return [::Object] a valid value, plain-Ruby typed. @see Data::Container#exact_value
Public Class Methods
assert_type_matches_class(type)
click to toggle source
@param type [Type]
# File lib/dbus/data.rb 107 def self.assert_type_matches_class(type) 108 raise ArgumentError, "Expecting #{type_code.inspect} for class #{self}, got #{type.sigtype.inspect}" \ 109 unless type.sigtype == type_code 110 end
new(value)
click to toggle source
Child classes must validate value.
# File lib/dbus/data.rb 84 def initialize(value) 85 @value = value 86 end
Public Instance Methods
==(other)
click to toggle source
# File lib/dbus/data.rb 88 def ==(other) 89 @value == if other.is_a?(Base) 90 other.value 91 else 92 other 93 end 94 end
eql?(other)
click to toggle source
Hash key equality See ruby-doc.org/core-3.0.0/Object.html#method-i-eql-3F Stricter than == (RSpec: eq), 1==1.0 but 1.eql(1.0)->false
# File lib/dbus/data.rb 99 def eql?(other) 100 return false unless other.class == self.class 101 102 other.value.eql?(@value) 103 # TODO: this should work, now check derived classes, exact_value 104 end