Sha256: 5291d95b24d8112dd7f8db310292481de232dc748174d34f3e8cc835b7a2d723

Contents?: true

Size: 839 Bytes

Versions: 2

Compression:

Stored size: 839 Bytes

Contents

module Murlsh

  class UrlResultSet

    def initialize(conditions, page, per_page)
      @conditions, @page, @per_page = conditions, page, per_page
      @order = 'time DESC'
    end

    def total_entries
      @total_entries ||= Murlsh::Url.count(:conditions => conditions)
    end

    def total_pages
      @total_pages ||= [(total_entries / per_page.to_f).ceil, 1].max
    end

    def offset; @offset ||= (page - 1) * per_page; end

    def results
      Murlsh::Url.all(:conditions => conditions, :order => order,
        :limit => per_page, :offset => offset)
    end

    def prev_page; @prev_page ||= page - 1  if (2..total_pages) === page; end

    def next_page; @next_page ||= page + 1  if page < total_pages; end

    attr_reader :conditions
    attr_reader :page
    attr_reader :per_page
    attr_reader :order
  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
murlsh-1.3.1 lib/murlsh/url_result_set.rb
murlsh-1.3.0 lib/murlsh/url_result_set.rb