Method: Fractify::Fraction#-

Defined in:
lib/fractify/fraction.rb

#-(other) ⇒ Object



152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
# File 'lib/fractify/fraction.rb', line 152

def -(other)
  check_argument(other)

  fraction = dup
  object = if other.is_a? Numeric
             Fractify::Fraction.new(numeric: other)
           else
             other.dup
           end
  fraction.to_common_denominator!(object) unless object.zero?

  fraction.minus_to_numerator!
  object.minus_to_numerator!

  fraction.numerator -= object.numerator
  fraction.minus_to_negative_field!
  fraction.simplify!

  fraction
end