Method: StewEucen::Acts::FertileForest::Table::Reconstructers#normalize_queue

Defined in:
lib/fertile_forest/modules/reconstructers.rb

#normalize_queue(node_obj = nil, boundary_node_obj = nil) ⇒ Boolean

Normalize ff_queue fields in ordered grove.

Parameters:

  • node_obj (Entity|Integer) (defaults to: nil)

    Start node.

  • boundary_node_obj (Entity|Integer) (defaults to: nil)

    Boundary node.

Returns:

  • (Boolean)

    true: Success.

  • (Boolean)

    false: Failure.



634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
# File 'lib/fertile_forest/modules/reconstructers.rb', line 634

def normalize_queue(node_obj = nil, boundary_node_obj = nil)
  transaction do
    # nodes can be nil
    aim_node = ff_resolve_nodes(node_obj)
    aim_boundary_node = ff_resolve_nodes(boundary_node_obj)

    aim_top_queue      = aim_node         .blank? ? nil : aim_node         .ff_queue
    aim_boundary_queue = aim_boundary_node.blank? ? nil : aim_boundary_node.ff_queue

    res = ff_evenize(aim_node.ff_grove, aim_top_queue, aim_boundary_queue, 0)  # 0: no appmend node

    # return value
    if res.present?
      res[EVENIZE_AFFECTED_ROWS_KEY]
    else
      false
    end
  end
end