Class: Humr::Handler::Time

Inherits:
Humr::Handler show all
Defined in:
lib/humr/handler/time.rb

Instance Method Summary collapse

Methods inherited from Humr::Handler

[], #name, register

Instance Method Details

#_apache_common_log_time(s) ⇒ Object



18
19
20
# File 'lib/humr/handler/time.rb', line 18

def _apache_common_log_time(s)
  ::Time.strptime(s, '%d/%b/%Y:%H:%M:%S %Z')
end

#_ctime(s) ⇒ Object



22
23
24
# File 'lib/humr/handler/time.rb', line 22

def _ctime(s)
  ::Time.strptime(s, '%c')
end

#parse(s) ⇒ Object



26
27
28
29
30
31
32
33
# File 'lib/humr/handler/time.rb', line 26

def parse(s)
  for parser in parsers
    parsed = parser[s] rescue nil
    return parsed if parsed
  end

  nil
end

#parsersObject



8
9
10
11
12
13
14
15
16
# File 'lib/humr/handler/time.rb', line 8

def parsers
  @parsers ||= [
    method(:_apache_common_log_time),
    method(:_ctime),
    ::Time.method(:iso8601),
    ::Time.method(:httpdate),
    ::Time.method(:rfc822)
  ]
end

#replace(s, &block) ⇒ Object



35
36
37
38
# File 'lib/humr/handler/time.rb', line 35

def replace(s, &block)
  parsed = parse(s)
  parsed.to_s.sub(/.*/, &block) if parsed
end