タグ

rubyとclassに関するkiyo_hikoのブックマーク (3)

  • How do I get the name of a Ruby class?

    How can I get the class name from an ActiveRecord object? I have: result = User.find(1) I tried: result.class # => User(id: integer, name: string ...) result.to_s # => #<User:0x3d07cdc>" I need only the class name, in a string (User in this case). Is there a method for that? I know this is pretty basic, but I searched both Rails' and Ruby's docs, and I couldn't find it.

    How do I get the name of a Ruby class?
    kiyo_hiko
    kiyo_hiko 2016/04/28
    地味に忘れがちなobj.class . n a m e
  • Structクラスを継承してはいけない(戒め - Bye Bye Moore

    以前書いたStructで構造体なデータを扱う - Bye Bye Mooreという記事で class Point < Struct.new(:x, :y) def +(other_object) Point.new(x + other_object.x, y + other_object.y) end end とか書いていました。 が、公式リファレンスには 無名クラスのサブ クラスを作成する方法でカスタマイズする場合は無名クラスが使用されなくなっ てしまうことがあるためです。 との記述があり上記の方法は推奨されません。 どうしても拡張する必要がある場合 Point = Struct.new(:x,:y) do def +(other_object) Point.new(x + other_object.x, y + other_object.y) end end としてあげるのがよいです。

    Structクラスを継承してはいけない(戒め - Bye Bye Moore
    kiyo_hiko
    kiyo_hiko 2016/01/28
    Clazz < Struct.new(:attribute); def method() ... end; end ではなく Clazz = Struct.new(:attribute) do; def method() ... end; end な感じがいいという話
  • Ruby(Motion)でmethodsを使ってメソッド検索 - Qiita

    Rubyはirbでmethodsメソッドを使うことで、それぞれのオブジェクトに定義されているメソッドをインタラクティブに検索できて便利ですよね。 メソッド検索用メソッド一覧 でmethodsという単語を含むメソッドは以下の通りです。 #instance_methods (Module) #methods (Object) #private_instance_methods (Module) #private_methods (Object) #protected_instance_methods (Module) #protected_methods (Object) #public_instance_methods (Module) #public_methods (Object) #singleton_methods (Object)

    Ruby(Motion)でmethodsを使ってメソッド検索 - Qiita
    kiyo_hiko
    kiyo_hiko 2015/10/20
    Clazz.methods.grep /pattern/i // pry ls
  • 1