Class: HecksDomainBuilder::DomainModule

Inherits:
Object
  • Object
show all
Defined in:
lib/domain_builder/domain_module.rb

Overview

A domain module

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name:) ⇒ DomainModule

Returns a new instance of DomainModule.



6
7
8
9
10
# File 'lib/domain_builder/domain_module.rb', line 6

def initialize(name:)
  @name = name
  @objects = []
  @references = []
end

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



4
5
6
# File 'lib/domain_builder/domain_module.rb', line 4

def name
  @name
end

#objectsObject (readonly)

Returns the value of attribute objects.



4
5
6
# File 'lib/domain_builder/domain_module.rb', line 4

def objects
  @objects
end

#referencesObject (readonly)

Returns the value of attribute references.



4
5
6
# File 'lib/domain_builder/domain_module.rb', line 4

def references
  @references
end

Instance Method Details

#find(name) ⇒ Object



25
26
27
28
29
30
# File 'lib/domain_builder/domain_module.rb', line 25

def find(name)
  @objects.each do |object|
    return object if object.name.downcase == name.downcase
  end
  return nil
end

#head(name = nil) ⇒ Object



12
13
14
15
# File 'lib/domain_builder/domain_module.rb', line 12

def head(name=nil)
  return (@objects << Head.new(name: name)).last if name
  objects.find{ |o| o.is_a?(Head) }
end

#reference(name) ⇒ Object



21
22
23
# File 'lib/domain_builder/domain_module.rb', line 21

def reference(name)
  (@references << Reference.new(name)).last
end

#value(name) ⇒ Object



17
18
19
# File 'lib/domain_builder/domain_module.rb', line 17

def value(name)
  (@objects << Value.new(name: name)).last
end