メタプログラミング

メタプログラミングRubyを読んでいます(6)

読んだ範囲 「メタプログラミングRuby」の「4.6 ドメイン特化言語を書く」から「5.2.1 クイズの答え」まで読みました。 知ったこと 共有スコープ 共有スコープという概念を知りました。複数のメソッドが同一の変数を共有する技法です。 :arrow_down: 文章だ…

メタプログラミングRubyを読んでいます(5)

読んだ範囲 「メタプログラミングRuby」の「4.4.1 カプセル化の破壊」から「4.5.4 呼び出し可能オブジェクトのまとめ」まで読みました。 知ったこと コンテキスト探査機 コンテキスト探査機という用語を始めて知りました。instance_evalメソッドに渡したブロ…

メタプログラミングRubyを読んでいます(4)

読んだ範囲 「メタプログラミングRuby」の「3.3.3 動的プロキシ」から「4.3.4 クロージャのまとめ」まで読みました。 知ったこと ブロックを定義した時の束縛について(4.3 ブロックはクロージャー) ブロックを定義した時の束縛は、その時点での束縛を取得す…

メタプログラミングRubyを読んでいます(3)

読んだ範囲 「メタプログラミングRuby」の「2.4.3 Refinements」から「3.3.3 動的プロキシ」まで読みました。 主な内容は、メソッドを動的に定義する方法についてでした。 TIL Object#send を使用すると、メソッド名が引数となるので動的にメソッドを呼び出…

メタプログラミングRubyを読んでいます(2)

読んだ範囲 「メタプログラミングRuby」の「2.2.1 オブジェクトの中身」~「2.4.2 メソッドの実行」まで読みました。 TIL Classクラスのスーパクラスは、Moduleクラスです。また、Moduleクラスのスーパークラスは、Objectクラスです。 モジュールのインクルー…