タグ

Rubyとtiltに関するwakuworksのブックマーク (1)

  • TiltとUnboundMethod#bind - やゆぐ

    テンプレートエンジンを抽象化するライブラリTiltではオブジェクトを渡すとそのスコープが取得できます. これはRuby的にはすごく謎でそんな方法あったっけ? とTiltのソースを読んだら戦慄しました. UnboundMethod#bind(obj) というクラスとメソッドがある 例えば s = Numeric.instance_method(:to_s) で「Numeric#to_s」というUnboundMethodのインスタンスを取り出すことができ,s.bind(1) でNumeric(を継承したInteger)のインスタンスである「a」にsをbindできる. s = Numeric.instance_method(:to_s) s.bind(1).call #=> "#<Fixnum:0x00000000000003>" 1.to_s #=> "1" と通常のto_sと異なる値が返って

  • 1