class Timing::ZoneOffset
Constants
- REGEXP
Public Class Methods
new(seconds)
click to toggle source
Calls superclass method
# File lib/timing/zone_offset.rb, line 6 def initialize(seconds) raise ArgumentError, "#{seconds} is not a number" unless seconds.is_a? Numeric super end
parse(expression)
click to toggle source
# File lib/timing/zone_offset.rb, line 23 def self.parse(expression) match = REGEXP.match expression.strip raise ArgumentError, "Invalid time zone offset #{expression}" unless match sign = match.captures[0] == '-' ? -1 : 1 hours = match.captures[1].to_i minutes = match.captures[2].to_i new (Interval.hours(hours) + Interval.minutes(minutes)) * sign end
Public Instance Methods
inspect()
click to toggle source
# File lib/timing/zone_offset.rb, line 19 def inspect "#{to_s} (#{to_f})" end
iso8601()
click to toggle source
# File lib/timing/zone_offset.rb, line 15 def iso8601 "#{sign}#{hour.to_s.rjust(2, '0')}:#{minute.to_s.rjust(2, '0')}" end
to_s(separator=nil)
click to toggle source
# File lib/timing/zone_offset.rb, line 11 def to_s(separator=nil) "#{sign}#{hour.to_s.rjust(2, '0')}#{separator}#{minute.to_s.rjust(2, '0')}" end
Private Instance Methods
hour()
click to toggle source
# File lib/timing/zone_offset.rb, line 37 def hour Interval.new(to_f).to_hours.to_i end
minute()
click to toggle source
# File lib/timing/zone_offset.rb, line 41 def minute Interval.new(to_f % Interval.hours(1)).to_minutes.to_i end
sign()
click to toggle source
# File lib/timing/zone_offset.rb, line 45 def sign self < 0 ? '-' : '+' end