Hey, I recently released new small gem wheretz[1] for timezone lookup, like
this:
require 'wheretz'
WhereTZ.lookup(50.004444, 36.231389) # (lat, lng) order
# => 'Europe/Kiev'
WhereTZ.get(50.004444, 36.231389)
# => #<TZInfo::DataTimezone: Europe/Kiev>
It is (relatively) fast, doesn’t depend on any external service and return
quite precise results.
Uses tz_world_map[2], converted into per-timezone .geojson files, and some
filename tricks to speed up lookup.
1. https://github.com/zverok/wheretz
2. http://efele.net/maps/tz/world/