タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

rubyとprependに関するmachupicchubetaのブックマーク (2)

  • Module#prepend (Ruby 3.3 リファレンスマニュアル)

    prepend(*modules) -> self[permalink][rdoc][edit] 指定したモジュールを self の継承チェインの先頭に「追加する」ことで self の定数、メソッド、モジュール変数を「上書き」します。 継承チェイン上で、self のモジュール/クラスよりも「手前」に追加されるため、結果として self で定義されたメソッドは override されます。 modules で指定したモジュールは後ろから順に処理されるため、 modules の先頭が最も優先されます。 また、継承によってこの「上書き」を処理するため、prependの引数として渡したモジュールのインスタンスメソッドでsuperを呼ぶことで self のモジュール/クラスのメソッドを呼び出すことができます。 実際の処理は modules の各要素の prepend_features を後ろから順に

  • [Ruby]他のクラスを拡張するいろんな方法 - Qiita

    Rubyで他のクラスを拡張したい場合 いろんな言語で既存のクラスを機能拡張することはあると思いますが、Rubyでももちろん存在します。 ですが、Rubyの場合比較的自由度が高いのでいろんな方法で拡張できます。 昔からある方法を使うのもいいですが、Ruby2以降で入った機能なども考慮するとなかなかパターンが合ったので自分用に整理したかったのと、きっと他の方法もあるんだろうとおもってそういうのがあれば是非教えてもらいたくて記事を書こうと思いました。 そもそもいい、わるいは別として同じ結果を取得する方式でもいろいろあって面白いのでそういう意味でも他の方の意見も聞きたいなぁと。 あと、それぞれの方法のメリット・デメリットなど一般的にいわれているものがあればそれも教えてほしいです。 さて、それでは今回拡張するクラスです。 拡張対象のクラス class C1 def m(act, *arg) case

    [Ruby]他のクラスを拡張するいろんな方法 - Qiita
  • 1