class NaturalDateExpression
Constants
- MATCHERS
- VERSION
Public Class Methods
new(data, reference_date, expression_string)
click to toggle source
# File lib/natural-date/natural_date_expression.rb, line 19 def initialize data, reference_date, expression_string @data = data @reference_date = reference_date @expression_string = expression_string end
Public Instance Methods
=~(date)
click to toggle source
# File lib/natural-date/natural_date_expression.rb, line 29 def =~ date match(date).matches? end
data()
click to toggle source
# File lib/natural-date/natural_date_expression.rb, line 55 def data @data.dup end
fetch_dates(dates_range = nil)
click to toggle source
# File lib/natural-date/natural_date_expression.rb, line 59 def fetch_dates dates_range = nil (dates_range || (@reference_date..(@reference_date + 365))).to_a.select { |date| self =~ date } end
match(date)
click to toggle source
# File lib/natural-date/natural_date_expression.rb, line 40 def match date matches = @data.map do |expression_map| MATCHERS.map { |matcher| matcher.match?(date, @reference_date, expression_map) }.all? end DateMatch.new(matches.any?, (matches.any?? @data[matches.each_with_index.find { |exp, index| exp }.last] : nil), @date, @reference_date) end
match?()
click to toggle source
# File lib/natural-date/natural_date_expression.rb, line 25 def match? match(date).matches? end
recurrent?()
click to toggle source
# File lib/natural-date/natural_date_expression.rb, line 51 def recurrent? @data.map { |expression_map| !(expression_map[:day] && expression_map[:month]) }.any? end