Sha256: ef9a8576791aacb2513a465467c3e8d9b4de1f7a8d8d7bcd9ffb6b8db1ae139b

Contents?: true

Size: 998 Bytes

Versions: 3

Compression:

Stored size: 998 Bytes

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,
      :provider

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
weather_fetcher-0.0.8 lib/weather_fetcher/weather_data.rb
weather_fetcher-0.0.7 lib/weather_fetcher/weather_data.rb
weather_fetcher-0.0.6 lib/weather_fetcher/weather_data.rb