[#5809] mod_ruby-0.0.7 — Shugo Maeda <shugo@...>
前田です。
前田です。
moochan です.
青山です。
前田です。
moochan です.
前田です。
moochan です.
moochan です.
まつもと ゆきひろです
わたなべです.
前田です。
青山です。
前田です。
moochan です.
福間@福岡 です。
moochan です.
まつもと ゆきひろです
[#5895] [REQ] 中置の def — EGUCHI Osamu <eguchi@...>
えぐち@エスアンドイーです。
えぐち@エスアンドイー です。
In message <19990303103731R.eguchi@shizuokanet.ne.jp>
[#5965] Re: Precision in Mathematica (Re: Bigfloat) — keiju@... (石塚圭樹 )
けいじゅ@日本ラショナルソフトウェアです.
ごとけん
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
まつもと ゆきひろです
えぐち@エスアンドイー です。
けいじゅ@日本ラショナルソフトウェアです.
えぐち@エスアンドイー です。
けいじゅ@日本ラショナルソフトウェアです.
えぐち@エスアンドイー です。
けいじゅ@日本ラショナルソフトウェアです.
えぐち@エスアンドイー です。
えぐち@エスアンドイー%徳山出張中 です。
[#5970] [REQ] variable of regex — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
青山です。
前田です。
まつもと ゆきひろです
青山です。
まつもと ゆきひろです
[#6009] Re: [REQ] 中置の def — "Takehiko Ueki" <takehiko@...>
ども、植木です。
まつもと ゆきひろです
[#6059] [PATCH] str_index — IKARASHI Akira <ikarashi@...>
五十嵐です。
[#6090] Thread#kill — Shugo Maeda <shugo@...>
前田です。
前田です。
前田です。
[#6141] Retry of mod_ruby — moochan <moochan@...>
moochan です.
moochan です.
[#6213] Ruby 1.3.1-990311 — Yukihiro Matsumoto <matz@...>
Ruby 1.3.1-990311 is out, check out:
[#6229] exception re-raise in Thread#join — Shugo Maeda <shugo@...>
前田です。
[#6237] [REQ] p -10 == p(-10) — Koji Arai <JCA02266@...>
新井です。
[#6242] "a\n".gsub(/$/, '-') — Wakou Aoyama <wakou@...>
青山です。
[#6259] str += — WATANABE Tetsuya <tetsu@...>
渡辺哲也です。
[#6276] Re: [ruby-list:12784] String#index, String#unpack — IKARASHI Akira <ikarashi@...>
五十嵐です。
[#6288] [REQ] interh.h — Shugo Maeda <shugo@...>
前田です。
[#6328] Re: Ruby 1.3.1-990315 — WATANABE Hirofumi <watanabe@...>
わたなべです.
まつもと ゆきひろです
青山です。
まつもと ゆきひろです
青山です。
まつもと ゆきひろです
青山です。
まつもと ゆきひろです
まつもと ゆきひろです
まつもと ゆきひろです
青山です。
まつもと ゆきひろです
青山です。
まつもと ゆきひろです
新井です。
新井です。
青山です。
新井です。
青山です。
[#6334] Re: Ruby 1.3.1-990315 — Koji Arai <JCA02266@...>
新井です。
まつもと ゆきひろです
新井です。
新井です。
藤本です、こんにちは。
[#6356] [PATCH] ext/extmk.rb — WATANABE Hirofumi <watanabe@...>
わたなべです.
[#6426] wrong line number — Koji Arai <JCA02266@...>
以下のスクリプトが出力する行番号がおかしいです。
[#6434] Time#+ — Koji Arai <JCA02266@...>
新井です。
まつもと ゆきひろです
五十嵐です。
[#6446] sub("string", "string") — Wakou Aoyama <wakou@...>
青山です。
まつもと ゆきひろです
[#6491] about cur_mid — ttate@...
立石です。
[ruby-dev:6162] Re: eRuby (Re: htmlelem.rb)
咳といいます。
From: matz@netlab.co.jp (Yukihiro Matsumoto)
> あ,私の頭の中にあったのとの違いは以下の3点だけですね.
>
> * <% ... %>中にprintがあれば,それも一緒に出力される
>
> つまり一度文字列に変換し,出力するのではなく,逐次出力す
> るイメージ
この項目がいまいちよくわかりませんでした。これであってるのなぁ。
とりあえず、作ってみました。
単体で起動したときは標準入力から eRuby スクリプトを読んで
Ruby スクリプトを出力します。
ヒアドキュメント中の文字列ってなにかエスケープしておかないと
だめだと思うんですがそのままにしてあります。
そうそう
ヒアドキュメントだと eval できないんですね。
ところで、これって実際にはどのように使うのですか?
ファイルに一旦出力して手で再編集して使うのかなぁ?
-----
#!/usr/local/bin/ruby
# $Id: erb.rb,v 1.7 1999/03/09 14:39:09 mas Exp $
# $Author: mas $
# Copyright (c) 1999 Masatoshi SEKI
require 'enumre.rb' # http://www2a.biglobe.ne.jp/%7Eseki/ruby/enumre.rb
class ERb
def pre_compile(s)
list = []
s.each_line do |line|
line.gsub!(/(<%#)|(<%=)|(<% )|( %>)/) do |m|
"\n#{m}\n"
end
list += line.split("\n")
list.push("\n")
end
# list からコメントを取り除く
list = @comment.gsub(list) { nil }
# print に置換
list = @print.gsub(list) {
v = @print.matching_data[1].join
['<% ', "print #{v}", ' %>']
}
end
module_function :pre_compile
private :pre_compile
def compile(s)
cmdlist = []
str_table = []
list = pre_compile(s)
list = @compile.gsub(list) {
match = @compile.matching_data
str = match[0].join
cmd = match[2].join
if str.size > 0
cmdlist.push("print <<END_OF_ERB\n#{str}\nEND_OF_ERB")
end
cmdlist.push(cmd)
nil
}
str = list.join
if str.size > 0
cmdlist.push("print <<END_OF_ERB\n#{str}\nEND_OF_ERB")
end
cmdlist.join("\n")
end
module_function :compile
private :compile
def setup_compiler
stag = REEq.new('<% ')
etag = REEq.new(' %>')
commenttag = REEq.new('<%#')
printtag = REEq.new('<%=')
any = REAny.new.repeat(0,-1).greedy(false)
@comment = RE.new([commenttag, any, etag])
@print = RE.new([printtag, any, etag])
@compile = RE.new([any, stag, any, etag])
end
module_function :setup_compiler
private :setup_compiler
def initialize(str)
@src = ERb.compile(str)
end
attr :src
setup_compiler
end
if __FILE__ == $0
str = $stdin.read
puts ERb.new(str).src
end