Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

browser-timezone-rails

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

browser-timezone-rails

  • 1.1.0
  • Rubygems
  • Socket score

Version published
Maintainers
1
Created
Source

BrowserTimezoneRails

Build Status Code Quality

Rails Engine which sets the Rails timezone to the browser's configured timezone for each request.

Installation

Add it to your Gemfile.

gem 'browser-timezone-rails'

Make sure you have each of the following entries in your application.js:

//= require js.cookie
//= require browser_timezone_rails/set_time_zone

That's it! No other configuration is needed as it's all done for you with this gem including setting up your application controller to start using your users' zones.

How it works

The browser's timezone is set in a cookie using the modern ECMAScript Internationalization API

Caveat: doesn't work with Internet Explorer.

(Up to 1.0.4 version of the gem, the cookie was set via the jsTimezoneDetect javascript library, which, however, was often inaccurate.)

That cookie is then read during each request to set the Rails timezone for that user.

You can also read more about this implementation here: Blog

For those of you who need or want to do this on the backend with just Rails, Ryan Bates has a good RailsCast on how to that: RailsCast #106

The cookie is set each full page request and lives for 365 days

Thread safety

Yes. It uses the Rails Time.zone method which is thread safe.

Caveat

The first request ever made by a user's browser to your app will not set the browser's time zone as the javascript that sets the cookie has not yet run on their browser. This will only happen once and for me it was not a problem.

Development

To run the tests, invoke bundle exec rspec.

FAQs

Package last updated on 08 Jul 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc