aboutsummaryrefslogblamecommitdiffstats
path: root/activesupport/lib/active_support/core_ext/string/conversions.rb
blob: 39c2b1b8ed4ffbf968f2870b4d4c15e5e87302c4 (plain) (tree)
1
2
3
4
5
6
7
8
              
 




                                                         
 



                                                                                                                                    
 


                                                                         
 

                                                                                                                         
     
   
require 'date'

class String
  # 'a'.ord == 'a'[0] for Ruby 1.9 forward compatibility.
  def ord
    self[0]
  end if RUBY_VERSION < '1.9'

  # Form can be either :utc (default) or :local.
  def to_time(form = :utc)
    ::Time.send("#{form}_time", *::Date._parse(self, false).values_at(:year, :mon, :mday, :hour, :min, :sec).map { |arg| arg || 0 })
  end

  def to_date
    ::Date.new(*::Date._parse(self, false).values_at(:year, :mon, :mday))
  end

  def to_datetime
    ::DateTime.civil(*::Date._parse(self, false).values_at(:year, :mon, :mday, :hour, :min, :sec).map { |arg| arg || 0 })
  end
end