Pattern matching for method dispatch... in Ruby?