class Ckeditor::Paginatable

Simple paginate relation

def current_page

Current page number
def current_page
  offset = (offset_value < 0 ? 0 : offset_value)
  (offset / limit_value) + 1
end

def first_page?

First page of the collection?
def first_page?
  current_page == 1
end

def initialize(scope, options = {})

def initialize(scope, options = {})
  @scope = scope
  @limit_value = (options[:limit] || Ckeditor.default_per_page).to_i
end

def last_page?

Last page of the collection?
def last_page?
  current_page >= total_pages
end

def next_page

Next page number in the collection
def next_page
  current_page + 1 unless last_page?
end

def page(num = 1)

def page(num = 1)
  @offset_value = limit_value * ([num.to_i, 1].max - 1)
  self
end

def prev_page

Previous page number in the collection
def prev_page
  current_page - 1 unless first_page?
end

def scoped

def scoped
  @scope.limit(limit_value).offset(offset_value)
end

def total_count

total item numbers of scope
def total_count
  @total_count ||= @scope.count
end

def total_pages

Total number of pages
def total_pages
  (total_count.to_f / limit_value).ceil
end