• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:rubyのObject#methodsについて)

rubyのObject#methodsメソッドについて

このQ&Aのポイント
  • rubyのmethodsメソッドについて解説します。methodsメソッドは、クラスごとのメソッドを取得するためのメソッドです。
  • ObjectクラスのmethodメソッドをMethodインスタンスとして取得する場合、parametersメソッドを使用して引数の情報を得ることができます。
  • しかし、methodsメソッド自体にはparametersメソッドが存在せず、クラスごとのメソッドを全て表示させる方法がわかりません。ご存知の方、教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • sholmes
  • ベストアンサー率81% (89/109)
回答No.2

こちらの環境だと、met.methodsの戻り値に:parametersも含まれました。 ruby1.9.3p125のdarwinとmingw32で確認済みです。 また、最後に貼っておいたideoneの1.9.2でも同様の結果が見られます。 Object#methods の引数にnilかfalseを渡しているのでなければ、 Railsなり何かの追加gemなりで上書きしてるのかもしれませんね もし素のRubyで出ているようであれば、是非Rubyのコミュニティへ報告を上げてあげて下さい <おまけ> クラスごとのメソッドを表示するという意味合いですと、Object#methodsではなくてModule#instance_methodsが適するんじゃないかなと思います。 Object#methodsには特異メソッドも含まれるので http://ideone.com/WSMU3

graf_
質問者

お礼

回答ありがとうございます。 今朝確認しましたら存在しました。 再現もできず、白昼夢のような質問をいたしまして申し訳ありませんでした。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • notnot
  • ベストアンサー率47% (4903/10364)
回答No.1

>met.methods >には、「:parameters」がありません。 ありますけど。。。 $ ruby -v -e 'p Object.method(:method).methods.sort' ruby 1.9.3p125 (2012-02-16 revision 34643) [x86_64-linux] [:!, :!=, :!~, :<=>, :==, :===, :=~, :[], :__id__, :__send__, :arity, :call, :class, :clone, :define_singleton_method, :display, :dup, :enum_for, :eql?, :equal?, :extend, :freeze, :frozen?, :hash, :initialize_clone, :initialize_dup, :inspect, :instance_eval, :instance_exec, :instance_of?, :instance_variable_defined?, :instance_variable_get, :instance_variable_set, :instance_variables, :is_a?, :kind_of?, :method, :methods, :name, :nil?, :object_id, :owner, :parameters, :private_methods, :protected_methods, :public_method, :public_methods, :public_send, :receiver, :respond_to?, :respond_to_missing?, :send, :singleton_class, :singleton_methods, :source_location, :taint, :tainted?, :tap, :to_enum, :to_proc, :to_s, :trust, :unbind, :untaint, :untrust, :untrusted?]

graf_
質問者

お礼

早速の回答ありがとうございます。 今朝確認しましたらきちんと存在しました。 お手を煩わしまして申し訳ありませんでした。

すると、全ての回答が全文表示されます。

関連するQ&A