Socket
Book a DemoInstallSign in
Socket

tzdetect

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

tzdetect

0.1.3
bundlerRubygems
Version published
Maintainers
1
Created
Source

TZDetect

Detects timezone by address or location, using google or geoname web services. It will utilaze web services only if can't detect timezone by country code (when country has only one timezone)

Procedure for detecting time zone:

  • Looks tah given country has only one time zone
  • Fetching time zone data through web services if position (latitude and longitude) is given
  • First detects position for given country, city and region and then fetch timezone data from web

Installation

Add this line to your application's Gemfile:

gem 'tzdetect'

And then execute:

$ bundle

Or install it yourself as:

$ gem install tzdetect

Configuration

Can be set through block:

TZDetect::Configuration.begin do |c|
  c.username = 'your_geonames_username'
end

or TZDetect::Configuration.service = :geoname TZDetect::Configuration.username = "username"

Configuration params:

  • service - service name can be :google or :geoname - default google
  • username - username for geoname service
  • google_client_key = google api key (not tested )
  • google_signature = google api signature (not tested )

If you use geoname service, make sure you have a geonames username. It's free and easy to setup, you can do so here.

Usage

Country with many timezones without position data: System will find location for Miami and then find timezone

tz = TimeZone.new("US", "Miami", "Florida")
tz.timezone.name   #  "America/New_York"
tz.latitude        #   25.774265 
tz.longitude       #  -80.193658

Country with many time zones with position data: System will directly find timezone with position data

tz = TimeZone.new("US", "Miami", "Florida", 25.774265, -80.193658)
tz.timezone.name   #  "America/New_York"

Country with one time zone will not return location data

tz = TimeZone.new("RS", "Novi Sad")
tz.timezone.name   #  "Europe/Belgrade"
tz.latitude        #   nil 
tz.longitude       #   nil

Class methods

Get timezone by location

Return TZInfo object

tz = TimeZone.get!("RS", "Novi Sad")
tz.name   #  "Europe/Belgrade" 

tz = TimeZone.new("US", "Miami", "Florida", 25.774265, -80.193658)
tz.timezone.name   #  "America/New_York"

Getting the timezone for a specific latitude and longitude

You can use class method by_location

TZDetect::TimeZone.by_location! 44.21, 21.0 

Contributing

  • Fork it
  • Create your feature branch (git checkout -b my-new-feature)
  • Commit your changes (git commit -am 'Add some feature')
  • Push to the branch (git push origin my-new-feature)
  • Create new Pull Request

FAQs

Package last updated on 20 Dec 2012

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

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.