class WeatherGov::ValidTime

Public Class Methods

new(valid_time_string) click to toggle source
# File lib/weather_gov/valid_time.rb, line 12
def initialize(valid_time_string)
  @valid_time_string = valid_time_string
end
parse(valid_time_string) click to toggle source
# File lib/weather_gov/valid_time.rb, line 8
def self.parse(valid_time_string)
  ValidTime.new(valid_time_string)
end

Public Instance Methods

duration() click to toggle source
# File lib/weather_gov/valid_time.rb, line 24
def duration
  @duration ||= ActiveSupport::Duration.parse(fields.last)
end
elapsed(time = Time.now) click to toggle source
# File lib/weather_gov/valid_time.rb, line 40
def elapsed(time = Time.now)
  ActiveSupport::Duration.build(time - start_time)
end
end_time() click to toggle source
# File lib/weather_gov/valid_time.rb, line 28
def end_time
  start_time + duration
end
fields() click to toggle source
# File lib/weather_gov/valid_time.rb, line 16
def fields
  @fields ||= @valid_time_string.split("/")
end
range() click to toggle source
# File lib/weather_gov/valid_time.rb, line 32
def range
  start_time...end_time
end
remaining(time = Time.now) click to toggle source
# File lib/weather_gov/valid_time.rb, line 44
def remaining(time = Time.now)
  ActiveSupport::Duration.build(end_time - time)
end
start_time() click to toggle source
# File lib/weather_gov/valid_time.rb, line 20
def start_time
  @start_time ||= Time.parse(fields.first)
end
valid?(time = Time.now) click to toggle source
# File lib/weather_gov/valid_time.rb, line 36
def valid?(time = Time.now)
  range.include?(time)
end