Module: Ecoportal::API::Common::Content::DoubleModel::DoubleDoc::ReplaceableDoc

Extended by:
Includer
Includes:
VarTracking
Defined in:
lib/ecoportal/api/common/content/double_model/double_doc/replaceable_doc.rb

Instance Method Summary collapse

Methods included from Includer

include_missing

Instance Method Details

#replace_doc(new_doc) ⇒ Object

INSTANCE METHODS



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/ecoportal/api/common/content/double_model/double_doc/replaceable_doc.rb', line 25

def replace_doc(new_doc)
  return (@doc = new_doc) if root?

  unless linked?
    raise UnlinkedModel.new(
      from: "#{self.class}##{__method__}",
      key:  _parent_key
    )
  end

  dig_set!(
    _parent.doc,
    resolved_rooted_doc_key,
    new_doc
  )

  _parent.variable_remove!(_parent_key) unless new_doc
  #variables_remove!

end