[#9052] bang method returns string always — WATANABE Hirofumi <eban@...>
わたなべです.
92 messages
2000/02/01
[#9053] Re: bang method returns string always
— matz@... (Yukihiro Matsumoto)
2000/02/01
まつもと ゆきひろです
[#9054] Re: bang method returns string always
— matz@... (Yukihiro Matsumoto)
2000/02/01
まつもと ゆきひろです
[#9060] Re: bang method returns string always
— WATANABE Hirofumi <eban@...>
2000/02/02
わたなべです.
[#9062] Re: bang method returns string always
— matz@... (Yukihiro Matsumoto)
2000/02/02
まつもと ゆきひろです
[#9070] Re: bang method returns string always
— Wakou Aoyama <wakou@...>
2000/02/03
青山です。
[#9072] Re: bang method returns string always
— matz@... (Yukihiro Matsumoto)
2000/02/04
まつもと ゆきひろです
[#9075] Re: bang method returns string always
— "NAKAMURA, Hiroshi" <nakahiro@...>
2000/02/04
なひです.
[#9082] Re: bang method returns string always
— "NAKAMURA, Hiroshi" <nakahiro@...>
2000/02/04
なひです.
[#9083] Re: bang method returns string always
— matz@... (Yukihiro Matsumoto)
2000/02/04
まつもと ゆきひろです
[#9259] ruby object
— Minero Aoki <aamine@...>
2000/02/20
あおきです。
[#9263] Re: ruby object
— matz@... (Yukihiro Matsumoto)
2000/02/21
まつもと ゆきひろです
[#9264] Re: ruby object
— Minero Aoki <aamine@...>
2000/02/21
あおきです。
[#9266] Re: ruby object
— matz@... (Yukihiro Matsumoto)
2000/02/22
まつもと ゆきひろです
[#9276] Re: ruby object
— Minero Aoki <aamine@...>
2000/02/23
あおきです。
[#9084] Re: bang method returns string always
— "NAKAMURA, Hiroshi" <nakahiro@...>
2000/02/04
なひです.
[#9096] Re: bang method returns string always
— Kazunori NISHI <kazunori@...>
2000/02/04
西@九大です。
[#9100] Re: bang method returns string always
— matz@... (Yukihiro Matsumoto)
2000/02/04
まつもと ゆきひろです
[#9110] Re: bang method returns string always
— nobu.nakada@...
2000/02/04
なかだです。
[#9130] Re: bang method returns string always
— Koji Arai <JCA02266@...>
2000/02/06
新井です。
[#9154] Re: bang method returns string always
— Kazunori NISHI <kazunori@...>
2000/02/08
西@九大です。
[#9158] Re: bang method returns string always
— matz@... (Yukihiro Matsumoto)
2000/02/08
まつもと ゆきひろです
[#9170] Re: bang method returns string always
— Kazunori NISHI <kazunori@...>
2000/02/09
西@九大です。
[#9171] Re: bang method returns string always
— matz@... (Yukihiro Matsumoto)
2000/02/09
まつもと ゆきひろです
[#9173] Re: bang method returns string always
— Koji Arai <JCA02266@...>
2000/02/09
新井です。
[#9206] Re: bang method returns string always
— nobu.nakada@...
2000/02/13
なかだです。
[#9207] Re: bang method returns string always
— "Akinori -Aki- MUSHA" <knu@...>
2000/02/13
knuです。
[#9208] Re: bang method returns string always
— nobu.nakada@...
2000/02/13
なかだです。
[#9211] Re: bang method returns string always
— matz@... (Yukihiro Matsumoto)
2000/02/13
まつもと ゆきひろです
[#9212] Re: bang method returns string always
— "Akinori -Aki- MUSHA" <knu@...>
2000/02/13
knuです。
[#9213] Re: bang method returns string always
— Kazuhiro Yoshida <moriq.kazuhiro@...>
2000/02/14
もりきゅうです。ゴミまき。
[#9214] Re: bang method returns string always
— gotoken@... (GOTO Kentaro)
2000/02/14
ごとけんです
[#9215] Re: bang method returns string always
— WATANABE Hirofumi <Hirofumi.Watanabe@...>
2000/02/14
わたなべです.
[#9218] Re: bang method returns string always
— Kazuhiro Yoshida <moriq.kazuhiro@...>
2000/02/15
もりきゅうです。
[#9219] Re: bang method returns string always
— matz@... (Yukihiro Matsumoto)
2000/02/15
まつもと ゆきひろです
[#9220] Re: bang method returns string always
— Kazuhiro Yoshida <moriq.kazuhiro@...>
2000/02/15
もりきゅうです。
[#9222] Re: bang method returns string always
— Koji Arai <JCA02266@...>
2000/02/15
新井です。
[#9224] Re: bang method returns string always
— matz@... (Yukihiro Matsumoto)
2000/02/15
まつもと ゆきひろです
[#9225] class variable (Re: bang method returns string always)
— Koji Arai <JCA02266@...>
2000/02/15
新井です。
[#9226] Re: class variable (Re: bang method returns string always)
— matz@... (Yukihiro Matsumoto)
2000/02/16
まつもと ゆきひろです
[#9232] Re: class variable (Re: bang method returns string always)
— Koji Arai <JCA02266@...>
2000/02/16
新井です。
[#9243] Re: class variable (Re: bang method returns string always)
— matz@... (Yukihiro Matsumoto)
2000/02/17
まつもと ゆきひろです
[#9063] argument to block for pipe_open() — nobu.nakada@...
なかだです。
5 messages
2000/02/02
[#9085] xmalloc() in Windows — "Shigeo Kobayashi" <shigeo@...>
小林です。
38 messages
2000/02/04
[#9111] Re: xmalloc() in Windows
— Katsuyuki Komatsu <komatsu@...>
2000/02/04
小松です。
[#9239] Re: RubyCRT.dll (Re: xmalloc() in Windows)
— "Shigeo Kobayashi" <shigeo@...>
2000/02/17
小林です。
[#9088] Re: xmalloc() in Windows
— WATANABE Hirofumi <Hirofumi.Watanabe@...>
2000/02/04
わたなべです.
[#9095] Re: ruby_lib/foo/bar and Foo::Bar (Re: ) — Minero Aoki <aamine@...>
あおきです。
9 messages
2000/02/04
[#9133] ruby-1.4.3 memory leak — Koji Oda <oda@...1.qnes.nec.co.jp>
小田@QNES です。
12 messages
2000/02/07
[#9136] Re: ruby-1.4.3 memory leak
— Katsuyuki Komatsu <komatsu@...>
2000/02/07
小松です。
[#9138] Re: ruby-1.4.3 memory leak
— Koji Oda <oda@...1.qnes.nec.co.jp>
2000/02/07
小田@QNES です。
[#9134] Re: site_ruby — gotoken@... (GOTO Kentaro)
ごとけんです
24 messages
2000/02/07
[#9135] Re: site_ruby
— WATANABE Hirofumi <Hirofumi.Watanabe@...>
2000/02/07
わたなべです.
[#9143] Re: site_ruby
— nobu.nakada@...
2000/02/07
なかだです。
[#9161] Re: site_ruby
— gotoken@... (GOTO Kentaro)
2000/02/08
In message "[ruby-dev:9143] Re: site_ruby"
[#9162] Re: site_ruby
— nobu.nakada@...
2000/02/09
At Wed, 9 Feb 2000 07:54:13 +0900,
[#9163] Re: site_ruby
— gotoken@... (GOTO Kentaro)
2000/02/09
ごとけんです
[#9168] Re: site_ruby
— nobu.nakada@...
2000/02/09
なかだです。
[#9188] Ruby 1.5.2 and irb — Katsuyuki Komatsu <komatsu@...>
小松です。
5 messages
2000/02/10
[#9245] ruby 1.5.2 (2000-02-17) — WATANABE Hirofumi <Hirofumi.Watanabe@...>
わたなべです.
5 messages
2000/02/17
[#9290] [fix] String#* with huge string — EGUCHI Osamu <eguchi@...>
えぐち@エスアンドイー です。
17 messages
2000/02/26
[#9293] Re: [fix] String#* with huge string
— matz@... (Yukihiro Matsumoto)
2000/02/26
まつもと ゆきひろです
[#9294] Re: [fix] String#* with huge string
— EGUCHI Osamu <eguchi@...>
2000/02/27
えぐち@エスアンドイー です。
[#9298] Re: [fix] String#* with huge string
— matz@... (Yukihiro Matsumoto)
2000/02/28
まつもと ゆきひろです
[#9307] Re: [fix] String#* with huge string
— EGUCHI Osamu <eguchi@...>
2000/02/28
えぐち@エスアンドイー です。
[#9309] Re: [fix] String#* with huge string
— matz@... (Yukihiro Matsumoto)
2000/02/29
まつもと ゆきひろです
[#9312] Re: [fix] String#* with huge string
— EGUCHI Osamu <eguchi@...>
2000/02/29
えぐち@エスアンドイー です。
[#9297] GC Problem ? — "Shigeo Kobayashi" <shigeo@...>
小林です。
23 messages
2000/02/27
[#9300] Re: GC Problem ?
— matz@... (Yukihiro Matsumoto)
2000/02/28
まつもと ゆきひろです
[#9323] 代入 — ta-ka-si@...
池田です
16 messages
2000/02/29
[#9325] Re: 代入
— WATANABE Hirofumi <eban@...>
2000/02/29
わたなべです.
[#9329] Re: 代入
— ta-ka-si@...
2000/03/01
In message "[ruby-dev:9325] Re: 代入"
[#9349] Re: 代入
— Koji Arai <JCA02266@...>
2000/03/02
新井です。
[ruby-dev:9070] Re: bang method returns string always
From:
Wakou Aoyama <wakou@...>
Date:
2000-02-03 21:46:47 UTC
List:
ruby-dev #9070
青山です。
On Thu, 3 Feb 2000 00:50:58 +0900,
matz@netlab.co.jp (Yukihiro Matsumoto) wrote:
> (1) tr!などは変化しないときnilを返すように戻す
> (2) 変化の有無が知りたいときはno bang methodを使い、
> original と比較する
(3) tr! などには(も)引数を増やして、nil (または、例外?)を返すようにも
できるようにする。s.tr!("abc", "ABC", true) とか。
元の文字列との比較というのは、場合によっては結構重くなりませんか?
そうで無いのならかまいませんが、重くなる可能性があるのならば、比較無し
に変化の有無を知る方法も欲しいです。
とりあえず shellwords.rb は、こんな感じでしょうか。パッチの方が長くなっ
てしまうので、そのまま。ArgError --> ArgumentError の修正と、Array#+=
--> Array#push, String#+= --> String#concat による高速化、そして、引数が
nil, false だった場合に '' を返していたのを、型チェックに変更して、
String 以外の場合は例外としてみました。
# shellwords.rb
# original is shellwords.pl
#
# Usage:
# require 'shellwords'
# words = Shellwords.shellwords(line)
#
# or
#
# require 'shellwords'
# include Shellwords
# words = shellwords(line)
module Shellwords
def shellwords(line)
unless line.kind_of?(String)
raise ArgumentError, "Argument must be String class object."
end
line.sub!(/^\s+/, '')
words = []
while line != ''
field = ''
while true
if line.sub!(/^"(([^"\\]|\\.)*)"/, '') && $& then #"
snippet = $1
snippet.gsub!(/\\(.)/, '\1')
elsif line =~ /^"/ then #"
raise ArgumentError, "Unmatched double quote: #{line}"
elsif line.sub!(/^'(([^'\\]|\\.)*)'/, '') && $& then #'
snippet = $1
snippet.gsub!(/\\(.)/, '\1')
elsif line =~ /^'/ then #'
raise ArgumentError, "Unmatched single quote: #{line}"
elsif line.sub!(/^\\(.)/, '') && $& then
snippet = $1
elsif line.sub!(/^([^\s\\'"]+)/, '') && $& then #'
snippet = $1
else
line.sub!(/^\s+/, '')
break
end
field.concat(snippet)
end
words.push(field)
end
words
end
module_function :shellwords
end
--
青山 和光 Wakou Aoyama <wakou@fsinet.or.jp>