lib/graphql/pagination/relation_connection.rb in graphql-1.12.6 vs lib/graphql/pagination/relation_connection.rb in graphql-1.12.7

- old
+ new

@@ -33,11 +33,11 @@ true elsif first if @nodes && @nodes.count < first false else - relation_count(set_limit(sliced_nodes, first + 1)) == first + 1 + relation_larger_than(sliced_nodes, first) end else false end end @@ -50,9 +50,16 @@ offset = nodes.index(item) + 1 + (@paged_nodes_offset || 0) + (relation_offset(items) || 0) encode(offset.to_s) end private + + # @param relation [Object] A database query object + # @param size [Integer] The value against which we check the relation size + # @return [Boolean] True if the number of items in this relation is larger than `size` + def relation_larger_than(relation, size) + relation_count(set_limit(relation, size + 1)) == size + 1 + end # @param relation [Object] A database query object # @return [Integer, nil] The offset value, or nil if there isn't one def relation_offset(relation) raise "#{self.class}#relation_offset(relation) must return the offset value for a #{relation.class} (#{relation.inspect})"