Permalink
Switch branches/tags
Nothing to show
Find file
Fetching contributors…
Cannot retrieve contributors at this time
55 lines (48 sloc) 1.64 KB
# Time.now.to_ordinalized_s :long
# => "February 28th, 2006 21:10"
module OrdinalizedFormatting
def to_ordinalized_s(format = :default)
format = ActiveSupport::CoreExtensions::Time::Conversions::DATE_FORMATS[format]
return to_default_s if format.nil?
strftime_ordinalized(format)
end
def strftime_ordinalized(fmt)
strftime(fmt.gsub(/%d/, '_%d_')).gsub(/_(\d+)_/) { |s| s.to_i.ordinalize }
end
end
Time.send :include, OrdinalizedFormatting
Date.send :include, OrdinalizedFormatting
class Time
class << self
# Used for getting multifield attributes like those generated by a
# select_datetime into a new Time object. For example if you have
# following <tt>params={:meetup=>{:"time(1i)=>..."}}</tt> just do
# following:
#
# <tt>Time.parse_from_attributes(params[:meetup], :time)</tt>
def parse_from_attributes(attrs, field, method=:gm)
attrs = attrs.keys.sort.grep(/^#{field.to_s}\(.+\)$/).map { |k| attrs[k] }
attrs.any? ? Time.send(method, *attrs) : nil
end
def delta(year, month = nil, day = nil)
from = Time.local(year, month || 1, day || 1)
to =
if !day.blank?
from.advance :days => 1
elsif !month.blank?
from.advance :months => 1
else
from.advance :years => 1
end
return [from.midnight, to.midnight-1]
end
end
def to_delta(delta_type = :day)
case delta_type
when :year then self.class.delta(year)
when :month then self.class.delta(year, month)
else self.class.delta(year, month, day)
end
end
end
ActionView::Base.send :include, ActiveReload::RelativeTimeHelpers