module Phys::UnitsMixin

Defines method with unit name. Caution: Variable names may conflict with unit names. @example

require 'phys/units'

Phys::UnitsMixin.module_eval do
  puts 123.4*km
  puts 23*mile/hr >> m/s
  puts h.to_si
  case mile/hr
  when m
    puts "length"
  when m/s
    puts "velocity"
  else
    puts "other"
  end
end

extend Phys::UnitsMixin

1*miles/hr >> m/s    #=> Phys::Quantity[0.44704,"m/s"]

Public Instance Methods

method_missing(method, *args, &block) click to toggle source
# File lib/phys/units/units_mixin.rb, line 44
def method_missing(method, *args, &block)
  if unit = Unit.find_unit(method)
    raise "argument must be empty" unless args.empty?
    Quantity.new(Rational(1), method, unit)
  else
    method_missing_units_alias(method, *args, &block)
  end
end
Also aliased as: method_missing_units_alias
method_missing_units_alias(method, *args, &block)
Alias for: method_missing
print_units(unit=nil) click to toggle source