Class: TimezoneParser::ZoneInfo

Inherits:
Object
  • Object
show all
Defined in:
lib/timezone_parser/zone_info.rb

Overview

Generic Timezone class

Direct Known Subclasses

Abbreviation, RailsZone, Timezone, WindowsZone

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#FromTimeObject

Returns the value of attribute FromTime.



15
16
17
# File 'lib/timezone_parser/zone_info.rb', line 15

def FromTime
  @FromTime
end

#ToTimeObject

Returns the value of attribute ToTime.



14
15
16
# File 'lib/timezone_parser/zone_info.rb', line 14

def ToTime
  @ToTime
end

Instance Method Details

#getDataObject

Get Timezone data

Raises:

  • (StandardError)


29
30
31
# File 'lib/timezone_parser/zone_info.rb', line 29

def getData
    raise StandardError, '#getData must be implemented in subclass'
end

#getMetazonesArray<String>

Get Metazone identifiers

Returns:

  • (Array<String>)

    list of Metazone identifiers



62
63
64
65
66
67
# File 'lib/timezone_parser/zone_info.rb', line 62

def getMetazones
    unless @Metazones
        @Metazones = getData.Metazones.to_a
    end
    @Metazones
end

#getOffsetsArray<Fixnum>

Get UTC offsets in seconds

Returns:

  • (Array<Fixnum>)

    list of timezone offsets in seconds



35
36
37
38
39
40
# File 'lib/timezone_parser/zone_info.rb', line 35

def getOffsets
    unless @Offsets
        @Offsets = getData.Offsets.to_a
    end
    @Offsets
end

#getTimezonesArray<String>

Get Timezone identifiers

Returns:

  • (Array<String>)

    list of timezone identifiers



44
45
46
47
48
49
# File 'lib/timezone_parser/zone_info.rb', line 44

def getTimezones
    unless @Timezones
        @Timezones = getData.Timezones.to_a
    end
    @Timezones
end

#getTypesSymbol

Get types

Returns:

  • (Symbol)

    types



53
54
55
56
57
58
# File 'lib/timezone_parser/zone_info.rb', line 53

def getTypes
    unless @Types
        @Types = getData.Types.to_a
    end
    @Types
end

#setTime(toTime = nil, fromTime = nil) ⇒ ZoneInfo

Set time range

Parameters:

  • toTime (DateTime) (defaults to: nil)

    filter timezones before this date, exclusive

  • fromTime (DateTime) (defaults to: nil)

    filter timezones at this date, inclusive

Returns:



20
21
22
23
24
25
26
# File 'lib/timezone_parser/zone_info.rb', line 20

def setTime(toTime = nil, fromTime = nil)
    @ToTime = toTime
    @ToTime = DateTime.now unless @ToTime
    @FromTime = fromTime
    @FromTime = DateTime.new(@ToTime.year - 1) unless @FromTime
    self
end