Skip to content
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DateParams

Build Status

Dates and times passed in as strings date-pickers or time-pickers need to be converted from their string format to a ruby Date or DateTime to be able to be saved and manipulated. This gem provides two simple controller add-ons to facilitate the conversion.

Installation

Rails 3.x and Ruby 1.9.3 or 2.x required.

Add this line to your application's Gemfile:

gem 'date_params'

And then execute:

$ bundle

Or install it yourself as:

$ gem install date_params

Usage

date_params

Specify the dates to be parsed:

class UsersController < ApplicationController
  # e.g. parameters come in as: { sign_up_on: '01/05/2013' }
  date_params :sign_up_on
  # and now params[:sign_up_on] is a Date object
end

Any options that a before_filter accepts can be passed in:

date_params :sign_up_on, only: [:index]

If date fields are namespaced in a model that can be specified with the namespace option:

# will parse parameters in the format of: { user: { searched_on: '01/04/2013', sign_up_on: '04/03/2013' } }
date_params :searched_on, :sign_up_on, namespace: :user

Date format can be passed as an option (default is %m/%d/%Y):

date_params :search_on, :sign_up_on, date_format: '%d-%m-%Y'

datetime_params

Specify the datetime fields that need to be parsed:

class UsersController < ApplicationController
  # e.g. parameters come in as: { sign_up_at_date: '01/05/2013', sign_up_at_time: '7:30 pm' }
  datetime_params :sign_up_at
  # and now params[:sign_up_at] is a timezone-aware Time object
end

In addition to the :namespace and :date_format options, the time format can be specified (default is %I:%M %p):

date_params :sign_up_at, time_format: '%H:%M:%S'

To specify exactly which fields should be parsed:

date_params { date: :sign_up_on, time: :sign_up_time, field: :sign_up_at }, only: :create

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

About

Convert date string parameters in a rails controller into Date objects.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages