class Stormglass::Value

represents a value for a stormglass prediction source with prefered unit_type contains a collection of Stormglass::Subvalue's, which represent a particular unit of measurement for example, a Stormglass::Value for air_temperature would have Stormglass::Subvalue's for Celsius and Fahrenheit

Public Class Methods

new(attribute, src, data_source, unit_type) click to toggle source
# File lib/stormglass/value.rb, line 10
def initialize(attribute, src, data_source, unit_type)
  @attribute = attribute
  @src = src
  @data_source = data_source
  @unit_type = unit_type
end

Public Instance Methods

attribute() click to toggle source
# File lib/stormglass/value.rb, line 36
def attribute
  @attribute
end
data_source() click to toggle source
# File lib/stormglass/value.rb, line 17
def data_source
  @data_source
end
data_sources() click to toggle source

returns the sources available for this value

# File lib/stormglass/value.rb, line 28
def data_sources
  src.collect{|v| v['source']}
end
dict() click to toggle source
# File lib/stormglass/value.rb, line 65
def dict
  Stormglass::RESULT_DICT[attribute]
end
for_source() click to toggle source
# File lib/stormglass/value.rb, line 21
def for_source
  @src.collect do |v|
    v['value'] if (!v['source'].nil? && v['source'] == data_source)
  end.compact.first
end
inspect() click to toggle source
# File lib/stormglass/value.rb, line 44
def inspect
  string = "#<#{self.class.to_s} "
  string +="value=#{preffered_subvalue.value}, unit='#{preffered_subvalue.unit}', description='#{preffered_subvalue.description}', "
  string +="unit_type='#{preffered_subvalue.unit_type}', unit_types=#{unit_types.to_s}, data_source='#{@data_source}', data_sources=#{data_sources}>"
  string
end
preffered_subvalue() click to toggle source
# File lib/stormglass/value.rb, line 55
def preffered_subvalue
  if @unit_type
    subvalues.find{|subvalue| subvalue.unit_type == @unit_type}
  elsif setting_key = Stormglass.settings.units[@attribute]
    subvalues.find{|subvalue| subvalue.unit_type == setting_key}
  else
    subvalues.first
  end
end
src() click to toggle source
# File lib/stormglass/value.rb, line 40
def src
  @src
end
subvalues() click to toggle source
# File lib/stormglass/value.rb, line 69
def subvalues
  subvals = []
  raw_val = for_source()
  subvals << {value: raw_val}.merge(dict)
  Stormglass::AlternateValues.perform(subvals)
  subvals.collect{|subvalue| Stormglass::Subvalue.new(subvalue) }
end
to_s() click to toggle source
# File lib/stormglass/value.rb, line 32
def to_s
  preffered_subvalue.to_s
end
unit_types() click to toggle source
# File lib/stormglass/value.rb, line 51
def unit_types
  subvalues.collect(&:unit_type)
end