def /(other)
      case other
      when Unit
        raise ZeroDivisionError if other.zero?
        raise ArgumentError, 'Cannot divide with temperatures' if [other, self].any?(&:temperature?)
        sc = Rational(@scalar, other.scalar)
        sc = sc.numerator if sc.denominator == 1
        opts = RubyUnits::Unit.eliminate_terms(sc, @numerator + other.denominator, @denominator + other.numerator)
        opts[:signature] = @signature - other.signature
        RubyUnits::Unit.new(opts)
      when Numeric
        raise ZeroDivisionError if other.zero?
        sc = Rational(@scalar, other)
        sc = sc.numerator if sc.denominator == 1
        RubyUnits::Unit.new(scalar: sc, numerator: @numerator, denominator: @denominator, signature: @signature)
      else
        x, y = coerce(other)
        y / x
      end
    end
def /(other)
      case other
      when Unit
        raise ZeroDivisionError if other.zero?
        raise ArgumentError, 'Cannot divide with temperatures' if [other, self].any?(&:temperature?)
        sc = Rational(@scalar, other.scalar)
        sc = sc.numerator if sc.denominator == 1
        opts = RubyUnits::Unit.eliminate_terms(sc, @numerator + other.denominator, @denominator + other.numerator)
        opts[:signature] = @signature - other.signature
        RubyUnits::Unit.new(opts)
      when Numeric
        raise ZeroDivisionError if other.zero?
        sc = Rational(@scalar, other)
        sc = sc.numerator if sc.denominator == 1
        RubyUnits::Unit.new(scalar: sc, numerator: @numerator, denominator: @denominator, signature: @signature)
      else
        x, y = coerce(other)
        y / x
      end
    end
Divide two units.
 Throws an exception if divisor is 0
 @param [Numeric] other
 @return [Unit]
 @raise [ZeroDivisionError] if divisor is zero
 @raise [ArgumentError] if attempting to divide a temperature by another temperature