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