Sha256: 79ec8eb33e16537661e7f64d0698b02b24525dbf17f0bdfc497364cc9fa02e04

Contents?: true

Size: 946 Bytes

Versions: 2

Compression:

Stored size: 946 Bytes

Contents

require_relative 'weather_services/base'
require_relative 'weather_services/response'

module Barometer
  module WeatherService
    def self.services=(services)
      @@services = services
    end

    def self.services
      @@services ||= Utils::VersionedRegistration.new
    end

    def self.register(key, *args, &block)
      if block_given?
        services.register(key, *args, &block)
      elsif args.size > 0
        services.register(key, *args)
      else
        raise ArgumentError
      end
    end

    def self.source(key, version=nil)
      services.find(key, version) or raise NotFound
    end

    def self.new(*args)
      Base.new(*args)
    end

    class KeyRequired < StandardError; end
    class NotFound < StandardError; end
  end
end

require_relative 'weather_services/wunderground_v1'
require_relative 'weather_services/yahoo'
require_relative 'weather_services/weather_bug'
require_relative 'weather_services/noaa'

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
barometer-0.9.4 lib/barometer/weather_service.rb
barometer-0.9.3 lib/barometer/weather_service.rb