module Mongoid::Acts::NestedSet::Document::InstanceMethods
Public Instance Methods
<=>(x)
click to toggle source
order by left field
# File lib/mongoid_nested_set/document.rb, line 183 def <=>(x) left <=> x.left end
==(comparison_object)
click to toggle source
Redefine to act like active record
# File lib/mongoid_nested_set/document.rb, line 189 def ==(comparison_object) comparison_object.equal?(self) || (comparison_object.instance_of?(scope_class) && comparison_object.id == id && !comparison_object.new_record?) end
child?()
click to toggle source
Returns true if this is a child node
# File lib/mongoid_nested_set/document.rb, line 165 def child? !parent_id.nil? end
depth?()
click to toggle source
Returns true if depth is supported
# File lib/mongoid_nested_set/document.rb, line 171 def depth? true end
leaf?()
click to toggle source
Returns true if this is a leaf node
# File lib/mongoid_nested_set/document.rb, line 158 def leaf? #!new_record? && right - left == 1 right - left == 1 end
left()
click to toggle source
Value of the left field
# File lib/mongoid_nested_set/document.rb, line 140 def left self[left_field_name] end
nested_set_scope()
click to toggle source
All nested set queries should use this nested_set_scope
, which performs finds using the :scope declared in the acts_as_nested_set declaration
# File lib/mongoid_nested_set/document.rb, line 214 def nested_set_scope scopes = Array(acts_as_nested_set_options[:scope]) conditions = scopes.inject({}) do |conditions,attr| conditions.merge attr => self[attr] end unless scopes.empty? scope_class.criteria.where(conditions).asc(left_field_name) end
outline_numbering?()
click to toggle source
Returns true if outline numbering is supported
# File lib/mongoid_nested_set/document.rb, line 177 def outline_numbering? !!outline_number_field_name end
parent_id()
click to toggle source
Value fo the parent field
# File lib/mongoid_nested_set/document.rb, line 134 def parent_id self[parent_field_name] end
right()
click to toggle source
Value of the right field
# File lib/mongoid_nested_set/document.rb, line 146 def right self[right_field_name] end
root?()
click to toggle source
Returns true if this is a root node
# File lib/mongoid_nested_set/document.rb, line 152 def root? parent_id.nil? end
same_scope?(other)
click to toggle source
Check if other model is in the same scope
# File lib/mongoid_nested_set/document.rb, line 198 def same_scope?(other) Array(acts_as_nested_set_options[:scope]).all? do |attr| self.send(attr) == other.send(attr) end end
to_text()
click to toggle source
# File lib/mongoid_nested_set/document.rb, line 205 def to_text self_and_descendants.map do |node| "#('*'*(node.level+1)} #{node.id} #{node.to_s} (#{node.parent_id}, #{node.left}, #{node.right})" end.join("\n") end
Protected Instance Methods
reload_nested_set()
click to toggle source
reload left, right, and parent
# File lib/mongoid_nested_set/document.rb, line 232 def reload_nested_set reload end
without_self(scope)
click to toggle source
# File lib/mongoid_nested_set/document.rb, line 226 def without_self(scope) scope.where(:_id.ne => self.id) end