Class: Indy::Time

Inherits:
Object
  • Object
show all
Defined in:
lib/indy/time.rb

Defined Under Namespace

Classes: ParseException

Class Method Summary collapse

Class Method Details

.forever(time_format = nil) ⇒ Object

Return a time or datetime object way in the future



40
41
42
# File 'lib/indy/time.rb', line 40

def forever(time_format=nil)
  time_format ? DateTime.new(4712) : ::Time.at(0x7FFFFFFF)
end

.forever_ago(time_format = nil) ⇒ Object

Return a time or datetime object way in the past



47
48
49
50
51
52
53
54
# File 'lib/indy/time.rb', line 47

def forever_ago(time_format=nil)
  begin
    time_format ? DateTime.new(-4712) : ::Time.at(-0x7FFFFFFF)
  rescue
    # Windows Ruby Time can't handle dates prior to 1969
    time_format ? DateTime.new(-4712) : ::Time.at(0)
  end
end

.parse_date(time, time_format = nil) ⇒ Object

Return a valid DateTime object for the log entry string or hash

Parameters:

  • time (String, Hash)

    The log entry string or hash

  • time_format (String) (defaults to: nil)

    String of #strftime directives to define format



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/indy/time.rb', line 20

def parse_date(time,time_format=nil)
  return time if time.kind_of? ::Time or time.kind_of? DateTime
  if time_format
    begin
      DateTime.strptime(time, time_format)
    rescue
      DateTime.parse(time) rescue nil
    end
  else
    begin
      ::Time.parse(time)
    rescue => e
      raise "Failed to create time object. The error was: #{e.message}"
    end
  end
end