Sha256: aba7024f88f514dbc5c25a6212f5c120179567900d415fb3e37d9a8129eb33bd

Contents?: true

Size: 1.1 KB

Versions: 2

Compression:

Stored size: 1.1 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

    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

  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
weather_fetcher-0.0.12 lib/weather_fetcher/weather_data.rb
weather_fetcher-0.0.11 lib/weather_fetcher/weather_data.rb