Module: Monarchy::ActsAsResource::InstanceMethods

Defined in:
lib/monarchy/acts_as_resource.rb

Instance Method Summary collapse

Instance Method Details

#childrenObject



77
78
79
# File 'lib/monarchy/acts_as_resource.rb', line 77

def children
  @children ||= children_resources
end

#children=(array) ⇒ Object



81
82
83
84
# File 'lib/monarchy/acts_as_resource.rb', line 81

def children=(array)
  hierarchy&.update(children: hierarchies_for(array))
  @children = array
end

#ensure_hierarchy(force = false) ⇒ Object



86
87
88
89
90
91
92
# File 'lib/monarchy/acts_as_resource.rb', line 86

def ensure_hierarchy(force = false)
  self.hierarchy ||= Monarchy.hierarchy_class.create(
    resource: self,
    parent: parent.try(:hierarchy),
    children: hierarchies_for(children)
  ) if self.class.automatic_hierarchy || force
end

#parentObject



67
68
69
# File 'lib/monarchy/acts_as_resource.rb', line 67

def parent
  @parent = hierarchy.try(:parent).try(:resource) || @parent
end

#parent=(resource) ⇒ Object



71
72
73
74
75
# File 'lib/monarchy/acts_as_resource.rb', line 71

def parent=(resource)
  Monarchy::Validators.resource(resource, true)
  hierarchy&.update(parent: resource.try(:ensure_hierarchy))
  @parent = resource
end