0

私は次のものを持っています:

class Foo

  def bar
    "foobar"
  end

  def baz
    "foobaz"
  end

  def qux(arg)
    ...
  end

end

明示的に指定せずに、メソッドandas_jsonのキーと値が含まれるようにオーバーライドするにはどうすればよいですか?barbazqux

4

1 に答える 1

2

次のようなことができます。

def get_public_methods
   array = self.public_methods(false).delete_if {|meth| Foo.instance_method(meth).arity > 0}.map{|meth| [meth, self.send(meth)]}

   Hash[*array.flatten]
end

戻ります{:bar=>"foobar", :baz=>"foobaz"}

次に、オーバーロードを呼び出しget_public_methodsますas_json

于 2013-04-14T16:27:04.090 に答える