module Circa

Constants

VERSION

Public Instance Methods

circa(input_string) click to toggle source

Convenience method to create a new {Circa::Date} or {Circa::Time} @param [String] input_string

A string in format %Y-%m-%d or %Y-%m-%d %H:%M:%S

@return [Circa::Date/Circa::Time]

A new {Circa::Date} or {Circa::Time} depending on input

@raise [ArgumentError]

If an invalid input string is given
# File lib/circa.rb, line 15
def circa(input_string)
  if match_date(input_string)
    Date.new(input_string)
  elsif match_time(input_string)
    Time.new(input_string)
  else
    raise ArgumentError, "Invalid input string: #{input_string}"
  end
end

Private Instance Methods

match_date(input_string) click to toggle source
# File lib/circa.rb, line 27
def match_date(input_string)
  input_string =~ Date::REGEX
end
match_time(input_string) click to toggle source
# File lib/circa.rb, line 31
def match_time(input_string)
  date_re = Date::REGEX.source.sub(/\$$/, '')
  time_re = Time::REGEX.source.sub(/^\^/, '')
  input_string =~ Regexp.new("#{date_re}T|\s#{time_re}")
end