class TapeMeasure::Formatter
Format numbers in mixed numbers
Attributes
mixed_number[R]
Public Class Methods
new(number = 0.0)
click to toggle source
# File lib/tape_measure/formatter.rb, line 6 def initialize(number = 0.0) @number = number.to_f @unit_array = [] @feet = @number.div(12) @raw_inches = @number.remainder(12) @inches = @raw_inches.to_i @fraction = @raw_inches.remainder(1).to_r.rationalize(0.01) format_feet format_inches format_fraction if @unit_array.size > 0 @mixed_number = @unit_array.compact.join else @mixed_number = 0 end end
Public Instance Methods
format_feet()
click to toggle source
# File lib/tape_measure/formatter.rb, line 26 def format_feet @unit_array << "#{@feet}'" if @feet > 0 end
format_fraction()
click to toggle source
# File lib/tape_measure/formatter.rb, line 36 def format_fraction @unit_array << ' ' if @fraction > 0 && @inches > 0 @unit_array << "#{@fraction}" if @fraction > 0 @unit_array << "\"" if @raw_inches > 0 end
format_inches()
click to toggle source
# File lib/tape_measure/formatter.rb, line 30 def format_inches return unless @inches > 0 @unit_array << ' ' if @feet > 0 @unit_array << "#{@inches}" end