2009年06月03日 ERBの実行時に出てくるbindingって何者? RailsのViewのテンプレートでも馴染みの深い ERB。 テンプレートの文字列を引数にとってnewして作成したインスタンスに対して、resultメソッドを実行すると文字列を置換した結果が返ってくる。 require 'erb' str = "hello" erb = ERB.new("<%= str %>") puts erb.result(binding) このresultというメソッドでは引数として、コード中では宣言したこともない binding というものを渡している。 今までは決まり文句のようなものだと思うことにして丸ごとコピペして使っていたのだけど、いつも「引数に入るあれは何ていうやつだっけ?」と忘れてしまい、どうにも効率が悪い。 そこで調べてみたのだが意外と情報がない。eval と関連があるとか、TO
Binding#local_variable_set(symbol, obj) (18114.0) 2.4.0 2.5.0 2.6.0 2.7.0 3.0 3.1 3.2 3.3 3.4 インスタンスメソッド ...。 def foo a = 1 bind = binding bind.local_variable_set(:a, 2) # set existing local variable `a' bind.local_variable_set(:b, 3) # create new local variable `b' # `b' exists only in binding p bind.local_variable_get(:a) # => 2... ...p b # => NameError end このメソッドは以下のコード(ただし、obj が Ruby のコードで出力され
Objects of class Binding encapsulate the execution context at some particular place in the code and retain this context for future use. The variables, methods, value of self, and possibly an iterator block that can be accessed in this context are all retained. Binding objects can be created using Kernel#binding, and are made available to the callback of Kernel#set_trace_func. These binding objects
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く