Method: Stick::Units::Unit#method_missing

Defined in:
lib/stick/units/base.rb

#method_missing(m, *args, &blk) ⇒ Object



291
292
293
294
295
296
297
298
299
300
301
302
# File 'lib/stick/units/base.rb', line 291

def method_missing(m, *args, &blk)
  if args.length == 1
    args[0] = (Units::Converter.converter(args[0]) rescue nil) if not args[0].is_a? Units::Converter
    return self * Units::Unit.new({m => 1}, args[0]) if args[0] && args[0].registered?(m)
  elsif (Units::Converter.current.registered?(m) rescue false)
    raise ::ArgumentError, "Wrong number of arguments" if args.length != 0
    return self * Units::Unit.new({m => 1}, Units::Converter.current)
  end
  ::Exception.with_clean_backtrace("method_missing") {
    super
  }
end