class MongoidEmbedFinder::NestedBuilder

Public Class Methods

new(nested_attrs, relations) click to toggle source
# File lib/mongoid_embed_finder/nested_builder.rb, line 3
def initialize(nested_attrs, relations)
  @nested_attrs = nested_attrs
  @relations = relations
end

Public Instance Methods

build_child() click to toggle source
# File lib/mongoid_embed_finder/nested_builder.rb, line 8
def build_child
  return nil if children_attributes.empty?

  @relations.child_class.new(children_attributes.first).tap do |child|
    child.public_send(@relations.parent.setter, build_parent)
  end
end
build_parent() click to toggle source
# File lib/mongoid_embed_finder/nested_builder.rb, line 16
def build_parent
  @relations.parent_class.new(parent_attributes)
end
children_attributes() click to toggle source
# File lib/mongoid_embed_finder/nested_builder.rb, line 20
def children_attributes
  @children_attributes ||= @nested_attrs.fetch(@relations.children.key)
end
parent_attributes() click to toggle source
# File lib/mongoid_embed_finder/nested_builder.rb, line 24
def parent_attributes
  @parent_attributes ||= @nested_attrs.except(@relations.children.key)
end