Module: Trax::Core::Definitions

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

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.extended(base) ⇒ Object



4
5
6
# File 'lib/trax/core/definitions.rb', line 4

def self.extended(base)
  base.extend(Trax::Core::Fields)
end

Instance Method Details

#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

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



19
20
21
22
23
24
25
26
27
28
# File 'lib/trax/core/definitions.rb', line 19

def struct(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::Struct, :parent_definition => self, &block)
  end

  attribute_klass
end