(self, other)
return False
Does this Ref completely follow ``other`` Ref?

        :param other:
        :return bool:
Does this Ref completely follow ``other`` Ref?
Does this Ref completely follow other Ref?
def follows(self, other) -> bool:
        """
        Does this Ref completely follow ``other`` Ref?

        :param other:
        :return bool:
        """
        assert isinstance(other, Ref)
        if not self.index_node == other.index_node:
            return False

        my_start = self.starting_ref()
        other_end = other.ending_ref()

        smallest_section_len = min([len(my_start.sections), len(other_end.sections)])

        # Bare book references never precede or follow
        if smallest_section_len == 0:
            return False

        # Compare all but last section
        for i in range(smallest_section_len - 1):
            if my_start.sections[i] > other_end.sections[i]:
                return True
            if my_start.sections[i] < other_end.sections[i]:
                return False

        # Compare last significant section
        if my_start.sections[smallest_section_len - 1] > other_end.sections[smallest_section_len - 1]:
            return True

        return False
def follows ( self , other ) -> bool : assert isinstance ( other , Ref ) if not self . index_node == other . index_node : return False my_start = self . starting_ref ( ) other_end = other . ending_ref ( ) smallest_section_len = min ( [ len ( my_start . sections ) , len ( other_end . sections ) ] ) # Bare book references never precede or follow if smallest_section_len == 0 : return False # Compare all but last section for i in range ( smallest_section_len - 1 ) : if my_start . sections [ i ] > other_end . sections [ i ] : return True if my_start . sections [ i ] < other_end . sections [ i ] : return False # Compare last significant section if my_start . sections [ smallest_section_len - 1 ] > other_end . sections [ smallest_section_len - 1 ] : return True return False