aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib/active_support/core_ext/numeric/conversions.rb
blob: e652ae5ca801ce97e047dd4e330978af8332bd7e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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
  end
end