diary.sorah.jp

じゅうにがつここのか: "ちょっと早い xmas party"

会社の方で「ちょっと早いクリスマスパーティ」があった。コンテンツ業を全うしました。 こっそり後ろに出現したので後ろ姿で勘違いされたりして面白かったですね。

他に提案されていたコンテンツ化アイデアよりぜんぜんましなので当日じゃなくてその前に声をかけてほしかったものだけど。


さむいね。


local_variable_get, お前はなんのためにある?

Binding#local_variable_get は元々以下のようなユースケースを想定しているはず。

# Ruby 2.0.0
def foo(if: nil)
  p if # SyntaxError
end

# Ruby 2.1.0
def foo(if: nil)
  p binding.local_variable_get(:if)
end

foo :bar #=> :bar

どういう事かというと、Ruby 2.0.0 で導入されたキーワード引数のキーには予約語 (if, unless など) が使えるけど、ローカル変数 if なんてものが定義されても予約語と被るから読めない! どうしよう! という問題への解決策。

Rails とかであるよね。 ActiveModel::Validations::ClassMethods#validates:if option とか。

という問題を相談していた時におもいつきで発言したら採用されたのだった。けど、わたしだったっけ。記憶が曖昧だ…

Backfilled at , Published at