[#39699] デーモン・プロセスの作り方 — "Mitsuyasu Ichimura" <mitsuyasu@...>
こんにちは、市村と申します。
27 messages
2004/06/01
[#39702] Re: デーモン・プロセスの作り方
— Hidetoshi NAGAI <nagai@...>
2004/06/01
永井@知能.九工大です.
[#39710] Re: デーモン・プロセスの作り方
— Masayoshi Takahashi <maki@...>
2004/06/01
高橋征義です。宣伝モードです(_o_)
[#39711] Re: デーモン・プロセスの作り方
— nobu.nakada@...
2004/06/01
なかだです。
[#39721] Re: デーモン・プロセスの作り方
— Masayoshi Takahashi <maki@...>
2004/06/02
高橋征義です。
[#39725] Re: デーモン・プロセスの作り方
— OHARA Shigeki <os@...>
2004/06/03
大原です。
[#39732] Re: デーモン・プロセスの作り方
— Masayoshi Takahashi <maki@...>
2004/06/03
高橋征義です。
[#39757] MacのIEだとcgi.rbのmultipartがおかしいときがある — "fuji@..." <fuji@...>
藤岡と言います。
9 messages
2004/06/15
[#39758] Re: MacのIEだとcgi.rbのmultipartがおかしいときがある
— Wataru Gotoh <gotow@...>
2004/06/15
後藤@北の方といいます。
[#39768] cygwin版 ruby1.8でPStore使用時のエラー — ikezawa@... (ikezawa)
池澤と申します。
5 messages
2004/06/19
[#39775] Hiki の脆弱性に関する注意喚起 — Kazuhiko <kazuhiko@...>
かずひこです。
7 messages
2004/06/20
[#39777] Re: Hiki の脆弱性に関する注意喚起
— SASADA Koichi <ko1@...>
2004/06/21
Kazuhiko <kazuhiko@fdiary.net> wrote :
[ruby-list:39788] Re: SimpleDiff
From:
Hiroyuki KUROSAKI <noir@...>
Date:
2004-06-23 14:02:23 UTC
List:
ruby-list #39788
黒崎です。野分さん、ありがとうございます。
On Wed, 23 Jun 2004 02:59:03 +0900, in message
"[ruby-list:39784] Re: SimpleDiff"
<20040623022059.FADD.NOWAKE@fiercewinds.net>
Nowake <nowake@fiercewinds.net> wrote...
> 差分データをいじくりたい場合は、DefaultResultCreatorから派生したクラスを作
> 成し、必要な挙動を定義したあと、Diffを実行するときにポリシークラス(モド
> キ……Modern C++ Design ですね)としてメソッドに指定します。
CVSのほうをダウンロードしてみて、なんとなくわかりました。
こんな感じで使えばよいのでしょうか。
メソッド名が patch でよかったのか自信がないですが…。
--
require 'simple-diff'
module Algorithm
module SimpleDiff
class HtmlResultCreator < DefaultResultCreator
def self.tokenize(data)
data.scan(/\W+|\w+/)
end
def self.create(diff)
HtmlResult.new(create_diff_data(diff))
end
protected
class HtmlResult < OriginalBaseResult
EDIT_TAGS = { 1 => 'del', 2 => 'ins' }
def patch(original)
orig = HtmlResultCreator.tokenize(original)
r = []
i = 0
j = 0
while i < orig.size
if j < @data.size && @data[j][0] == i then
EDIT_TAGS.each do |k, tag|
if @data[j][k].size > 0 then
r.push('<' + tag + '>')
r.concat(@data[j][k])
r.push('</' + tag + '>')
end
end
i += @data[j][1].size
j += 1
else
r.push(orig[i])
i += 1
end
end
if j < @data.size then
r.push('<ins>')
r.concat(@data[j][2])
r.push('</ins>')
end
r.join
end
end
end
end
end
a = "How are you."
b = "How do you do."
result = Algorithm::SimpleDiff::Diff.new(a, b, Algorithm::SimpleDiff::HtmlResultCreator).result
puts result.patch(a)
--
結果:
How <del>are</del><ins>do</ins> you<ins> do</ins>.
--
Hiroyuki KUROSAKI
<noir@st.rim.or.jp>