class Stockade::Lexemes::Date
Date
lexeme
Public Class Methods
delim()
click to toggle source
# File lib/stockade/lexemes/date.rb, line 20 def delim %r{[\s\.\-\/]} end
regex()
click to toggle source
# File lib/stockade/lexemes/date.rb, line 8 def regex / (?<!\d) (\d{1,4}) #{delim} (\d{1,4}) #{delim} (\d{1,4}) (?!\d) /x end
Public Instance Methods
valid?()
click to toggle source
# File lib/stockade/lexemes/date.rb, line 25 def valid? possible_dates.any? && possible_dates.all? do |date| date <= ::Date.today end end
Private Instance Methods
parts()
click to toggle source
# File lib/stockade/lexemes/date.rb, line 44 def parts self.class.regex.match(value).captures.map(&:to_i) end
possible_dates()
click to toggle source
# File lib/stockade/lexemes/date.rb, line 34 def possible_dates parts.permutation.map do |permutation| begin ::Date.new(*permutation) rescue ArgumentError nil end end.compact end