[#33716] Re: set_path_for_r — "HAYAMA_Kaoru" <iyamatta.hayama@...>
はじめまして、葉山と申します。
[#33732] 文字列の式展開について — Masao Mutoh <mutoh@...>
むとうです。
むとうです。
たけ(tk)です。
むとうです。
たけ(tk)です。
たけ(tk)です。
[#33736] Redefinition of builtin class — Shin-ichiro HARA <sinara@...>
原です。
まつもと ゆきひろです
[#33740] Net::SMTP.start の引数 — URA Takefumi <hage@...>
浦です。
[#33762] WebDAV client — HIDAKA Takahiro <cv8t-hdk@...>
ひだかです。
こんにちは、サイトウという者です。
[#33785] NET:HTTP get2 のエラー回避 — Takashi Hoshizawa <t_hoshizawa@...>
星澤といいます。
[#33793] 右辺の値なしでも実行可能? — "井上 浩一" <kyoui32@...>
井上です。
早瀬@大阪大学基礎工学部情報科学科 です。
まつもと ゆきひろです
早瀬@阪大です。
In article <20020211224442.48d0e668.hayase@hcn.zaq.ne.jp>,
なかだです。
> > > あえて宣言文の途中で、代入前に変数の値を使った場合にエラーを出そうと思うと、
高橋征義です。
るびべん です:
At Tue, 12 Feb 2002 13:27:58 +0900,
Takaaki Tateishi <ttate@kt.jaist.ac.jp> wrote:
[#33795] Re: 右辺の値なしでも実行可能? — "井上 浩一" <kyoui32@...>
井上です。
At Fri, 8 Feb 2002 12:21:53 +0900,
[#33802] Re: 右辺の値なしでも実行可能? — "井上 浩一" <kyoui32@...>
井上です。
[#33807] Re: 右辺の値なしでも実行可能? — "井上 浩一" <kyoui32@...>
井上です。
jihg です。新入りです。
In article <000001c1b0c1$04eca980$b7d08bcb@soteccomputer>,
> Pseudo-Simplicity(擬似単純性)
Hiromasa KONISHIです。
jihg です。里谷がメダル取れたのはうれしい。開幕前の扱い悪かったから。明
坂野 正明と申します。
At Tue, 12 Feb 2002 19:14:03 +0900,
坂野 正明です。
At Wed, 13 Feb 2002 02:14:39 +0900,
[#33846] quickml サーバ — Satoru Takabayashi <satoru@...>
高林と申します
るびべん です:
まつもと ゆきひろです
るびべん です:
るびべん です:
こんにちは。鈴木教郎です。
[#33848] xxとして出し入れするメソッドの名前は? — Take_tk <ggb03124@...>
Apollo の話で恐縮なのですが、
[#33889] Ruby スクリプトサーバ + アプリと Apache+CGI アプリ — "井上 浩一" <kyoui32@...>
井上です。
[#33893] Re: Ruby スクリプトサーバ + アプリと Apache+CGI アプリ — "井上 浩一" <kyoui32@...>
井上です。
[#33906] Re: Ruby スクリプトサーバ + アプリと Apache+CGI アプリ — "井上 浩一" <kyoui32@...>
井上です。
[#33915] Re: Ruby スクリプトサーバ + アプリと Apache+CGI アプリ — "井上 浩一" <kyoui32@...>
井上です。
[#33926] 破壊的な代入について — Himuro UTO <himuro-uto@...>
ひむろ と申します。
[#33959] Re: Ruby スクリプトサーバ + アプリと Apache+CGI アプリ — "井上 浩一" <kyoui32@...>
井上です。
[#33962] Re: Ruby スクリプトサーバ + アプリと Apache+CGI アプリ — "井上 浩一" <kyoui32@...>
井上です。
[#33964] pdflib-0.7 PDF クラスの継承について — "Makoto Matsukawa" <racer-m@...>
初めて投稿します松川と申します。Rubyは初心者で
[#33966] 「たまてばこ」開発版が SecurityE rror — dellin <dellin@...>
dellinといいます。
なかだです。
西山和広です。
なかだです。
まつもと ゆきひろです
なかだです。
[#33988] FileTest.exist?("") の値の UNIX と Windows との違い — Akira Suzuki <a-suzuki@...>
鈴木です。
なかだです。
In article <200202210337.g1L3b0726778@sharui.nakada.kanuma.tochigi.jp>,
[#33994] Shell#expand_path に ~ の入ったパスを渡したとき — Hiroshi Saito <HiroshiSaito@...>
サイトウという者です。
[#33997] JOLT award — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#34006] for_fd したソケットの close — HIRATA Naoto <hirata-naoto@...>
平田といいます.
まつもと ゆきひろです
[#34015] 現在使用中の ruby.dll のパスは分かりますか?。 — Take_tk <ggb03124@...>
起動されたスクリプトの中から、そのスクリプトで使用中の ruby.dll のパスを
[#34021] localized document — HIDAKA Takahiro <cv8t-hdk@...>
ひだか%おもいきり現実逃避中です。
須賀です。
ひだかです。まとめて返事を書いてしまいます。
高橋征義です。
[#34030] Ruby Gem Box — Noritsugu Nakamura <nnakamur@...>
[#34053] 漢数字 -> 数 — TOYOFUKU Chikanobu <toyofuku@...>
豊福です。
豊福です。
# 本題と関係ありません。
池田と申します。
[#34056] ruby-dev summary — TAKAHASHI Masayoshi <maki@...>
高橋征義です。
たけ(tk)です。
まつもと ゆきひろです
[#34087] already initialized constant — 島田喜郎 <shimada@...>
島田喜郎と申します。教えてください。
[#34107] File#pos とファイルへの書き込み位置との整合性 — 堀川 久 <vzw00011@...>
こんにちは。
In article <3c7c7245.7413%vzw00011@nifty.ne.jp>,
[#34127] singleton class and anonymous class — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[ruby-list:33921] RE: arguments for def [Re: 右辺の値なしでも実行可能? ]
jihg です。
From: Masaaki Sakano [mailto:mas@star.le.ac.uk]
Subject: [ruby-list:33853] arguments for def [Re: 右辺の値なしでも実行可
能? ]
>坂野 正明と申します。
...
>Ruby の def 文においては、引数の受渡しは、多重代入と大体同じ
>(違いは引数の数のミスマッチに関する厳しさだけ?)だと思います。ですの
で、
>def文の中で、破壊的メソッドを使う時は要注意なんだと認識しています。
...
>何か、lint のようなことで検出できれば、言うことないかな、と思います。
># しかし何が破壊的メソッドかの完全な判別は原理的に不可能に近い?
>いかがでしょうか?
lint がどういうものか知らない。tlint は Redhat に入ってた。ガイドで勉強
してみるつもり。
それはさておき、簡単に作ってみた。ろくに試してない。無いよりはましってこ
とで。(無いほうがましってこともあるが...)
先を越されたか?
+----------------- 説明
=begin
=機能
引数を破壊する操作を警告する。感度が高い。
=対象
組み込みクラス String ,Array ,Hash の破壊的メソッド。
自作クラスの破壊的メソッドには対応していない。
※課題。
=制約
関数定義は、def と end のインデントがバイト単位で同一でなければならな
い。
def foo(arg)
end # 無視される
arg << "break!" # 警告
次のような形式は許されない。
def foo(arg); ... ;end
def 〜 end を入れ子にすることは出来ない。
def foo(arg)
arg << "break!" # 警告
eval <<EOS
def bar # ここから変わってしまう
end # ここで終わり
EOS
arg << "break!" # 警告されない
ebd
def 〜 end 内に、バイト単位で同一のインデントを持つ end を置くことは出来
ない。
def foo(arg)
if flag
true
end # ここを def の終わりと認識する。
arg << "break!" # 警告されない
end
def 〜 end の構文および対関係が適正でなければならない。
def foo(arg # 閉じ括弧がない
end
Def foo(arg) # Def は間違い
end
def foo(arg) # end が存在しない
=参考文献
「Ruby プログラミング入門」
原信一郎 著,まつもとゆきひろ 監修,オーム社
=end
+----------------- 本体
=begin
=挙動サンプル。
class hoge
def method(a ,b ,c = default)
c << "break!"
(c << "break!")
a<<"break!"
a+b<<"break!"
a += "break!"
a.chomp!
a.replace("break!")
a.push
a.pop
a.shift
a.unshift
a.concat(b)
a.clear
a.fill("break!")
a.store(b,c)
a[b]=c
a.delete("hash")
a.delete_if{}
a.update(b)
#
@a << "break!"
na << "break!"
a+nb<<"break!"
na += "break!"
na.chomp!
na.replace("break!")
na.push
na.pop
na.shift
na.unshift
na.concat(b)
na.clear
na.fill("break!")
na.store(b,c)
na[b]=c
na.delete("hash")
na.delete_if{}
na.update(b)
end
def method(aa)
eval("aa << \"break!\"")
#
eval("a << \"break!\"")
end
end
def func(ab)
eval <<EOS
ab << "break!"
EOS
end
def func(ac)
#
eval("ac " + "<< \"break!\"")
end
def foo
a << "break!"
.shift
end
a << "break!"
=end
flnm = ARGV.shift
open(flnm ,"r") do |flh|
row = 1
count = 0
re = nil
reEnd = nil
while line = flh.gets
line.scan(/(?:^|\s+|;)def\s+.+?\((.*?)\)/i) do |s|
sRE = (s[0].split(/\s*,\s*/)).each do |ss|
ss.gsub!(/(.+?)\s*(?:$|=.*)/){ $1 }
end.join("|")
re = /[^\w@](#{sRE})
(?:
(?:
\.
(?:
(?:\w+!|replace)
|(?:push|unshift|pop|shift|concat|clear|fill)
|(?:store|delete(?:_if)?|update)
)
\b
)
|(?:\s*(?:<<|\+=))
|(?:\[.+?\]\s*=\s*)
)
/x
sREEnd = line.scan(/\s*/)[0]
reEnd = /^#{sREEnd}end\b"/
end
unless re.nil?
line.scan(re) do |sArg|
print "warning : #{flnm}(#{row})---" +
" 引数 #{sArg} に対し破壊的な操作をしています。" +
"'#{line.scan(/(.*?)(?:\r\n|\r|\n)/)}'\n"
count += 1
end
re = nil if reEnd =~ line
end
row += 1
end
print "(#{count})count."
end
#Version 2002.2.13