Class: Ingreedy::Rationalizer

Inherits:
Object
  • Object
show all
Defined in:
lib/ingreedy/rationalizer.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ Rationalizer

Returns a new instance of Rationalizer.



7
8
9
10
11
12
# File 'lib/ingreedy/rationalizer.rb', line 7

def initialize(options)
  @integer  = options.fetch(:integer, nil)
  @float    = options.fetch(:float, nil)
  @fraction = options.fetch(:fraction, nil)
  @word     = options.fetch(:word, nil)
end

Class Method Details

.rationalize(options) ⇒ Object



3
4
5
# File 'lib/ingreedy/rationalizer.rb', line 3

def self.rationalize(options)
  new(options).rationalize
end

Instance Method Details

#rationalizeObject



14
15
16
17
18
19
20
# File 'lib/ingreedy/rationalizer.rb', line 14

def rationalize
  if Ingreedy.preserve_amounts
    (normalized_word || compound_fraction || @float || @integer)
  else
    (normalized_word || rationalized_fraction || rationalized_float || @integer).to_r
  end
end