Class: Embulk::Guess::TimeFormatGuess::Rfc2822Pattern

Inherits:
Object
  • Object
show all
Includes:
Parts
Defined in:
lib/embulk/guess/time_format_guess.rb

Constant Summary

Constants included from Parts

Parts::DAY, Parts::DAY_NODELIM, Parts::HOUR, Parts::HOUR_NODELIM, Parts::MINUTE, Parts::MINUTE_NODELIM, Parts::MONTH, Parts::MONTH_NAME_FULL, Parts::MONTH_NAME_SHORT, Parts::MONTH_NODELIM, Parts::WEEKDAY_NAME_FULL, Parts::WEEKDAY_NAME_SHORT, Parts::YEAR, Parts::ZONE_ABB, Parts::ZONE_OFF

Instance Method Summary collapse

Constructor Details

#initializeRfc2822Pattern

Returns a new instance of Rfc2822Pattern.



326
327
328
# File 'lib/embulk/guess/time_format_guess.rb', line 326

def initialize
  @regexp = /^(?<weekday>#{WEEKDAY_NAME_SHORT}, )?\d\d #{MONTH_NAME_SHORT} \d\d\d\d(?<time> \d\d:\d\d(?<second>:\d\d)? (?:(?<zone_off>#{ZONE_OFF})|(?<zone_abb>#{ZONE_ABB})))?$/
end

Instance Method Details

#match(text) ⇒ Object



330
331
332
333
334
335
336
337
338
339
340
341
342
343
# File 'lib/embulk/guess/time_format_guess.rb', line 330

def match(text)
  if m = @regexp.match(text)
    format = ''
    format << "%a, " if m['weekday']
    format << "%d %b %Y"
    format << " %H:%M" if m['time']
    format << ":%S" if m['second']
    format << " %z" if m['zone_off']
    format << " %Z" if m['zone_abb']
    SimpleMatch.new(format)
  else
    nil
  end
end