Duck-type driven interface implementation in Ruby