Class: TapeMeasure::Formatter
- Inherits:
-
Object
- Object
- TapeMeasure::Formatter
- Defined in:
- lib/tape_measure/formatter.rb
Overview
Format numbers in mixed numbers
Instance Attribute Summary collapse
-
#mixed_number ⇒ Object
readonly
Returns the value of attribute mixed_number.
Instance Method Summary collapse
- #format_feet ⇒ Object
- #format_fraction ⇒ Object
- #format_inches ⇒ Object
-
#initialize(number = 0.0) ⇒ Formatter
constructor
A new instance of Formatter.
Constructor Details
#initialize(number = 0.0) ⇒ Formatter
Returns a new instance of Formatter.
6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/tape_measure/formatter.rb', line 6 def initialize(number = 0.0) @number = number @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 @mixed_number = @unit_array.compact.join end |
Instance Attribute Details
#mixed_number ⇒ Object (readonly)
Returns the value of attribute mixed_number.
4 5 6 |
# File 'lib/tape_measure/formatter.rb', line 4 def mixed_number @mixed_number end |
Instance Method Details
#format_feet ⇒ Object
21 22 23 |
# File 'lib/tape_measure/formatter.rb', line 21 def format_feet @unit_array << "#{@feet}'" if @feet > 0 end |
#format_fraction ⇒ Object
32 33 34 35 36 |
# File 'lib/tape_measure/formatter.rb', line 32 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 ⇒ Object
25 26 27 28 29 30 |
# File 'lib/tape_measure/formatter.rb', line 25 def format_inches if @inches > 0 @unit_array << ' ' if @feet > 0 @unit_array << "#{@inches}" end end |