[#9950] [PATCH] merge 1.5 change into 1.4.4 — Katsuyuki Komatsu <komatsu@...>
小松です。
10 messages
2000/06/01
[#9954] Re: [PATCH] merge 1.5 change into 1.4.4
— matz@... (Yukihiro Matsumoto)
2000/06/02
まつもと ゆきひろです
[#9955] Re: [PATCH] merge 1.5 change into 1.4.4
— nagai@...
2000/06/02
永井@知能.九工大です.
[#9980] Array#index(val) vs. Array#value(idx) — Hideto ISHIBASHI <hideto-i@...4u.or.jp>
石橋"rubyholic"秀仁です。
4 messages
2000/06/07
[#9986] % in C — gotoken@... (GOTO Kentaro)
ごとけんです
6 messages
2000/06/08
[#9990] Generational GC — Masato KIYAMA <masato@...>
まさとです.
6 messages
2000/06/09
[#10006] Re: File Utilities — WATANABE Hirofumi <eban@...>
わたなべです.
7 messages
2000/06/10
[#10007] Re: [ruby-talk:03267] Re: mod_ruby error? — Wakou Aoyama <wakou@...>
青山です。
31 messages
2000/06/11
[#10008] Re: [ruby-talk:03267] Re: mod_ruby error?
— Wakou Aoyama <wakou@...>
2000/06/11
青山です。
[#10018] Re: [ruby-talk:03267] Re: mod_ruby error?
— Shugo Maeda <shugo@...>
2000/06/13
前田です。
[#10027] Re: [ruby-talk:03267] Re: mod_ruby error?
— Wakou Aoyama <wakou@...>
2000/06/13
青山です。
[#10028] Re: [ruby-talk:03267] Re: mod_ruby error?
— Wakou Aoyama <wakou@...>
2000/06/13
青山です。
[#10029] Re: [ruby-talk:03267] Re: mod_ruby error?
— Shugo Maeda <shugo@...>
2000/06/13
前田です。
[#10035] Re: [ruby-talk:03267] Re: mod_ruby error?
— Wakou Aoyama <wakou@...>
2000/06/13
青山です。
[#10038] Re: [ruby-talk:03267] Re: mod_ruby error?
— Shugo Maeda <shugo@...>
2000/06/14
前田です。
[#10041] Re: [ruby-talk:03267] Re: mod_ruby error?
— Wakou Aoyama <wakou@...>
2000/06/14
青山です。
[#10045] Re: [ruby-talk:03267] Re: mod_ruby error?
— Wakou Aoyama <wakou@...>
2000/06/14
青山です。
[#10046] Re: [ruby-talk:03267] Re: mod_ruby error?
— Wakou Aoyama <wakou@...>
2000/06/14
青山です。
[#10047] Re: [ruby-talk:03267] Re: mod_ruby error?
— Wakou Aoyama <wakou@...>
2000/06/14
青山です。
[#10048] Re: [ruby-talk:03267] Re: mod_ruby error?
— Wakou Aoyama <wakou@...>
2000/06/14
青山です。
[#10049] Re: mod_ruby error?
— Shugo Maeda <shugo@...>
2000/06/14
前田です。
[#10053] Re: mod_ruby error?
— Wakou Aoyama <wakou@...>
2000/06/15
青山です。
[#10062] Re: mod_ruby error?
— Shugo Maeda <shugo@...>
2000/06/16
前田@出張中です。
[#10063] Re: mod_ruby error?
— Wakou Aoyama <wakou@...>
2000/06/16
青山です。
[#10106] Re: mod_ruby error?
— Shugo Maeda <shugo@...>
2000/06/22
前田です。
[#10144] Re: mod_ruby error?
— Wakou Aoyama <wakou@...>
2000/06/27
青山です。
[#10147] Re: mod_ruby error?
— matz@... (Yukihiro Matsumoto)
2000/06/27
まつもと ゆきひろです
[#10152] Re: mod_ruby error?
— Wakou Aoyama <wakou@...>
2000/06/29
青山です。
[#10019] NT build problem — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
9 messages
2000/06/13
[#10032] compile error on cygwin — "Nobuyoshi.Nakada" <nobu.nakada@...>
なかだです。
4 messages
2000/06/13
[#10050] sleep on Solaris — とみたまさひろ <tommy@...>
とみたです。
5 messages
2000/06/15
[#10069] File::Stat#inspect — Koji Arai <JCA02266@...>
新井です。
7 messages
2000/06/16
[#10081] [PATCH] module === string.extend(module).dup — nobu.nakada@...
なかだです。
9 messages
2000/06/18
[#10083] Re: [PATCH] module === string.extend(module).dup
— matz@... (Yukihiro Matsumoto)
2000/06/18
まつもと ゆきひろです
[#10085] Re: [PATCH] module === string.extend(module).dup
— nobu.nakada@...
2000/06/18
なかだです。
[#10096] Re: [PATCH] module === string.extend(module).dup
— matz@... (Yukihiro Matsumoto)
2000/06/20
まつもと ゆきひろです
[#10097] Re: [PATCH] module === string.extend(module).dup
— nobu.nakada@...
2000/06/20
なかだです。
[#10109] bit fix for net/protocol.rb — Toshiro Kuwabara <toshirok@...3.so-net.ne.jp>
Toshです。
10 messages
2000/06/22
[#10110] Re: bit fix for net/protocol.rb
— "Kikutani, Makoto" <kikutani@...>
2000/06/22
日時 Fri, 23 Jun 2000 02:16:31 +0900 の
[#10125] configure.in — Tadayoshi Funaba <tadf@...>
ふなばです。
14 messages
2000/06/26
[#10126] Re: configure.in
— WATANABE Hirofumi <eban@...>
2000/06/27
わたなべです.
[#10129] Re: configure.in
— Katsuyuki Komatsu <komatsu@...>
2000/06/27
小松です。
[#10135] don't use mktemp() — Shugo Maeda <shugo@...>
前田です。
35 messages
2000/06/27
[#10136] Re: don't use mktemp()
— matz@... (Yukihiro Matsumoto)
2000/06/27
まつもと ゆきひろです
[#10137] Re: don't use mktemp()
— Shugo Maeda <shugo@...>
2000/06/27
前田です。
[#10141] Re: don't use mktemp()
— kjana@... (YANAGAWA Kazuhisa)
2000/06/27
In message <874s6f1rqj.wl@studly.netlab.co.jp>
[#10143] Re: don't use mktemp()
— WATANABE Hirofumi <eban@...>
2000/06/27
わたなべです.
[#10181] Re: don't use mktemp()
— Katsuyuki Komatsu <komatsu@...>
2000/07/03
小松です。
[#10183] Re: don't use mktemp()
— WATANABE Hirofumi <eban@...>
2000/07/03
わたなべです.
[#10188] Re: don't use mktemp()
— KIMURA Koichi <kimura@...>
2000/07/04
[#10189] Re: don't use mktemp()
— "Nobuyoshi.Nakada" <nobu.nakada@...>
2000/07/04
なかだです。
[#10190] Re: don't use mktemp()
— matz@... (Yukihiro Matsumoto)
2000/07/04
まつもと ゆきひろです
[#10145] Re: [ruby-list:23495] Re: Ruby 1.4.5 — Wakou Aoyama <wakou@...>
青山です。
4 messages
2000/06/27
[ruby-dev:10084] Re: text/tabs.rb
From:
Wakou Aoyama <wakou@...>
Date:
2000-06-18 22:02:18 UTC
List:
ruby-dev #10084
青山です。
On Sun, 18 Jun 2000 13:14:16 +0900,
kjana@os.xaxon.ne.jp (YANAGAWA Kazuhisa) wrote:
> def expand!(tw = 8)
> true while sub!(/(^|\n)([^\t\n]*)\t/) { $1+$2+" "*(tw-$2.size%tw) }
> end
>
> なんてのを多用してましたが,これは等価でしょうかね? どっちが効率いいの
> かわからないけど.
改行を含んだ文字列にも対応している、連続しているタブも1つ1つ展開して
いくという以外は、基本的に同じでしょうか。で、このような正規表現での複
数行対応も試してみたのですが、どうも、| のあたりがネックなのか、この書
き方だと遅くなるようなんですよね。
each_line, collect の方がずっと高速なので、そちらを使って複数行に対応
させた物を付けます。速度的には、上のタイプを expand.rb とすると、こん
な感じです。
$ time ruby expand.rb unexp > rexp1
real 0m2.885s user 0m2.870s sys 0m0.010s
$ time ruby -r text/tabs -e'print Text::Tabs::expand(ARGF.read)' unexp > rexp2
real 0m0.121s user 0m0.100s sys 0m0.020s
=begin
== EXPAND AND UNEXPAND TABS LIBRARY
text/tabs.rb
Version 0.2.0
Wakou Aoyama <wakou@fsinet.or.jp>
== EXAMPLE
require "text/tabs"
string_without_tabs = Text::Tabs::expand(string_with_tabs)
string_with_tabs = Text::Tabs::unexpand(string_without_tabs)
tabstop = 2
string_without_tabs = Text::Tabs::expand(string_with_tabs, tabstop)
string_with_tabs = Text::Tabs::unexpand(string_without_tabs, tabtsop)
=end
module Text
module Tabs
def Tabs::expand(string, tab_stop = 8)
string.collect() do |line|
cursor = 0
line.gsub(/([^\t]*)(\t+)/) do
cursor += Regexp::last_match[1].length
add_space = Regexp::last_match[2].length * tab_stop
add_space -= (cursor + add_space) % tab_stop
cursor += add_space
Regexp::last_match[1] + " " * add_space
end
end.join()
end
def Tabs::unexpand(string, tab_stop = 8)
string.collect() do |line|
Tabs::expand(line).gsub(/.{#{tab_stop}}/on) do |match|
match.sub(/ +\z/, "\t")
end
end.join()
end
end
end
=begin
== HISTORY
* Sun Jun 18 23:31:44 JST 2000 - wakou
* version 0.2.0
* support for multiline string.
* 2000/06/18 03:20:45 - wakou
* Text::Tabs::unexpand(): don't convert a single spece.
* 2000/06/18 00:06:20 - wakou
* version 0.1.0 rerelease.
* simple support for multibyte code.
* 2000/06/17 23:19:20 - wakou
* version 0.1.0
* first release.
$Date: 2000/06/18 14:37:30 $
=end
--
青山 和光 Wakou Aoyama <wakou@fsinet.or.jp>