class TZInfo::DataSources::DataTimezoneInfo

The base class for time zones defined as either a series of transitions ({TransitionsDataTimezoneInfo}) or a constantly observed offset ({ConstantOffsetDataTimezoneInfo}).

@abstract Data sources return instances of {DataTimezoneInfo} subclasses.

Public Instance Methods

@return [DataTimezone] a new {DataTimezone} instance for the time zone

represented by this {DataTimezoneInfo}.
# File lib/tzinfo/data_sources/data_timezone_info.rb, line 76
def create_timezone
  DataTimezone.new(self)
end

@param timestamp [Timestamp] a {Timestamp} with a specified

{Timestamp#utc_offset utc_offset}.

@return [TimezonePeriod] the {TimezonePeriod} observed at the time

specified by `timestamp`.

@raise [ArgumentError] may be raised if ‘timestamp` is `nil` or does not

have a specified {Timestamp#utc_offset utc_offset}.
# File lib/tzinfo/data_sources/data_timezone_info.rb, line 18
def period_for(timestamp)
  raise_not_implemented('period_for')
end

Returns an ‘Array` containing the {TimezonePeriod TimezonePeriods} that could be observed at the local time specified by `local_timestamp`. The results are are ordered by increasing UTC start date. An empty `Array` is returned if no periods are found for the given local time.

@param local_timestamp [Timestamp] a {Timestamp} representing a local

time - must have an unspecified {Timestamp#utc_offset utc_offset}.

@return [Array<TimezonePeriod>] an ‘Array` containing the

{TimezonePeriod TimezonePeriods} that could be observed at the local
time specified by `local_timestamp`.

@raise [ArgumentError] may be raised if ‘local_timestamp` is `nil`, or

has a specified {Timestamp#utc_offset utc_offset}.
# File lib/tzinfo/data_sources/data_timezone_info.rb, line 34
def periods_for_local(local_timestamp)
  raise_not_implemented('periods_for_local')
end

Returns an ‘Array` of {TimezoneTransition} instances representing the times where the UTC offset of the time zone changes.

Transitions are returned up to a given {Timestamp} (‘to_timestamp`).

A from {Timestamp} may also be supplied using the ‘from_timestamp` parameter. If `from_timestamp` is specified, only transitions from that time onwards will be returned.

Comparisons with ‘to_timestamp` are exclusive. Comparisons with `from_timestamp` are inclusive. If a transition falls precisely on `to_timestamp`, it will be excluded. If a transition falls on `from_timestamp`, it will be included.

Transitions returned are ordered by when they occur, from earliest to latest.

@param to_timestamp [Timestamp] a {Timestamp} with a specified

{Timestamp#utc_offset utc_offset}. Transitions are returned if they
occur before this time.

@param from_timestamp [Timestamp] an optional {Timestamp} with a

specified {Timestamp#utc_offset utc_offset}. If specified, transitions
are returned if they occur at or after this time.

@return [Array<TimezoneTransition>] an ‘Array` of {TimezoneTransition}

instances representing the times where the UTC offset of the time zone
changes.

@raise [ArgumentError] may be raised if ‘to_timestamp` is `nil` or does

not have a specified {Timestamp#utc_offset utc_offset}.

@raise [ArgumentError] may be raised if ‘from_timestamp` is specified

but does not have a specified {Timestamp#utc_offset utc_offset}.

@raise [ArgumentError] may be raised if ‘from_timestamp` is specified

but is not earlier than or at the same time as `to_timestamp`.
# File lib/tzinfo/data_sources/data_timezone_info.rb, line 70
def transitions_up_to(to_timestamp, from_timestamp = nil)
  raise_not_implemented('transitions_up_to')
end