class CalendariumRomanum::CLI::DateParser
@api private
Public Class Methods
build_range(*args)
click to toggle source
# File lib/calendarium-romanum/cli/date_parser.rb, line 17 def self.build_range(*args) case args.size when 1 Util::Year.new(*args) when 2 Util::Month.new(*args) else date = Date.new(*args) date..date end end
parse(date_str)
click to toggle source
# File lib/calendarium-romanum/cli/date_parser.rb, line 5 def self.parse(date_str) /(?<year>\d{4})([\/-](?<month>\d{1,2})([\/-](?<day>\d{1,2}))?)?/.match(date_str) do |m| date_segments = %i(year month day) .collect {|name| m[name] } .compact .collect(&:to_i) build_range(*date_segments) end || raise(ArgumentError.new('Unparseable date')) end