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

Version Path
simple-sql-0.5.4 lib/simple/sql/scope/pagination.rb
simple-sql-0.5.3 lib/simple/sql/scope/pagination.rb
simple-sql-0.4.41 lib/simple/sql/scope/pagination.rb
simple-sql-0.5.2 lib/simple/sql/scope/pagination.rb
simple-sql-0.4.40 lib/simple/sql/scope/pagination.rb
simple-sql-0.4.39 lib/simple/sql/scope/pagination.rb
simple-sql-0.4.38 lib/simple/sql/scope/pagination.rb
simple-sql-0.4.37 lib/simple/sql/scope/pagination.rb
simple-sql-0.4.36 lib/simple/sql/scope/pagination.rb
simple-sql-0.4.35 lib/simple/sql/scope/pagination.rb
simple-sql-0.5.0 lib/simple/sql/scope/pagination.rb
simple-sql-0.4.32 lib/simple/sql/scope/pagination.rb
simple-sql-0.4.31 lib/simple/sql/scope/pagination.rb
simple-sql-0.4.30 lib/simple/sql/scope/pagination.rb
simple-sql-0.4.29 lib/simple/sql/scope/pagination.rb
simple-sql-0.4.28 lib/simple/sql/scope/pagination.rb
simple-sql-0.4.27 lib/simple/sql/scope/pagination.rb
simple-sql-0.4.26 lib/simple/sql/scope/pagination.rb
simple-sql-0.4.25 lib/simple/sql/scope/pagination.rb
simple-sql-0.4.24 lib/simple/sql/scope/pagination.rb