class UniverseCompiler::Entity::Base

Attributes

fields[R]
universe[R]

Public Class Methods

new(fields: {}, universe: nil) click to toggle source
# File lib/universe_compiler/entity.rb, line 25
def initialize(fields: {}, universe: nil)
  @fields = fields
  define_known_fields_accessors
  define_reverse_methods
  self.universe = universe
  self.fully_resolved = true
  if universe.nil?
    self.name = self.class.get_unique_name(nil) if self.class.auto_named_entity_type?
  else
    unless universe.compiled?
      self.name = self.class.get_unique_name(universe) if self.class.auto_named_entity_type?
    end
  end
end

Public Instance Methods

[](key) click to toggle source
# File lib/universe_compiler/entity.rb, line 49
def [](key)
  fields[key]
end
[]=(key, value) click to toggle source
# File lib/universe_compiler/entity.rb, line 53
def []=(key, value)
  fields[key] = value
end
universe=(a_universe) click to toggle source
# File lib/universe_compiler/entity.rb, line 40
def universe=(a_universe)
  unless fully_resolved?
    deep_traverse fields do |leaf|
      leaf.universe = a_universe if leaf.is_a? UniverseCompiler::Entity::Reference
    end
  end
  @universe = a_universe
end