class XDR::Enum
Attributes
name[R]
value[R]
Public Class Methods
from_name(name)
click to toggle source
# File lib/xdr/enum.rb, line 29 def self.from_name(name) normalized = name.to_s.underscore members[normalized].tap do |r| raise XDR::EnumNameError, "#{name} is not a member of #{self.name}" if r.blank? end end
new(name, value)
click to toggle source
# File lib/xdr/enum.rb, line 39 def initialize(name, value) raise ArgumentError, "#{self.class} is sealed" if self.sealed @name = name @value = value end
read(io)
click to toggle source
# File lib/xdr/enum.rb, line 18 def self.read(io) value = XDR::Int.read(io) by_value[value].tap do |result| raise XDR::EnumValueError, "Unknown #{name} member: #{value}" if result.blank? end end
valid?(val)
click to toggle source
# File lib/xdr/enum.rb, line 25 def self.valid?(val) val.is_a?(self) end
write(val, io)
click to toggle source
# File lib/xdr/enum.rb, line 12 def self.write(val, io) raise XDR::WriteError, "Invalid enum value: #{val.inspect}" unless val.is_a?(self) XDR::Int.write(val.value, io) end
Public Instance Methods
to_s()
click to toggle source
# File lib/xdr/enum.rb, line 45 def to_s "#{self.class.name}.#{@name}(#{@value})" end