Class: Eztz::TimeZoneResponse

Inherits:
Object
  • Object
show all
Defined in:
lib/eztz/response.rb

Overview

Encapsulates the data from the timezone api

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(timestamp, response) ⇒ TimeZoneResponse

Returns a new instance of TimeZoneResponse.

Parameters:

  • timestamp (Integer)

    The timestamp used in the request

  • response (Hash)

    The parsed JSON response from the api call



43
44
45
46
47
48
49
50
# File 'lib/eztz/response.rb', line 43

def initialize(timestamp, response)
  @timestamp = timestamp
  @dst_offset, @error_message, @raw_offset, @status, @id, @name =
    response.values_at(
      "dstOffset", "error_message", "rawOffset", "status", "timeZoneId",
      "timeZoneName"
    )
end

Instance Attribute Details

#dst_offsetInteger (readonly)

Returns The offset for daylight-savings time in seconds. This will be zero if the time zone is not in Daylight Savings Time during the specified timestamp.

Returns:

  • (Integer)

    The offset for daylight-savings time in seconds. This will be zero if the time zone is not in Daylight Savings Time during the specified timestamp.



38
39
40
# File 'lib/eztz/response.rb', line 38

def dst_offset
  @dst_offset
end

#error_messageString (readonly)

Returns More detailed information about the reasons behind the given status code, if other than OK.

Returns:

  • (String)

    More detailed information about the reasons behind the given status code, if other than OK.



38
39
# File 'lib/eztz/response.rb', line 38

attr_reader :dst_offset, :error_message, :id, :name,
:raw_offset, :status, :timestamp

#idString (readonly)

Returns A string containing the ID of the time zone, such as “America/Los_Angeles” or “Australia/Sydney”.

Returns:

  • (String)

    A string containing the ID of the time zone, such as “America/Los_Angeles” or “Australia/Sydney”.



38
39
# File 'lib/eztz/response.rb', line 38

attr_reader :dst_offset, :error_message, :id, :name,
:raw_offset, :status, :timestamp

#nameString (readonly)

Returns A string containing the long form name of the time zone. This field will be localized if the language parameter was set. eg. “Pacific Daylight Time” or “Australian Eastern Daylight Time”.

Returns:

  • (String)

    A string containing the long form name of the time zone. This field will be localized if the language parameter was set. eg. “Pacific Daylight Time” or “Australian Eastern Daylight Time”



38
39
# File 'lib/eztz/response.rb', line 38

attr_reader :dst_offset, :error_message, :id, :name,
:raw_offset, :status, :timestamp

#raw_offsetInteger (readonly)

Returns The offset from UTC (in seconds) for the given location. This does not take into effect daylight savings.

Returns:

  • (Integer)

    The offset from UTC (in seconds) for the given location. This does not take into effect daylight savings.



38
39
# File 'lib/eztz/response.rb', line 38

attr_reader :dst_offset, :error_message, :id, :name,
:raw_offset, :status, :timestamp

#statusString (readonly)

Returns a string indicating the status of the response. Status will be one of the following:

  • OK - indicates that the request was successful.

  • INVALID_REQUEST - indicates that the request was malformed.

  • OVER_QUERY_LIMIT - indicates the requestor has exceeded quota.

  • REQUEST_DENIED - indicates that the the API did not complete the request. Confirm that the request was sent over http instead of https.

  • UNKNOWN_ERROR - indicates an unknown error.

  • ZERO_RESULTS - indicates that no time zone data could be found for the specified position or time. Confirm that the request is for a location on land, and not over water.

Returns:

  • (String)

    a string indicating the status of the response. Status will be one of the following:

    • OK - indicates that the request was successful.

    • INVALID_REQUEST - indicates that the request was malformed.

    • OVER_QUERY_LIMIT - indicates the requestor has exceeded quota.

    • REQUEST_DENIED - indicates that the the API did not complete the request. Confirm that the request was sent over http instead of https.

    • UNKNOWN_ERROR - indicates an unknown error.

    • ZERO_RESULTS - indicates that no time zone data could be found for the specified position or time. Confirm that the request is for a location on land, and not over water.



38
39
# File 'lib/eztz/response.rb', line 38

attr_reader :dst_offset, :error_message, :id, :name,
:raw_offset, :status, :timestamp

#timestampObject (readonly)

Returns the value of attribute timestamp.



38
39
# File 'lib/eztz/response.rb', line 38

attr_reader :dst_offset, :error_message, :id, :name,
:raw_offset, :status, :timestamp

Instance Method Details

#local_timeTime

The local time of the location is the sum of the :timestamp, :dst_offset and :raw_offset.

Returns:

  • (Time)


59
60
61
# File 'lib/eztz/response.rb', line 59

def local_time
  Time.at(timestamp.to_i + dst_offset.to_i + raw_offset.to_i)
end

#success?Boolean

Returns:

  • (Boolean)


52
53
54
# File 'lib/eztz/response.rb', line 52

def success?
  status == "OK"
end

#to_hHash

The object as a Hash.

Returns:

  • (Hash)


65
66
67
68
69
70
71
72
73
74
75
# File 'lib/eztz/response.rb', line 65

def to_h
  {
    dst_offset: dst_offset,
    error_message: error_message,
    id: id,
    name: name,
    raw_offset: raw_offset,
    status: status,
    timestamp: timestamp
  }
end