どんなオブジェクトなの?
いつも忘れるのでメモ。
id:raito3 さんに教えてもらった。
どのクラスのオブジェクトか知りたいとき、
1.class # => Fixnum 3.14.class # => Float "foo".class # => String
スーパークラスも含めて知りたいとき、
1.class.ancestors # => [Fixnum, Integer, Precision, Numeric, Comparable, Object, Kernel] 3.14.class.ancestors # => [Float, Precision, Numeric, Comparable, Object, Kernel] "foo".class.ancestors # => [String, Enumerable, Comparable, Object, Kernel]
いつも、
1.ancestor NoMethodError: undefined method `ancestor' for 1:Fixnum
とかしてしまって「スペルが間違ってるのかなぁ」とか思って焦る。(※ 間違ってます。)
irb の自動補完もできないし。(※ Module#ancestors だから。)
まず、オブジェクトのクラスを求めて、そのクラスに ancestors を聞けばいい。