class TZInfo::TimezoneProxy

valid, then an exception will be raised at this point.
real {Timezone} will be loaded is loaded. If the proxy’s identifier was not
The first time an attempt is made to access the data for the time zone, the
loading time zone data into memory, for example, by {Timezone.all}.
{TimezoneProxy} instances are used to avoid the performance overhead of
{Timezone} instances loaded with {Timezone.get}.
{TimezoneProxy} inherits from {Timezone} and can be treated identically to
A proxy class standing in for a {Timezone} with a given identifier.

def self._load(data)

Returns:
  • (TimezoneProxy) - the result of converting `data` back into a

Parameters:
  • data (String) -- a serialized representation of a {TimezoneProxy}.
def self._load(data)
  TimezoneProxy.new(data)
end

def _dump(limit)

Returns:
  • (String) - a serialized representation of this {TimezoneProxy}.

Parameters:
  • limit (Integer) -- the maximum depth to dump - ignored. @return
def _dump(limit)
  identifier
end

def canonical_zone

(see Timezone#canonical_zone)
def canonical_zone
  real_timezone.canonical_zone
end

def identifier

(see Timezone#identifier)
def identifier
  @real_timezone ? @real_timezone.identifier : @identifier
end

def initialize(identifier)

Parameters:
  • identifier (String) -- an IANA Time Zone Database time zone
def initialize(identifier)
  super()
  @identifier = identifier
  @real_timezone = nil
end

def period_for(time)

(see Timezone#period_for)
def period_for(time)
  real_timezone.period_for_utc(time)
end

def periods_for_local(local_time)

(see Timezone#periods_for_local)
def periods_for_local(local_time)
  real_timezone.periods_for_local(local_time)
end

def real_timezone

Returns:
  • (Timezone) - the real {Timezone} instance being proxied.
def real_timezone
  # Thread-safety: It is possible that the value of @real_timezone may be
  # calculated multiple times in concurrently executing threads. It is not
  # worth the overhead of locking to ensure that @real_timezone is only
  # calculated once.
  unless @real_timezone
    result = Timezone.get(@identifier)
    return result if frozen?
    @real_timezone = result
  end
  @real_timezone
end

def transitions_up_to(to, from = nil)

(see Timezone#transitions_up_to)
def transitions_up_to(to, from = nil)
  real_timezone.transitions_up_to(to, from)
end