Sha256: e4f8554df47126a8b4796fd1d6d5b43b9b78944c8e4f8aeae942b525a7d5f8a0

Contents?: true

Size: 1.31 KB

Versions: 10

Compression:

Stored size: 1.31 KB

Contents

# Fetcher
module WeatherFetcher
  class WeatherData

    attr_accessor :time_costs

    def initialize(h = { })
      @time_costs = Hash.new
      @h = h
      @h.keys.each do |k|
        self.instance_variable_set("@#{k}".to_sym, @h[k])
      end
    end

    # Return Array of WeatherData objects
    def self.factory(obj)
      return [ new(obj) ] if obj.kind_of? Hash
      return factory_from_array(obj) if obj.kind_of? Array
    end

    def self.factory_from_array(array = [])
      ao = Array.new
      array.each do |a|
        obj = self.new(a)
        ao << obj
      end
      return ao
    end

    # Mark this weather as just downloaded
    def just_fetched!
      @fetch_time ||= Time.now
    end

    def next_within!(_interval)
      # just_fetched!
      @next_fetch_time = @fetch_time + _interval
    end

    def is_metar?
      self.provider == WeatherFetcher::MetarProvider.provider_name
    end

    def city
      return nil? if @city_hash.nil?
      @city_hash[:name]
    end

    attr_reader :time_created, :time_from, :time_to, :fetch_time, :next_fetch_time,
      :temperature, :wind, :pressure, :wind_kmh, :snow, :rain,
      :rain_metar, :snow_metar,
      :cloud_cover, :humidity, :visibility, # available in WorldWeatherOnline
      :provider,
      :metar_string

    attr_accessor :city_hash



  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
weather_fetcher-0.1.5 lib/weather_fetcher/weather_data.rb
weather_fetcher-0.1.4 lib/weather_fetcher/weather_data.rb
weather_fetcher-0.1.3 lib/weather_fetcher/weather_data.rb
weather_fetcher-0.1.2 lib/weather_fetcher/weather_data.rb
weather_fetcher-0.1.1 lib/weather_fetcher/weather_data.rb
weather_fetcher-0.1.0 lib/weather_fetcher/weather_data.rb
weather_fetcher-0.0.16 lib/weather_fetcher/weather_data.rb
weather_fetcher-0.0.15 lib/weather_fetcher/weather_data.rb
weather_fetcher-0.0.14 lib/weather_fetcher/weather_data.rb
weather_fetcher-0.0.13 lib/weather_fetcher/weather_data.rb