27 May '13, 5am

“Rubyist Magazine 0022号 - RubyKaigi2007: C より速い Ruby プログラム:”

### プログラム class MyEruby1 ... def convert(eruby_str) s = '_buf = ""; ' kind = :text {{*eruby_str.each_line do |line|*}} # 1行ずつに分解 {{*line.scan(/(.*?)(<%=?|%>)/) do*}} # '<%' と '<%=' と '%>' を探す str = $1 # テキストまたは埋め込み文や式 s << _convert_str(str, kind) unless str.empty? case $2 when '<%' ; kind = :stmt # 埋め込み文 when '<%=' ; kind = :expr # 埋め込み式 when '%>' ; kind = :text # テキスト end end text = $' || line # 残りのテキスト s << _convert_str(text, kind) unless text.empty? end s << "_buf\n" return s end ... end

Full article: http://jp.rubyist.net/magazine/?0022-FasterThanC

Tweets

“Rubyist Magazine - Ruby でのバックトレース活用法”

jp.rubyist.net 22 May '13, 3pm

$ ruby ex1.rb ex1.rb:10:in `f3': undefined local variable or method `foobar' for main:Object (NameError) from ex1.rb:6:in ...