in lib/twitter_cldr/timezones/generic_location.rb [88:138]
def format_display_name(date, type, fmt, dst = TZInfo::Timezone.default_dst, &block)
date_int = date.strftime('%s').to_i
period = tz.period_for_local(date, dst, &block)
flavor = if type == :generic
:generic
elsif type == :specific
period.std_offset > 0 ? :daylight : :standard
end
if explicit = (timezone_data[fmt] || {})[flavor]
return explicit
end
if tz_metazone = ZoneMeta.tz_metazone_for(tz_id, date)
if use_standard?(date_int, period)
std_name = tz_name_for(fmt, :standard) || mz_name_for(fmt, :standard, tz_metazone.mz_id)
mz_generic_name = mz_name_for(fmt, :generic, tz_metazone.mz_id)
return std_name if std_name && std_name != mz_generic_name
end
mz_name = mz_name_for(fmt, flavor, tz_metazone.mz_id)
return mz_name if type == :specific
golden_zone_id = tz_metazone.metazone.reference_tz_id
if golden_zone_id != tz_id
golden_zone = TZInfo::Timezone.get(golden_zone_id)
golden_period = golden_zone.period_for_local(date)
if period.utc_offset != golden_period.utc_offset || period.std_offset != golden_period.std_offset
return nil unless mz_name
return partial_location_name_for(tz_metazone.metazone, mz_name)
else
return mz_name
end
else
return mz_name
end
end
end