class Pagy
Public Instance Methods
pagy_cursor_get_items(collection, pagy, position=nil)
click to toggle source
# File lib/pagy_cursor/pagy/extras/cursor.rb, line 23 def pagy_cursor_get_items(collection, pagy, position=nil) if position.present? sql_comparation = pagy.arel_table[pagy.primary_key].send(pagy.comparation, position) collection.where(sql_comparation).reorder(pagy.order).limit(pagy.items) else collection.reorder(pagy.order).limit(pagy.items) end end
pagy_cursor_get_vars(collection, vars)
click to toggle source
# File lib/pagy_cursor/pagy/extras/cursor.rb, line 16 def pagy_cursor_get_vars(collection, vars) vars[:arel_table] = collection.arel_table vars[:primary_key] = collection.primary_key vars[:backend] = 'sequence' vars end
pagy_cursor_has_more?(collection, pagy)
click to toggle source
# File lib/pagy_cursor/pagy/extras/cursor.rb, line 32 def pagy_cursor_has_more?(collection, pagy) return false if collection.empty? next_position = collection.last[pagy.primary_key] pagy_cursor_get_items(collection, pagy, next_position).exists? end
pagy_uuid_cursor_get_items(collection, pagy, position=nil)
click to toggle source
# File lib/pagy_cursor/pagy/extras/uuid_cursor.rb, line 22 def pagy_uuid_cursor_get_items(collection, pagy, position=nil) if position.present? arel_table = pagy.arel_table select_created_at = arel_table.project(arel_table[:created_at]).where(arel_table[pagy.primary_key].eq(position)) select_the_sample_created_at = arel_table[:created_at].eq(select_created_at).and(arel_table[pagy.primary_key].send(pagy.comparation, position)) sql_comparation = arel_table[:created_at].send(pagy.comparation, select_created_at).or(select_the_sample_created_at) collection = collection.where(sql_comparation) end collection.reorder(pagy.order).limit(pagy.items) end
pagy_uuid_cursor_get_vars(collection, vars)
click to toggle source
# File lib/pagy_cursor/pagy/extras/uuid_cursor.rb, line 15 def pagy_uuid_cursor_get_vars(collection, vars) vars[:arel_table] = collection.arel_table vars[:primary_key] = collection.primary_key vars[:backend] = 'uuid' vars end
pagy_uuid_cursor_has_more?(collection, pagy)
click to toggle source
# File lib/pagy_cursor/pagy/extras/uuid_cursor.rb, line 35 def pagy_uuid_cursor_has_more?(collection, pagy) return false if collection.empty? next_position = collection.last[pagy.primary_key] pagy_uuid_cursor_get_items(collection, pagy, next_position).exists? end