Module: Hellobase::TimeZones

Defined in:
lib/hellobase/time_zones.rb,
lib/hellobase/time_zones/version.rb

Constant Summary collapse

VERSION =
'0.1.1'

Class Method Summary collapse

Class Method Details

.all_select_values(country_code) ⇒ Object



14
15
16
# File 'lib/hellobase/time_zones.rb', line 14

def all_select_values(country_code)
  domestic_select_values(country_code) + [['UTC', 'UTC']] + foreign_select_values(country_code)
end

.display_name_for(tz_name) ⇒ Object



18
19
20
# File 'lib/hellobase/time_zones.rb', line 18

def display_name_for(tz_name)
  (@display_names ||= all_select_values('US').to_h.invert)[tz_name]
end

.domestic_select_values(country_code) ⇒ Object



6
7
8
# File 'lib/hellobase/time_zones.rb', line 6

def domestic_select_values(country_code)
  TZInfo::Country.get(country_code).zone_info.map {|z| [z.description || z.timezone.friendly_identifier(true), z.identifier] }
end

.foreign_select_values(country_code) ⇒ Object



10
11
12
# File 'lib/hellobase/time_zones.rb', line 10

def foreign_select_values(country_code)
  TZInfo::Country.all.reject {|c| c.code == country_code }.map(&:zone_info).flatten.uniq.map {|z| [z.description || z.timezone.friendly_identifier(false), z.identifier] }
end