Rubyのオブジェクト作成方法を改変する(翻訳)

概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Changing the Way Ruby Creates Objects | AppSignal Blog 原文公開日: 2018/08/07 著者: Benedikt Deicke(@benediktdeicke) — Userlist.ioのCTOであり書籍『SaaS applications in Ruby on Rails』の著者です。 サイト: AppSignal Rubyのオブジェクト作成方法を改変する(翻訳) Rubyの素晴らしさのひとつに、必要に応じてほぼ何でもカスタマイズできるという点があげられます。カスタマイズは便利であると同時に危険も伴うので、うっかりすると簡単に自分の足を撃ち抜いてしまいますが、十分気をつければ相当強力なソリューションを生み出すこともできます。 「Ruby Magic」では、便利さと危険は名コンビであると考えます。それではRubyのオブジェクト初期化方法を調べ、デフォルトの振る舞いを改変してみましょう。 クラスからの新規オブジェクト作成の基本 最初に、Rubyがオブジェクトを作成する方法を見てみましょう。新しいオブジェクト(インスタンス)を作成するには、そのクラスでnewを呼び出します。他の言語と異なり、Rubyのnewは言語のキーワードではなくメソッドであり、次のように他のメソッドとまったく同じように呼び出されます。 class Dog end object = Dog.new このnewメソッドに引数を渡すことで、新しく作成されたオブジェクトをカスタマイズできます。引数として渡したものは、種類を問わずイニシャライザに渡されます。 class Dog def initialize(name) @name = name end end object = Dog.new(‘Good boy’) 繰り返しますが、Rubyのイニシャライザは他の言語のような特殊な構文やキーワードではなく、単なるメソッドです。 ということは、Rubyの他のメソッドと同様に、こうしたイニシャライザメソッドにもちょっかいを出せるのではないでしょうか?もちろん可能です! 単独のオブジェクトの振る舞いを改変する … Continue reading Rubyのオブジェクト作成方法を改変する(翻訳)