Module: Monarchy::ActsAsResource::InstanceMethods

Defined in:
lib/monarchy/acts_as_resource.rb

Instance Method Summary collapse

Instance Method Details

#accessible_for(user, options = {}) ⇒ Object



102
103
104
105
# File 'lib/monarchy/acts_as_resource.rb', line 102

def accessible_for(user, options = {})
  Monarchy::Validators.user(user)
  hierarchy.accessible_for(user, options)
end

#childrenObject



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

def children
  @children ||= children_resources
end

#children=(array) ⇒ Object



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

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

#ensure_hierarchy(force = false) ⇒ Object



92
93
94
95
96
97
98
99
100
# File 'lib/monarchy/acts_as_resource.rb', line 92

def ensure_hierarchy(force = false)
  return nil unless self.class.automatic_hierarchy || force

  self.hierarchy ||= Monarchy.hierarchy_class.create(
    resource: self,
    parent: parent.try(:hierarchy),
    children: children_hierarchies(children)
  )
end

#parentObject



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

def parent
  @parent = parent_resource || @parent
end

#parent=(resource) ⇒ Object



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

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