Sha256: c7dce416e692382b3bf91623d314983015a6a679ce5bd4bec0a1ee1016f81ab3
Contents?: true
Size: 1.8 KB
Versions: 1
Compression:
Stored size: 1.8 KB
Contents
module OpenWeatherAPI module Resources class QueryHandler def initialize(api_obj, parameters = {}) @api_obj = api_obj @parameters = parameters end def handle build if can? end def can? value != nil end private def value true end def build @parameters end def country_code @parameters[:country_code] || @parameters[:cc] || @api_obj.default_country_code end def cities_count @parameters[:count] || @parameters[:cnt] || @parameters[:cities_count] end def cluster @parameters[:cluster] if @parameters[:cluster].to_s == 'yes' || @parameters[:cluster].to_s == 'no' end def fill(hash) hash[:cnt] = cities_count if cities_count hash[:cluster] = cluster if cluster hash end end class City < QueryHandler private def build { q: [value, country_code].compact.flatten.join(',') } end def value @parameters[:city] end end class CityID < QueryHandler def multiple? value.is_a? Array end private def build { id: [value].flatten.compact.join(',') } end def value @parameters[:id] || @parameters[:city_id] end end class Geolocation < QueryHandler def can? latitude != nil && longitude != nil end private def build { lat: latitude, lon: longitude } end def latitude @parameters[:latitude] || @parameters[:lat] end def longitude @parameters[:longitude] || @parameters[:lon] end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
open-weather-api-0.0.5 | lib/open-weather-api/resources/handlers/base.rb |