From 62ac3279e87c1c9a9bf669d1cc98b660d06b7667 Mon Sep 17 00:00:00 2001 From: Michael Koziarski Date: Wed, 28 Feb 2007 00:49:01 +0000 Subject: Add missing files git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6264 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- .../core_ext/date_time/conversions.rb | 28 ++++++++++++++++++++++ activesupport/test/core_ext/date_time_ext_test.rb | 15 ++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 activesupport/lib/active_support/core_ext/date_time/conversions.rb create mode 100644 activesupport/test/core_ext/date_time_ext_test.rb diff --git a/activesupport/lib/active_support/core_ext/date_time/conversions.rb b/activesupport/lib/active_support/core_ext/date_time/conversions.rb new file mode 100644 index 0000000000..48a13e1fde --- /dev/null +++ b/activesupport/lib/active_support/core_ext/date_time/conversions.rb @@ -0,0 +1,28 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module DateTime #:nodoc: + # Getting datetimes in different convenient string representations and other objects + module Conversions + DATE_FORMATS = { + :db => "%Y-%m-%d %H:%M:%S", + :time => "%H:%M", + :short => "%d %b %H:%M", + :long => "%B %d, %Y %H:%M", + :rfc822 => "%a, %d %b %Y %H:%M:%S %z" + } + def self.included(klass) + klass.send(:alias_method, :to_datetime_default_s, :to_s) + klass.send(:alias_method, :to_s, :to_formatted_s) + end + + def to_formatted_s(format = :default) + DATE_FORMATS[format] ? strftime(DATE_FORMATS[format]).strip : to_datetime_default_s + end + + def to_date + ::Date.new(year, month, day) + end + end + end + end +end \ No newline at end of file diff --git a/activesupport/test/core_ext/date_time_ext_test.rb b/activesupport/test/core_ext/date_time_ext_test.rb new file mode 100644 index 0000000000..94da9de64c --- /dev/null +++ b/activesupport/test/core_ext/date_time_ext_test.rb @@ -0,0 +1,15 @@ +require File.dirname(__FILE__) + '/../abstract_unit' + +class DateTimeExtCalculationsTest < Test::Unit::TestCase + def test_to_s + assert_equal "2005-02-21 14:30:00", DateTime.new(2005, 2, 21, 14, 30, 0).to_s(:db) + assert_equal "14:30", DateTime.new(2005, 2, 21, 14, 30, 0).to_s(:time) + assert_equal "21 Feb 14:30", DateTime.new(2005, 2, 21, 14, 30, 0).to_s(:short) + assert_equal "February 21, 2005 14:30", DateTime.new(2005, 2, 21, 14, 30, 0).to_s(:long) + assert_equal "Mon, 21 Feb 2005 14:30:00 +0000", DateTime.new(2005, 2, 21, 14, 30, 0).to_s(:rfc822) + end + + def test_to_date + assert_equal Date.new(2005, 2, 21), DateTime.new(2005, 2, 21).to_date + end +end \ No newline at end of file -- cgit v1.2.3