module Rekkyo::Type::ClassMethods
Constants
- UNSPECIFIED
Public Instance Methods
all()
click to toggle source
# File lib/rekkyo/type.rb, line 36 def all @members.dup end
Also aliased as: members
member(key, value = UNSPECIFIED)
click to toggle source
# File lib/rekkyo/type.rb, line 19 def member(key, value = UNSPECIFIED) value = key if value == UNSPECIFIED key = key.upcase.to_sym validate_member(key, value) self::Member.new(key, value).freeze.tap do |m| @members << m self.const_set(key, m) self::Member.class_exec do define_method(:"#{key.downcase}?") { self.match?(m) } end end end
Private Instance Methods
validate_member(key, value)
click to toggle source
# File lib/rekkyo/type.rb, line 44 def validate_member(key, value) raise DuplicateMemberError if self.const_defined?(key, false) || @members.any? { |m| m.match? value } end