class Numeric
@@currencies = {'dollar' => 1, 'yen' => 0.013, 'euro' => 1.292, 'rupee' => 0.019}
def method_missing(method_id, *args)
if method_id == "in"
singular_currency = args.to_s.gsub( /s$/, '')
if @@currencies.has_key?(singular_currency)
self * @@currencies[singular_currency]
end
end
singular_currency = method_id.to_s.gsub( /s$/, '')
if @@currencies.has_key?(singular_currency)
self / @@currencies[singular_currency]
else
super
end
end
end
print 3.dollar.in(:dollar)
Y2xhc3MgTnVtZXJpYwogIEBAY3VycmVuY2llcyA9IHsnZG9sbGFyJyA9PiAxLCAneWVuJyA9PiAwLjAxMywgJ2V1cm8nID0+IDEuMjkyLCAncnVwZWUnID0+IDAuMDE5fQogIGRlZiBtZXRob2RfbWlzc2luZyhtZXRob2RfaWQsICphcmdzKQogICAgaWYgbWV0aG9kX2lkID09ICJpbiIgCiAgICAgIHNpbmd1bGFyX2N1cnJlbmN5ID0gYXJncy50b19zLmdzdWIoIC9zJC8sICcnKQogICAgICBpZiBAQGN1cnJlbmNpZXMuaGFzX2tleT8oc2luZ3VsYXJfY3VycmVuY3kpCiAgICAgICAgc2VsZiAqIEBAY3VycmVuY2llc1tzaW5ndWxhcl9jdXJyZW5jeV0KICAgICAgZW5kCiAgICBlbmQgICAKICAgIAogICAgc2luZ3VsYXJfY3VycmVuY3kgPSBtZXRob2RfaWQudG9fcy5nc3ViKCAvcyQvLCAnJykKICAgIGlmIEBAY3VycmVuY2llcy5oYXNfa2V5PyhzaW5ndWxhcl9jdXJyZW5jeSkKICAgICAgc2VsZiAvIEBAY3VycmVuY2llc1tzaW5ndWxhcl9jdXJyZW5jeV0KICAgIGVsc2UKICAgICAgc3VwZXIKICAgIGVuZAogIGVuZCAgICAgCmVuZAoKcHJpbnQgMy5kb2xsYXIuaW4oOmRvbGxhcik=