class TemperatureConverter

Constants

ACCETPTED_STRATEGY

Attributes

convert_strategy[R]

Public Class Methods

new(convert_from) click to toggle source
# File lib/temperature_converter_bl.rb, line 7
def initialize(convert_from)
  raise StrategyNotSupportedError unless ACCETPTED_STRATEGY.include?(convert_from)
  @convert_strategy = Object.const_get("#{convert_from.capitalize}Strategy").new
end

Public Instance Methods

convert_temperature(convert_to, temperature) click to toggle source
# File lib/temperature_converter_bl.rb, line 12
def convert_temperature(convert_to, temperature)
  raise InvalidTemperatureError unless temperature.to_s.match(/\A[-+]?\d*\.?\d+\z/)
  @convert_strategy.convert_temperature(convert_to, temperature.to_f)
end