24 lines
479 B
Ruby
24 lines
479 B
Ruby
module CurrentTimezone
|
|
extend ActiveSupport::Concern
|
|
|
|
included do
|
|
around_action :set_current_timezone
|
|
|
|
helper_method :timezone_from_cookie
|
|
|
|
etag { timezone_from_cookie }
|
|
end
|
|
|
|
private
|
|
def set_current_timezone(&)
|
|
Time.use_zone(timezone_from_cookie, &)
|
|
end
|
|
|
|
def timezone_from_cookie
|
|
@timezone_from_cookie ||= begin
|
|
timezone = cookies[:timezone]
|
|
ActiveSupport::TimeZone[timezone] if timezone.present?
|
|
end
|
|
end
|
|
end
|