Class: WordCountAnalyzer::Date

Inherits:
Object
  • Object
show all
Defined in:
lib/word_count_analyzer/date.rb

Constant Summary collapse

DOW =
%w(monday tuesday wednesday thursday friday saturday sunday)
DOW_ABBR =
%w(mon tu tue tues wed th thu thur thurs fri sat sun)
MONTHS =
%w(january february march april may june july august september october november december)
MONTH_ABBR =
%w(jan feb mar apr jun jul aug sep sept oct nov dec)
DMY_MDY_REGEX =
/(\d{1,2}(\/|\.|-)){2}\d{4}\.?/
YMD_YDM_REGEX =
/\d{4}(\/|\.|-)(\d{1,2}(\/|\.|-)){2}\.?/
DIGIT_ONLY_YEAR_FIRST_REGEX =
/[12]\d{7}\D\.?/
DIGIT_ONLY_YEAR_LAST_REGEX =
/\d{4}[12]\d{3}\D\.?/

Instance Method Summary collapse

Instance Method Details

#includes_date?(text) ⇒ Boolean

Returns:

  • (Boolean)


19
20
21
# File 'lib/word_count_analyzer/date.rb', line 19

def includes_date?(text)
  includes_long_date?(text) || includes_number_only_date?(text)
end

#occurrences(text) ⇒ Object



30
31
32
# File 'lib/word_count_analyzer/date.rb', line 30

def occurrences(text)
  replace(text).scan(/wsdateword/).size
end

#replace(text) ⇒ Object



23
24
25
26
27
28
# File 'lib/word_count_analyzer/date.rb', line 23

def replace(text)
  counter = 0
  DOW_ABBR.map { |day| counter +=1 if text.include?('day') }
  text = redact_dates(counter, text)
  redact_regex(text)
end

#replace_number_only_date(text) ⇒ Object



34
35
36
37
38
39
# File 'lib/word_count_analyzer/date.rb', line 34

def replace_number_only_date(text)
  text.gsub(DMY_MDY_REGEX, ' wsdateword ')
      .gsub(YMD_YDM_REGEX, ' wsdateword ')
      .gsub(DIGIT_ONLY_YEAR_FIRST_REGEX, ' wsdateword ')
      .gsub(DIGIT_ONLY_YEAR_LAST_REGEX, ' wsdateword ')
end