Sha256: ab3592858d3db4f6fe42dc2c26f83362679e04d0e89a6f62cc4dbdb49357db82
Contents?: true
Size: 611 Bytes
Versions: 37
Compression:
Stored size: 611 Bytes
Contents
# rubocop:disable Style/Not class Simple::SQL::Scope # Set pagination def paginate(per:, page:) duplicate.send(:paginate!, per: per, page: page) end # Is this a paginated scope? def paginated? not @per.nil? end private def paginate!(per:, page:) @per = per @page = page self end def apply_pagination(sql, pagination:) return sql unless pagination == :auto && @per && @page raise ArgumentError, "per must be > 0" unless @per > 0 raise ArgumentError, "page must be > 0" unless @page > 0 "#{sql} LIMIT #{@per} OFFSET #{(@page - 1) * @per}" end end
Version data entries
37 entries across 37 versions & 1 rubygems