From b8d59b7f845b6de8b4359900f228efc13e7d1ee5 Mon Sep 17 00:00:00 2001 From: Jeremy Kemper Date: Sat, 21 Mar 2009 04:27:13 -0700 Subject: Convert Numeric extension module to a class reopen --- .../lib/active_support/core_ext/numeric.rb | 4 ++- .../active_support/core_ext/numeric/conversions.rb | 30 ++++++++++------------ 2 files changed, 16 insertions(+), 18 deletions(-) (limited to 'activesupport/lib/active_support/core_ext') diff --git a/activesupport/lib/active_support/core_ext/numeric.rb b/activesupport/lib/active_support/core_ext/numeric.rb index 33bd625fef..7a24980bee 100644 --- a/activesupport/lib/active_support/core_ext/numeric.rb +++ b/activesupport/lib/active_support/core_ext/numeric.rb @@ -1,2 +1,4 @@ +require 'active_support/core_ext/numeric/conversions' + require 'active_support/core_ext/util' -ActiveSupport.core_ext Numeric, %w(time bytes conversions) +ActiveSupport.core_ext Numeric, %w(time bytes) diff --git a/activesupport/lib/active_support/core_ext/numeric/conversions.rb b/activesupport/lib/active_support/core_ext/numeric/conversions.rb index e652ae5ca8..a16a8e7c09 100644 --- a/activesupport/lib/active_support/core_ext/numeric/conversions.rb +++ b/activesupport/lib/active_support/core_ext/numeric/conversions.rb @@ -1,19 +1,15 @@ -module ActiveSupport #:nodoc: - module CoreExtensions #:nodoc: - module Numeric #:nodoc: - module Conversions - # Assumes self represents an offset from UTC in seconds (as returned from Time#utc_offset) - # and turns this into an +HH:MM formatted string. Example: - # - # -21_600.to_utc_offset_s # => "-06:00" - def to_utc_offset_s(colon=true) - seconds = self - sign = (seconds < 0 ? -1 : 1) - hours = seconds.abs / 3600 - minutes = (seconds.abs % 3600) / 60 - "%+03d%s%02d" % [ hours * sign, colon ? ":" : "", minutes ] - end - end - end +class Numeric + UTC_OFFSET_WITH_COLON = '%+03d:%02d' + UTC_OFFSET_WITHOUT_COLON = UTC_OFFSET_WITH_COLON.sub(':', '') + + # Assumes self represents an offset from UTC in seconds (as returned from Time#utc_offset) + # and turns this into an +HH:MM formatted string. Example: + # + # -21_600.to_utc_offset_s # => "-06:00" + def to_utc_offset_s(colon = true) + format = colon ? UTC_OFFSET_WITH_COLON : UTC_OFFSET_WITHOUT_COLON + hours = self / 3600 + minutes = (abs % 3600) / 60 + format % [hours, minutes] end end -- cgit v1.2.3