Module: Goldendocx::HasChildren::ClassMethods

Defined in:
lib/goldendocx/has_children.rb

Instance Method Summary collapse

Instance Method Details

#default_value(name) ⇒ Object



40
41
42
43
44
45
# File 'lib/goldendocx/has_children.rb', line 40

def default_value(name)
  options = children[name]
  return [] if options[:multiple]

  options[:class_name].constantize.new if options[:auto_build]
end

#embeds_many(name, class_name:, uniqueness: false) ⇒ Object



29
30
31
32
33
34
35
36
37
38
# File 'lib/goldendocx/has_children.rb', line 29

def embeds_many(name, class_name:, uniqueness: false)
  warning_naming_suggestion(__method__, name, name.to_s.pluralize)

  options = { class_name:, multiple: true, uniqueness: }
  self.children = children.merge(name => options)

  create_children_getter(name)
  create_children_setter(name)
  create_children_builder(name)
end

#embeds_one(name, class_name:, auto_build: false) ⇒ Object



18
19
20
21
22
23
24
25
26
27
# File 'lib/goldendocx/has_children.rb', line 18

def embeds_one(name, class_name:, auto_build: false)
  warning_naming_suggestion(__method__, name, name.to_s.singularize)

  options = { class_name:, multiple: false, auto_build: }
  self.children = children.merge(name => options)

  create_children_getter(name)
  create_children_setter(name)
  create_children_builder(name)
end