class Haora::Timestamp
Attributes
hour[R]
minute[R]
Public Class Methods
new(params)
click to toggle source
# File lib/haora/timestamp.rb, line 6 def initialize(params) if params.has_key?(:literal) @hour, @minute = parse_timestamp_literal(params[:literal]) elsif params.has_key?(:hour) && params.has_key?(:minute) @hour, @minute = params[:hour], params[:minute] end invalid? end
now()
click to toggle source
# File lib/haora/timestamp.rb, line 15 def self.now Timestamp.new(Day.now) end
Public Instance Methods
-(other)
click to toggle source
# File lib/haora/timestamp.rb, line 43 def -(other) Duration.of_minutes(self.to_minutes - other.to_minutes) end
to_minutes()
click to toggle source
# File lib/haora/timestamp.rb, line 39 def to_minutes hour * 60 + minute end
to_s()
click to toggle source
# File lib/haora/timestamp.rb, line 35 def to_s '%d:%02d' % [hour, minute] end
Private Instance Methods
invalid?()
click to toggle source
# File lib/haora/timestamp.rb, line 27 def invalid? raise 'invalid hours or minutes' if !@hour.is_a?(Integer) || !@minute.is_a?(Integer) \ || @hour < 0 || @minute < 0 \ || @hour > 23 || @minute > 59 end
parse_timestamp_literal(timestamp)
click to toggle source
# File lib/haora/timestamp.rb, line 21 def parse_timestamp_literal(timestamp) /(\d?\d):(\d\d)/.match(timestamp) do |m| return [m[1].to_i, m[2].to_i] end end