Sha256: 6a106da3d7b406ff277dd2906fa602bb071faa7ba87f703094b02e576316bee6

Contents?: true

Size: 623 Bytes

Versions: 26

Compression:

Stored size: 623 Bytes

Contents

# rubocop:disable Style/Not

class Simple::SQL::Connection::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

26 entries across 26 versions & 1 rubygems

Version Path
simple-sql-0.5.30 lib/simple/sql/connection/scope/pagination.rb
simple-sql-0.5.29 lib/simple/sql/connection/scope/pagination.rb
simple-sql-0.5.28 lib/simple/sql/connection/scope/pagination.rb
simple-sql-0.5.27 lib/simple/sql/connection/scope/pagination.rb
simple-sql-0.5.26 lib/simple/sql/connection/scope/pagination.rb
simple-sql-0.5.25 lib/simple/sql/connection/scope/pagination.rb
simple-sql-0.5.24 lib/simple/sql/connection/scope/pagination.rb
simple-sql-0.5.23 lib/simple/sql/connection/scope/pagination.rb
simple-sql-0.5.22 lib/simple/sql/connection/scope/pagination.rb
simple-sql-0.5.21 lib/simple/sql/connection/scope/pagination.rb
simple-sql-0.5.20 lib/simple/sql/connection/scope/pagination.rb
simple-sql-0.5.19 lib/simple/sql/connection/scope/pagination.rb
simple-sql-0.5.18 lib/simple/sql/connection/scope/pagination.rb
simple-sql-0.5.17 lib/simple/sql/connection/scope/pagination.rb
simple-sql-0.5.16 lib/simple/sql/connection/scope/pagination.rb
simple-sql-0.5.15 lib/simple/sql/connection/scope/pagination.rb
simple-sql-0.5.14 lib/simple/sql/connection/scope/pagination.rb
simple-sql-0.5.13 lib/simple/sql/connection/scope/pagination.rb
simple-sql-0.5.12 lib/simple/sql/connection/scope/pagination.rb
simple-sql-0.5.11 lib/simple/sql/connection/scope/pagination.rb