class Lite::Measurements::Base

Attributes

amount[RW]

Public Class Methods

convert(amount, from:, to:) click to toggle source
# File lib/lite/measurements/base.rb, line 15
def convert(amount, from:, to:)
  klass = new(amount)
  klass.convert(from: from, to: to)
end
new(amount) click to toggle source
# File lib/lite/measurements/base.rb, line 9
def initialize(amount)
  @amount = amount
end

Private Instance Methods

assert_all_valid_keys!(from, to, valid_keys) click to toggle source
# File lib/lite/measurements/base.rb, line 24
def assert_all_valid_keys!(from, to, valid_keys)
  [from, to].each { |key| assert_valid_keys!(key, valid_keys) }
end
assert_valid_keys!(key, valid_keys) click to toggle source

rubocop:disable Style/GuardClause

# File lib/lite/measurements/base.rb, line 29
def assert_valid_keys!(key, valid_keys)
  if valid_keys.empty?
    raise ArgumentError, 'Missing key: conversion key must be provided'
  elsif !valid_keys.include?(key)
    raise ArgumentError,
          "Invalid key: #{key.inspect}." \
          "Allowed keys are: #{valid_keys.map(&:inspect).join(', ')}"
  end
end