Sha256: d3eaacb4f421f2f4b032d25047fd5981341543a004af154f9aa55e51cba54bba

Contents?: true

Size: 815 Bytes

Versions: 1

Compression:

Stored size: 815 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'

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
barometer-0.9.7 lib/barometer/weather_service.rb