module XDR::DSL::Enum
Public Instance Methods
member(name, value)
click to toggle source
# File lib/xdr/dsl/enum.rb, line 3 def member(name, value) raise ArgumentError, "#{self} is sealed" if self.sealed raise ArgumentError, "#{value} is not Fixnum" unless value.is_a?(Fixnum) raise ArgumentError, "#{value} is already used" unless name = name.to_s.underscore instance = new(name, value) self.members = self.members.merge(name => instance) self.by_value = self.by_value.merge(instance.value => instance) class_eval <<-EOS, __FILE__, __LINE__ def self.#{name} members["#{name}"] end EOS end
seal()
click to toggle source
# File lib/xdr/dsl/enum.rb, line 21 def seal self.sealed = true end