Sha256: 6dd634e137ddf5a4491e36421aaf6cc01c70323109b5961bbf2669a175f3145d

Contents?: true

Size: 1.02 KB

Versions: 1

Compression:

Stored size: 1.02 KB

Contents

require 'logger'
require 'colorize'

# Fetcher
module WeatherFetcher
  class Fetcher

    attr_accessor :logger

    def initialize
      @logger = Logger.new(STDOUT)
    end

    def fetch(defs, max_response_time = 0.8)
      require 'yaml'
      classes = ProviderList.providers(max_response_time)
      result = Array.new

      classes.each do |c|
        self.logger.debug("#{self.class.to_s.blue} - starting #{c.to_s.red} with #{defs.size.to_s.green} definitions")

        instance = c.new(defs)
        instance.logger = self.logger
        instance.fetch
        class_results = instance.weathers

        self.logger.debug("#{self.class.to_s.blue} - done #{c.to_s.red} with #{class_results.size.to_s.green} results")
        result += class_results
      end

      return result
    end

    def represent_result(result)
      puts result.inspect
      data = result.sort{|r,s| r.time_from <=> s.time_from}
      data.each do |d|
        puts "#{d.provider} #{d.time_from} #{d.temperature} #{d.wind}"
      end
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
weather_fetcher-0.1.5 lib/weather_fetcher/fetcher.rb