Sha256: 49e0a03f408cd301b7bccecbe920c7c24a5a6c6568a85a8daf22328457a84c8c

Contents?: true

Size: 778 Bytes

Versions: 3

Compression:

Stored size: 778 Bytes

Contents

module TemperatureConversion
  # Proxy = Kelvin
  def to_kelvin
    case @unit
    when 'celcius'
      @measurement += 273.15
    when 'rankine'
      @measurement /= 1.8
    when 'fahrenheit'
      @measurement = (@measurement + 459.67) * 5 / 9
    end
  end

  def to_celcius
    if @unit == 'kelvin'
      @measurement -= 273.15
    else
      self.to_kelvin
      @unit = 'kelvin'
      self.to_celcius
    end
  end

  def to_fahrenheit
    if @unit == 'kelvin'
      @measurement = (@measurement * 9 / 5.0) - 459.67
    else
      self.to_kelvin
      @unit = 'kelvin'
      self.to_fahrenheit
    end
  end

  def to_rankine
    if @unit == 'kelvin'
      @measurement *= 1.8
    else
      self.to_kelvin
      @unit = 'kelvin'
      self.to_rankine
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
unit_conversion-1.0.2 lib/unit_conversion/temperature_conversion.rb
unit_conversion-1.0.1 lib/unit_conversion/temperature_conversion.rb
unit_conversion-1.0.0 lib/unit_conversion/temperature_conversion.rb