Module: NoBrainer::Tree::ClassMethods

Defined in:
lib/nobrainer/tree.rb

Overview

This module implements class methods that will be available on the document that includes NoBrainer::Tree

Instance Method Summary collapse

Instance Method Details

#leavesNoBrainer::Criteria

Returns all leaves (be careful, currently involves two queries)

Examples:

Node.leaves

Returns:

  • (NoBrainer::Criteria)

    NoBrainer criteria to retrieve all leave nodes



143
144
145
# File 'lib/nobrainer/tree.rb', line 143

def leaves
  where(:id.nin => pluck(:id, :_type, :parent_id).collect(&:parent_id).compact)
end

#rootNoBrainer::Document

Returns the first root document

Examples:

Node.root

Returns:

  • (NoBrainer::Document)

    The first root document



121
122
123
# File 'lib/nobrainer/tree.rb', line 121

def root
  roots.first
end

#rootsNoBrainer::Criteria

Returns all root documents

Examples:

Node.roots

Returns:

  • (NoBrainer::Criteria)

    NoBrainer criteria to retrieve all root documents



132
133
134
# File 'lib/nobrainer/tree.rb', line 132

def roots
  where(:or => [:parent_id.defined => false, :parent_id => nil])
end