Class: Translator::YearFinder

Inherits:
Step
  • Object
show all
Defined in:
lib/natural-date/translator/year_finder.rb

Instance Attribute Summary

Attributes inherited from Step

#language_bundle

Instance Method Summary collapse

Instance Method Details

#find_year(day, month, reference_date) ⇒ Object



17
18
19
20
21
22
23
# File 'lib/natural-date/translator/year_finder.rb', line 17

def find_year day, month, reference_date
  if Date.new(reference_date.year, month, day) < reference_date
    reference_date.year + 1
  else
    reference_date.year
  end
end

#map(tokens, reference_date) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
# File 'lib/natural-date/translator/year_finder.rb', line 3

def map tokens, reference_date
  if (years = tokens[:unknown].to_a.select { |t| t.size == 4 && t =~ /\d\d\d\d/ }).any?
    tokens[:year] = years.map &:to_i
  else
    if !tokens[:week] && tokens[:day] && tokens[:month]
      if tokens[:day].size == 1 && tokens[:month].size == 1
        tokens[:year] = [find_year(tokens[:day].first, tokens[:month].first, reference_date)]
      end
    end
  end

  tokens
end