Class: Hecks::Domain::DomainBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/domain_builder/head.rb,
lib/domain_builder/value.rb,
lib/domain_builder/domain.rb,
lib/domain_builder/attribute.rb,
lib/domain_builder/reference.rb,
lib/domain_builder/domain_module.rb,
lib/domain_builder/domain_object.rb,
lib/domain_builder/domain_builder.rb

Defined Under Namespace

Classes: Attribute, Domain, DomainModule, DomainObject, Head, Reference, Value

Constant Summary collapse

Types =
{ string: 'String', integer: 'Integer', currency: 'Currency'}

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(domain_name:, &block) ⇒ DomainBuilder

Returns a new instance of DomainBuilder.



16
17
18
19
20
21
# File 'lib/domain_builder/domain_builder.rb', line 16

def initialize(domain_name:, &block)
  @name = domain_name
  @domain = Domain.new(name: domain_name)
  block.yield(@domain)
  self
end

Instance Attribute Details

#domainObject

Returns the value of attribute domain.



14
15
16
# File 'lib/domain_builder/domain_builder.rb', line 14

def domain
  @domain
end

#nameObject

Returns the value of attribute name.



14
15
16
# File 'lib/domain_builder/domain_builder.rb', line 14

def name
  @name
end

#specificationObject

Returns the value of attribute specification.



14
15
16
# File 'lib/domain_builder/domain_builder.rb', line 14

def specification
  @specification
end

Class Method Details

.build(domain_name, &block) ⇒ Object



32
33
34
# File 'lib/domain_builder/domain_builder.rb', line 32

def self.build(domain_name, &block)
  new(domain_name: domain_name, &block)
end

Instance Method Details

#[](module_name) ⇒ Object



27
28
29
# File 'lib/domain_builder/domain_builder.rb', line 27

def [](module_name)
  domain_modules[module_name]
end

#domain_modulesObject



23
24
25
# File 'lib/domain_builder/domain_builder.rb', line 23

def domain_modules
  @domain.domain_modules
end