Method: Trax::Core::Definitions#enum

Defined in:
lib/trax/core/definitions.rb

#enum(klass_name, **options, &block) ⇒ Object



8
9
10
11
12
13
14
15
16
17
# File 'lib/trax/core/definitions.rb', line 8

def enum(klass_name, **options, &block)
  attribute_klass = if options.key?(:extends)
    _klass_prototype = options[:extends].constantize.clone
    ::Trax::Core::NamedClass.new("#{self.name}::#{klass_name}", _klass_prototype, :parent_definition => self, &block)
  else
    ::Trax::Core::NamedClass.new("#{self.name}::#{klass_name}", ::Trax::Core::Types::Enum, :parent_definition => self, &block)
  end

  attribute_klass
end