Sha256: 3176aae4aaadccced5540e694d88fd9146361c794f4c4ed72c2d29a3d239fb17
Contents?: true
Size: 1.26 KB
Versions: 8
Compression:
Stored size: 1.26 KB
Contents
require 'timezone/error' module Timezone module Lookup # @abstract Subclass and override {#lookup} to implement # a custom Lookup class. class Basic attr_reader :config # @param config [#protocol, #url, #request_handler] a configuration # object def initialize(config) if config.protocol.nil? raise(::Timezone::Error::InvalidConfig, 'missing protocol') end if config.url.nil? raise(::Timezone::Error::InvalidConfig, 'missing url') end @config = config end # Returns an instance of the request handler. # # @return [#get] an instance of a request handler def client @client ||= config.request_handler.new(config) end # Returns a timezone name for a given lat, long pair. # # @param lat [Double] latitude coordinate # @param long [Double] longitude coordinate # @return [String] the timezone name # @return [nil] if the lat, long pair does not resolve to an # actual timezone # @raise [Timezone::Error::Base] if an error occurred while # while performing the lookup def lookup(_lat, _long) raise NoMethodError, 'lookup is not implemented' end end end end
Version data entries
8 entries across 8 versions & 1 rubygems