Module: Unite::Fraction
- Extended by:
- ActiveSupport::Concern
- Included in:
- Dimension::Vector, SiFactor
- Defined in:
- lib/unite/fraction.rb
Defined Under Namespace
Modules: ClassMethods
Instance Method Summary collapse
- #expanded_denominator ⇒ Object
- #expanded_numerator ⇒ Object
- #expression(precision = 2) ⇒ Object
- #expression=(string) ⇒ Object
- #initialize(*args) ⇒ Object
- #inverse ⇒ Object
- #reduce ⇒ Object
- #unit ⇒ Object
Instance Method Details
#expanded_denominator ⇒ Object
41 42 43 |
# File 'lib/unite/fraction.rb', line 41 def denominator end |
#expanded_numerator ⇒ Object
37 38 39 |
# File 'lib/unite/fraction.rb', line 37 def numerator end |
#expression(precision = 2) ⇒ Object
29 30 31 |
# File 'lib/unite/fraction.rb', line 29 def expression precision = 2 denominator_expression.blank? ? numerator_expression(precision) : "#{numerator_expression(precision)}/#{denominator_expression}" end |
#expression=(string) ⇒ Object
23 24 25 26 27 |
# File 'lib/unite/fraction.rb', line 23 def expression= string self.value, self.numerator, self.denominator = parse_expression string reduce expression end |
#initialize(*args) ⇒ Object
17 18 19 20 21 |
# File 'lib/unite/fraction.rb', line 17 def initialize *args self.value ||= BigDecimal.new(0) self.numerator ||= [] self.denominator ||= [] end |
#inverse ⇒ Object
45 46 47 48 |
# File 'lib/unite/fraction.rb', line 45 def inverse new_value = value == BigDecimal.new(0) ? BigDecimal.new(0) : BigDecimal.new(1) / value self.class.new :value => new_value, :numerator => denominator, :denominator => numerator end |
#reduce ⇒ Object
50 51 52 53 |
# File 'lib/unite/fraction.rb', line 50 def reduce new_unit = normalized_unit convert_to!(normalized_unit) unless new_unit == unit || !self.respond_to?(:convert_to!) end |
#unit ⇒ Object
33 34 35 |
# File 'lib/unite/fraction.rb', line 33 def unit unit_array_to_string self.numerator, self.denominator end |