def borrow_from_next_sibling(next_node)
      if next_node.keys.length - 1 > min_keys
        # The next sibling now has a new lead key that requires the branch key
        # to be updated in the parent node.
        index = next_node.parent.search_node_index(next_node) - 1

        if is_leaf?
          # Move the first key of the next node to the end of the this node
          self.keys << next_node.keys.shift
          # Register the new lead key of next_node with its parent
          next_node.parent.keys[index] = next_node.keys.first
          # Move the first value of the next node to the end of this node
          self.values << next_node.values.shift
        else
          # For branch nodes we need to get the lead key from the parent of
          # next_node.
          self.keys << next_node.parent.keys[index]
          # The old lead key of next_node becomes the branch key in the parent
          # of next_node. And the keys of next_node are shifted.
          next_node.parent.keys[index] = next_node.keys.shift
          # Move the first child of the next node to the end of this node
          self.children << (node = next_node.children.shift)
          node.parent = myself
        end

        return true
      end

      false
    end
def borrow_from_next_sibling(next_node)
      if next_node.keys.length - 1 > min_keys
        # The next sibling now has a new lead key that requires the branch key
        # to be updated in the parent node.
        index = next_node.parent.search_node_index(next_node) - 1

        if is_leaf?
          # Move the first key of the next node to the end of the this node
          self.keys << next_node.keys.shift
          # Register the new lead key of next_node with its parent
          next_node.parent.keys[index] = next_node.keys.first
          # Move the first value of the next node to the end of this node
          self.values << next_node.values.shift
        else
          # For branch nodes we need to get the lead key from the parent of
          # next_node.
          self.keys << next_node.parent.keys[index]
          # The old lead key of next_node becomes the branch key in the parent
          # of next_node. And the keys of next_node are shifted.
          next_node.parent.keys[index] = next_node.keys.shift
          # Move the first child of the next node to the end of this node
          self.children << (node = next_node.children.shift)
          node.parent = myself
        end

        return true
      end

      false
    end
Try to borrow an element from the next sibling.
 @return [True or False] True if an element was borrowed, false
         otherwise.