0.0
No commit activity in last 3 years
No release in over 3 years
A Rails plugs-in which can paginate data by time period. It will help you to improve your application performance especially when your data is orgnized by time partition.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

>= 3.0.0
>= 3.0.0

Runtime

>= 3.0.0
 Project Readme

DatePaginate¶ ↑

A Rails plugs-in which can paginate data by time period. It will help you to improve your application performance especially when your data is orgnized by time partition.

Install¶ ↑

Put the line below in your Gemfile:

gem 'date_paginate'

Then bundle:

% bundle install

Usage¶ ↑

Query Basics¶ ↑

  • within_day, within_week, within_month scope for ActiveRecord

    It will accpet a Date Type parameter, and a Symbol Type parameter.

    To fetch diaries which are created today

    Diary.within_day(Date.current) # :created_at by default
    

    To fetch last week’s diaries which are updated last week

    Diary.within_day(Date.current.week_ago(1), :updated_at)
    

    To fetch diaries published in 2014/11

    Diary.within_month(Date.parse("2014/11/1"), :published_at)
    

    Date Type parameter means the time you want to query Symbol Type parameter means which column will be queried by time range.

    within_week and within_month will accpet any day in the time range which you are searching for.

Controller¶ ↑

  • set_date, set_week, set_month helper methods

    These three helper methods in controller can easily help you to set @date.

    The example of controller:

    class DiariesController < ApplicationController
      before_action :set_date,  only: [:day]
      before_action :set_week,  only: [:week]
      before_action :set_month, only: [:month]
    
      def day
        @diareis = Diary.within_day(@date)
      end
    
      def week
        @diareis = Diary.within_week(@date)
      end
    
      def month
        @diareis = Diary.within_month(@date)
      end
    end
    

    Actually it just transfer params, parmas, params to Date type parameter @date.

View¶ ↑

Just add the line below to your view for create links of pagination:

<%= date_paginate %>

It has num_pages and date_paginate_type options.

  • num_pages: the number of links

  • date_paginate_type: the link type(:days, :months, :months) to render

    <%= date_paginate num_pages: 6, date_paginate_type: :months %>

You can also use for short:

<%= date_paginate_days %>
<%= date_paginate_weeks %>
<%= date_paginate_months %>

If you want to use the default CSS styles of DatePaginate:

<%= stylesheet_link_tag "date_paginate/default" %>

General configuration options¶ ↑

You can configure the following default values by overriding these values using DatePaginate.configure method. You can put it in config/initializers/date_paginate.rb:

DatePaginate.configure do |config|
  config.default_num_pages     = 6            # 6 by default
  config.default_paginate_type = :months      # :months by default (:days, :weeks, :months)
end