Module: SortTree::ClassMethods
- Defined in:
- lib/ztree/sort_tree.rb
Instance Method Summary collapse
- #all_parents ⇒ Object
- #order_column ⇒ Object
- #sorted ⇒ Object
- #to_sorted_nodes(c = '') ⇒ Object
- #update_sorted_numbers(numbers) ⇒ Object
Instance Method Details
#all_parents ⇒ Object
17 18 19 |
# File 'lib/ztree/sort_tree.rb', line 17 def all_parents all.select {|c| c.has_children? || c.ancestry.nil?} end |
#order_column ⇒ Object
21 22 23 |
# File 'lib/ztree/sort_tree.rb', line 21 def order_column :order_num end |
#sorted ⇒ Object
6 7 8 9 10 11 |
# File 'lib/ztree/sort_tree.rb', line 6 def sorted all_parents.inject([]) do |cs, r| cs << r cs << r.sorted_children end.flatten.uniq end |
#to_sorted_nodes(c = '') ⇒ Object
25 26 27 |
# File 'lib/ztree/sort_tree.rb', line 25 def to_sorted_nodes(c = '') where(c).group_by(&:parent_id).each {|k,v| v.sort_by! &(order_column.to_sym)}.to_a.flatten.select{|c| !c.is_a?Integer}.compact end |
#update_sorted_numbers(numbers) ⇒ Object
13 14 15 |
# File 'lib/ztree/sort_tree.rb', line 13 def update_sorted_numbers(numbers) numbers.each_with_index {|id, i| self.find(id).update_order(i + 1)} end |