Class: MyTimeZoneManager
- Inherits:
-
Object
- Object
- MyTimeZoneManager
- Defined in:
- app/my_lib/my_time_zone_manager.rb
Overview
Handle provided time zone on web app
Class Method Summary collapse
- .available_zones ⇒ Object
- .current_user_time ⇒ Object
- .default_zone ⇒ Object
- .normalize_zone ⇒ Object
- .set_user_zone(time_zone) ⇒ Object
Class Method Details
.available_zones ⇒ Object
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_time ⇒ Object
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_zone ⇒ Object
23 24 25 |
# File 'app/my_lib/my_time_zone_manager.rb', line 23 def default_zone HungryHub::Time::DEFAULT_ZONE end |
.normalize_zone ⇒ Object
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 |