class HecksDomain::Parser::DomainObject
Attributes
aggregate[R]
fields[R]
name[R]
Public Class Methods
new(name, aggregate, &block)
click to toggle source
# File lib/hecks/domain/parser/domain_object.rb, line 6 def initialize(name, aggregate, &block) @name = name @aggregate = aggregate @operations = [] @fields = [] if is_a?(Entity) add_field(:id, IntegerField).tap { |field| field.optional = true } end instance_eval(&block) end
Public Instance Methods
binding()
click to toggle source
Calls superclass method
# File lib/hecks/domain/parser/domain_object.rb, line 112 def binding super end
boolean(name)
click to toggle source
# File lib/hecks/domain/parser/domain_object.rb, line 87 def boolean(name) add_field(name, BooleanField) end
boolean_accessors()
click to toggle source
# File lib/hecks/domain/parser/domain_object.rb, line 29 def boolean_accessors @fields.select { |field| field.is_a?(BooleanField) } end
commands()
click to toggle source
# File lib/hecks/domain/parser/domain_object.rb, line 51 def commands @commands end
currency(name)
click to toggle source
# File lib/hecks/domain/parser/domain_object.rb, line 79 def currency(name) add_field(name, CurrencyField) end
entity(name)
click to toggle source
# File lib/hecks/domain/parser/domain_object.rb, line 91 def entity(name) add_field(name, EntityField) end
file_name()
click to toggle source
# File lib/hecks/domain/parser/domain_object.rb, line 99 def file_name folder_name + '.rb' end
folder_name()
click to toggle source
# File lib/hecks/domain/parser/domain_object.rb, line 103 def folder_name @name.to_s.underscore end
initializer_attributes()
click to toggle source
# File lib/hecks/domain/parser/domain_object.rb, line 21 def initializer_attributes @fields.reject(&:read_only?).map(&:attribute_name).join(', ') end
integer(name)
click to toggle source
# File lib/hecks/domain/parser/domain_object.rb, line 63 def integer(name) add_field(name, IntegerField) end
invariants()
click to toggle source
# File lib/hecks/domain/parser/domain_object.rb, line 25 def invariants @invariants end
list(name)
click to toggle source
# File lib/hecks/domain/parser/domain_object.rb, line 55 def list(name) add_field(name, ListField) end
list_accessors()
click to toggle source
# File lib/hecks/domain/parser/domain_object.rb, line 33 def list_accessors @fields.select { |field| field.is_a?(ListField) } end
operations(list)
click to toggle source
# File lib/hecks/domain/parser/domain_object.rb, line 67 def operations(list) @operations = list @operations = list.map do |name| Operation.new(name: name, domain_object: self) end end
operations_get()
click to toggle source
# File lib/hecks/domain/parser/domain_object.rb, line 75 def operations_get @operations end
optional(value)
click to toggle source
# File lib/hecks/domain/parser/domain_object.rb, line 17 def optional(value) value.optional = true end
private_accessors()
click to toggle source
# File lib/hecks/domain/parser/domain_object.rb, line 45 def private_accessors @fields.map do |field| field.private_accessor end.compact.join(', ') end
public_accessors()
click to toggle source
# File lib/hecks/domain/parser/domain_object.rb, line 37 def public_accessors @fields.map do |field| field.public_accessor end.tap do |fields| fields << ':id' if is_a?(Entity) end.compact.join(', ') end
read_only(value)
click to toggle source
# File lib/hecks/domain/parser/domain_object.rb, line 107 def read_only(value) value.read_only = true value end
reference(name)
click to toggle source
# File lib/hecks/domain/parser/domain_object.rb, line 95 def reference(name) add_field(name, ReferenceField) end
string(name)
click to toggle source
# File lib/hecks/domain/parser/domain_object.rb, line 59 def string(name) add_field(name, StringField) end
value(name)
click to toggle source
# File lib/hecks/domain/parser/domain_object.rb, line 83 def value(name) add_field(name, ValueField) end
Private Instance Methods
add_field(name, type)
click to toggle source
# File lib/hecks/domain/parser/domain_object.rb, line 118 def add_field(name, type) type.new(name).tap { |field| @fields << field } end