Class: MyTimeZoneManager

Inherits:
Object
  • Object
show all
Defined in:
app/my_lib/my_time_zone_manager.rb

Overview

Handle provided time zone on web app

Class Method Summary collapse

Class Method Details

.available_zonesObject



7
8
9
10
11
# File 'app/my_lib/my_time_zone_manager.rb', line 7

def available_zones
  Rails.cache.fetch('MyTimeZoneManager|available_zones|v20180213') do
    ActiveSupport::TimeZone.all.map(&:tzinfo).map(&:name).uniq
  end
end

.current_user_timeObject



27
28
29
# File 'app/my_lib/my_time_zone_manager.rb', line 27

def current_user_time
  Time.use_zone(default_zone) { Time.current }
end

.default_zoneObject



23
24
25
# File 'app/my_lib/my_time_zone_manager.rb', line 23

def default_zone
  HungryHub::Time::DEFAULT_ZONE
end

.normalize_zoneObject



19
20
21
# File 'app/my_lib/my_time_zone_manager.rb', line 19

def normalize_zone
  Thread.current[:hh_user_zone] || default_zone
end

.set_user_zone(time_zone) ⇒ Object



13
14
15
16
17
# File 'app/my_lib/my_time_zone_manager.rb', line 13

def set_user_zone(time_zone)
  return true if time_zone == normalize_zone

  Thread.current[:hh_user_zone] = time_zone if available_zones.include?(time_zone)
end