1 :
デフォルトの名無しさん :
03/09/08 22:37
Matzはなぜかたくなにコンパイルのサポートを拒否するのですか?
のーみそがかたいからです。
Rubyはコンパイルしますが何か?
のーみそこねこねコンパイル
10 :
デフォルトの名無しさん :03/09/10 15:56
dbi の実行経過は each を使って res = dbi.execute("select * from foo") res.each { |r| p r['a'],r['b'] } なんて具合に次々と読み込みますが、 この each のブロックに渡す値を、変換したいときゃ class Wrap include Enumeration def initialize(res) @res = res end def each @res.each { |r| yield r } end end なんてクラスをわざわざかかにゃいかんのですか? もっと ラクに書ける方法はないんでしょーか
> 11 わたなべさんの拡張ライブラリのバイナリはライブラリをスタティックリンク してると思うが # 試してないけどね :)
>>10 res.extend(Enumerable)
ネタはないのか?
他スレでも書いたけど、Date - Date で分母が1でない Rational が返ってくることはあるの?
17 :
デフォルトの名無しさん :03/09/14 18:48
Perlチックにお気軽にmatchとかsubとかすると変数がnilでエラーでたりして面倒なんですけど そんなことないですか? 自分は"#{hoge}".sub()とかしてごまかしてるんですが・・・・
もれはあんまりそういうシチュエーションに出くわさないけど、 代入する時に hoge = foo || '' とかやるのかなあ。
もれはこうかなあ。 begin hoge.sub(/hoge/, '') rescue NameError, NoMethodError end うそ。
def hoge.method_missing(name, *args) # empty end hoge.sub(...)
tar boll で入れたrubyのアンインストールってどうやるのですか。
rm -rf `ruby -ne'~/\Aprefix = (.*)/ and puts $1' ruby-1.8.0/Makefile`
うわーん、nextっていう変数を使おうとしてparse errorになったよーん。 欝だ… 今書いているスクリプトの中で、変数名が prev, curr(ent) ときて、次は 当然のようにnext を使ってしまった。 他にどんな名前をつかえばいいかわからん。 なぜcontinueじゃなくてnextなんだー! こんなときはPHPがうらやましい…
PHP使えばいいじゃん。それだけの為に。
mswin32版で動作するlogrotateかexicyclogのRubyの実装ってないですか?
漏れは beg, end で・・・ ↓ Ruby の予約語でハマった人の数
>>24 nxt
continue 程度で PHP なんぞを使いたいとはたいそうおめでたいですね。
>>24 Perlならnextはもちろん、if, whileといった関数/変数も使えるよ
どーだっていいな。 俺はalias使おうとしてalias_にした
klassなんていうくらいだからariasというのはどうか
インスタンス変数なら使えるんじゃなかったっけ?
>>23 なんで make uninstall がないんですか。
インストールしたら簡単に消させないというmatzの陰毛
パイパンになるのがいやだからです
>>34 逆に make uninstall があるソフトウェアが世の中にどれほどあるのかと小一時間(ry
・・・漏れ、釣られた?
Automake 使うプロジェクトなら、ふつうある。 > make uninstall Ruby は Automake 使ってない(ライセンスの関係で)。
>>28 なんだ、メソッド名にはnextつかえるやん。
しらんかった。
とりあえず変数名は nxt でもいいや。
>>38 nxt かよ!?
って突っ込む香具師はいないのか?
$ ruby -ve 'p File.split("/foo/bar/baz/")' ruby 1.6.7 (2002-03-19) [i386-linux] ["/foo/bar/baz", ""] $ ruby -ve 'p File.split("/foo/bar/baz/")' ruby 1.8.0 (2003-08-29) [i586-linux] ["/foo/bar", "baz"] いつのまにか挙動変わってるし。 1.8.0変更点のページにも載ってないし。
ruby に Python のインタープリターのようなものはありませんか?
>>44 irb のようなもの?
それとも Pythonスクリプトを走らせたいの?
ruby-python ってのはあるが。
>>45 コマンドラインからインタラクティブに実行出来るという意味です。
シェルから
$ ruby -e 'cmd ...'
result
ではなく、、
>>> cmd ...
result
というのを出来ないかと。
irb は知らないので後で見てみます。
ちなみに .irbrc に require "irb/completion" と書いておくと便利。
irbrcとかbashrcのrcってどういう意味?
run command
resource の略かと思ってた・・・
ちなみに、『ハッカーズ大辞典』の rc file の項には > もともとは 1955年頃の CTSS システムの 'runcom files' から、 > 起動スクリプト /etc/rc を経て と書いてある。
ラン・コマンドとマンコ・ランドは似ている。
54 :
デフォルトの名無しさん :03/09/17 08:11
例外をrescueしたいのですが、 例外が起こったときにどの例外かってのはどうやって分かりますか?
>>54 begin
<例外が発生する操作>
rescue Errno::NameError, Errno::SyntaxError
<例外処理>
end
rescueに引っ掛けたいエラー種別を書く。
みたいな事じゃなくて?
>>54 例外情報は $! に保存される、とかいう話かな?
begin
a
rescue
p $!.class
end
#=> NameError
ありがとうございます。 例外情報が$!にはいっているのは分かりました。 もうすこし教えていただきたいのですが、通信関係の例外でループが終了しないように array.each{ begin Net::HTTP.start(host,port){|http| 処理 } rescue Exception 例外処理 end } のようなプログラムを書きました。 で、Ctrl-Cで終了したときに終了時の処理をするように trap(2){終了処理; exit;} としました。 普通に実行する分には問題ないのですが、 % hoge.rb | piyo のように標準出力をパイプに流すとError::EPIPEが発生して終了処理が行われず、 ループが続行してしまいます。 適切な例外だけを補足するようにrescueに必要な例外を個別に全て書かなけれ ばいけないのでしょうか?
こんなんできたら嬉しいのだが・・・ TargetExceptions = [Error1, Error2, Error3, Error4] begin rescue TargetExceptions => e end
>>57 1つのbeginに複数のrescue節を必要に応じて書くとかじゃ足りない?
60 :
デフォルトの名無しさん :03/09/17 18:16
erubyて人気あるのですか?
>>58 rescue *TargetExceptions => e
しまった、できなかった。whenと間違えた。
relative_path '/foo/bar/baz', '/foo/hee' ==> '../bar/baz' みたいな関数って用意されてないの?
64 :
デフォルトの名無しさん :03/09/18 20:14
win32でrubyを組み込んで、色んなスレッドからrubyを使う事って出来る? なんか変な動きするんだけど・・・いちお排他制御はしてるんだけど。
>>63 いかにも標準では備わってなさそーな関数だな。
自作おつゆ。
require 'uri' して + とか - とか使え。
Fileあたりにあったような気がしたけど気のせいだったか
>>64 Ruby 自体がスレッドセーフじゃないので(ry
RDって廃れちゃったんですか?
module M1 def foo "OK" end end module M2 def foo super if defined? super end end class C include M1 include M2 end p C.new.foo #=> "OK" ではなく nil defined? super が nil になって M1#foo が呼ばれないことに気づかず、 2時間ほどハマらさせて頂きました。 この大驚失色の仕様になっている理由はなんでしょうか?
ぽか〜ん
override と overwrite は違います。
>>70 逆に defined? super が nil にならないほうが驚きのような
バグでしょ?報告汁
え、バグなの?
>>70 で、
M2でsuperを呼ぶとM1の同名メソッドが呼ばれる
ものなんですか?普通の言語では。
1.6 なら動く
% ruby -ve ' module M1 def foo "ok" end end module M2 def foo super if defined? super end end class C include M1 include M2 end p C.new.foo' ruby 1.6.7 (2002-03-19) [i386-linux] "ok"
どっちが正しいんだ? 常識で考えれば1.6が間違ってる様に思えるが。 それにしても、バージョンアップで基本的な意味まで変えないで欲しいものだな。
>>72 違うから、つまり何でしょう?
C に M1 M2 を順に include したことで、M1 の foo は
M2 の foo に上書きされた。だから foo は一つしか
存在しないと言いたかったのでしょうか。
>>74 その理由は?
>>80 その常識とは?
defined? superが「super が呼べるなら真を返す」ならsuperは呼べるから1.8はバグ
Rubyがうんこに見えてきた
$ ruby -v ruby 1.8.0 (2003-08-04) [i686-linux] $ ruby -e 'def hoge; end; p defined?(hoge)' "method" $ ruby -e 'def super; end; p defined?(super)' nil
1.8のバグでFA?
とりあえず自己解決。 ruby のみのスレッドを起動しておいて、各種イベントにより動かす・・・ って方法にしました。 rb_init()したスレッドならちゃんと動くのかな?ちゃんと確認してないっす。
RHG の読書会、参加してみようかな、、、
>>87 参加しなさい。読書会もその後の宴会も(の方がさらに?)楽しいぞ。
91 :
デフォルトの名無しさん :03/09/19 20:49
>>81 > C に M1 M2 を順に include したことで、M1 の foo は
> M2 の foo に上書きされた。だから foo は一つしか存在しない
そういう理屈でもないみたい。
module M1
def foo
"OK"
end
end
module M2
def foo
"NO"
end
end
92 :
デフォルトの名無しさん :03/09/19 20:50
↑のつづき module M3 def foo super if defined? super end end class C include M1 include M2 include M3 end puts C.new.foo ruby 1.8.0 (2003-06-23) [i386-mswin32] => NO どうなってんだろう
てゆっかmswin32版では module M1 def foo "OK" end end module M2 def foo super if defined? super end end class C include M1 include M2 end p C.new.foo これでも"OK"だった。真剣にバグなんじゃ?
ごめん、俺のpreview版だった。
ちゃんとnilになるや。
>>81 の理屈が正しい。
今から dev に投げます。
93が本当だとするとバグだな
>>94 =91
81に理屈は書いてない罠。
疑問しか返せ(さ)ない香具師は不要と思った。
D:\apps\rubywin\bin>ruby -v d:\apps\rubywin\bin\temp.rb ruby 1.8.0 (2003-04-04) [i386-mswin32] "OK" % ruby -v /d/apps/rubywin/bin/temp.rb ruby 1.8.0 (2003-08-04) [i386-cygwin] nil
と思ったらReleaseでは変わってた D:\apps\rubywin\bin>ruby -v temp.rb ruby 1.8.0 (2003-08-04) [i386-mswin32] nil
ヤレヤレ
>>102 すまねぇ・・・
ただ、たしかに1.8リリース版の考えの方がすっきりしててわかりやすいな。
81は質問でばっか返してるけど、
> M1 の foo はM2 の foo に上書きされた。
おれに重要な示唆をくれたぞ。
Mixinの理解が深まった。
>>90 そもそも override と overwrite は違うから
>>81 の結果に
なると言いたかったんじゃないのか?
>>90 の内容は論点がスリ変わって個人的に ruby の仕様に
不満があるというだけになっている。
〜の理由から
>>81 の結果になるというように書かないと話が噛み合わないよ。
>>70 がnilなのは、そうだろうと思ってたのだが
% ruby -v -e '
module M1; def foo; "NO"; end; end
module M2; def foo; super; end; end
class C; include M1; include M2; end
p C.new.foo'
ruby 1.8.0 (2003-08-04) [i386-cygwin]
"NO"
これを見て、またわけがわからなくなった。
>>103 「M1 の foo は M2 の foo に上書きされる」のが、
「1.8リリース版の考え」だと理解してるのだとすると、それは違う。
基本的なことだけど、
>>70 の super if defined? super の部分を
super だけにすれば M1#foo が呼べるんだから。
ついでに言うと、上書きのように見せたかったら
super を呼ばなければいいだけでしょう。
ひょっとしてruby、もうだめですか?
>107 つまり1.6と1.8でdefined? の動きが変わったということかな。
>>104 本当は、確めもせず「overwrite だから super は使えねーよ」と思って
>>72 のレスしたんだ・・・
_| ̄|○ スンマセン
>>70 >>107 > ついでに言うと、上書きのように見せたかったら
> super を呼ばなければいいだけでしょう。
そうも行かないかも。class C < SuperClass だったら、
M2#foo の super で SuperClass#foo を呼びたい、なんて。
このへんの話は原先生の本(「Rubyプログラミング入門」)に詳しく書いてあるよ。 「第5章 クラスとモジュール」参照。
Ruby先生に掛かると、こんな微妙なバグ(かどうかもわからない仕様)で 時間を潰すことになるんだね。 驚き最小限は今何処
使用する人間の馬鹿さに驚くなぁ・・・
>>110 107へのレスの意味がちっとも分からないので、
もう少し分かるように書いてくれないか。
説明下手は無能の証拠
ruby -e 'p(defined?(nil)) ; def nil() end ; p(defined?(nil))' ruby -e 'p(defined?(self)) ; def self() end ; p(defined?(self))' ruby -e 'p(defined?(super)) ; def super() end ; p(defined?(super))'
何が言いたいのかわからん
rubydotnet の登場はニュース? 私はwindowsの世界にはうといのだけど、 ruby-talk での反応が冷めてるよう見える。
arton さんのとは違うん?
.NET 自体がもう全然ホットじゃないからねえ。
rubyスクリプトから、xtermやDOSプロンプトの画面サイズ(行数とカラム数)を 得るにはどうしたらいい?
>>123 ありがとう。でもDOSプロンプトじゃ使えなさそうだね。
もうひとつ、コンソールをクリアするにはどうしたらいい?
今は system 'clear' なんてしてるけど、いまいちだよね。
これもioctlでできるのかな?
>>124 ^[c を出力するってのはどうよ?
"^[" は C-V ESC な
>>125 NT-consoleだと、EscSeqが使えないと思った。
djgpp版なら、cmd.exe内からcommand.comが立ち上がるから使えるけど。
127 :
デフォルトの名無しさん :03/09/23 07:59
getoptlongで複数の引数はとれますか。 test.rb -t 100 test とやっても options[:txt2ipa]には100だけ入ります。 ------------------------------------------------------- require 'getoptlong' parser = GetoptLong.new parser.set_options( ['--test', '-t', GetoptLong::REQUIRED_ARGUMENT] ) options = {} parser.each_option { |name, argument| options[name.sub(/^--/, '').intern] = argument } p options[:test] #=> "100"
Unixの流儀では、それは test.rb (-t 100) test の意味だ。 test -t 100 -t test とかにすべし。嫌なら自分でARGVを弄る。
>>128 > Unixの流儀では、
勝手に決めんな!
>>130 Unixの流儀とPOSIXを同じにすんなボケ!
POSIX Portable Operating System Interface for UNIX 流儀 ((in))the style ((of)); ((after)) the fashion ((of)). ・昔〜の人 an old-fashioned person.
133 :
デフォルトの名無しさん :03/09/24 17:19
RubyをXPやLinux上で使ってみたいのだが、誰かRubyでこんな便利で面白いことができるってことを教えてくれないか? Rubyがいい言語なのは分かるが、いまいち、その便利な使い道ってのが具体的に想像できん。 それと、Javaなんかを使う場合との違いというか、メリットってのは何だろう。 Javaの経験は少しあるが、Rubyは初心者なんで、誰か教えてくれよ。
134 :
デフォルトの名無しさん :03/09/24 18:04
>>133 Javaと違うのは、冗長な記述なしにスッキリと書けるとこかしら
>>133 煽りでも何でもなく、その程度の興味しか持てないのなら
無理に触る事もないんじゃないかな。
何に便利かっていう接し方は当然アリだけど、
実用度の判断を保留して面白そうだから触ってみよ、っていう接し方もあるし。
面白みを感じないのなら、その位の縁しかない。
>>134 の言う通り、思考の道具としてちょこっと何かを作るのに
ベターな解ではあると思ってる、俺は。
>>133 TCPSocket とか TCPServer 使って Thread で TCP/IP 使った何かを実装してみるのはどう?
俺は複数クライアントのチャットを,クライアント40行,サーバー70行くらいでできたよ
138 :
デフォルトの名無しさん :03/09/25 18:13
>>136 に付け加えるならば
Rubyのライブラリ構成やソースを読めるようになるだけでも、
なかなかよいと思うよ。
しがらみの無い個人が作ってるだけあって、技術的には最先端だと思う。
139 :
デフォルトの名無しさん :03/09/25 19:03
まぁしかし、将棋や囲碁みたいなもんで、それ自体を楽しむように、 プログラミングを楽しむ人が Ruby を使う。 仕事でしかプログラミングしない職業プログラマに Ruby を使う香具師は、割と少ない。
140 :
デフォルトの名無しさん :03/09/25 19:18
技術的に最先端なんだ! すごいね!
> まぁしかし、将棋や囲碁みたいなもんで、それ自体を楽しむように、 > プログラミングを楽しむ人が Ruby を使う。 文章おかしいです。 まぁしかし、将棋や囲碁みたいなもんで、それ自体を楽しむように、 Rubyを楽しむ人が Ruby を使う。 ですね。
>>138 寝言は寝てから言え
K&Rスタイルのスパゲッティコードの何が最先端だ?
Ruby のソースは最高に読みやすいと思うのだが? (K&Rは単にMatzの趣味なんだし)
オブジェクト指向なの?それとも普通に構造化プログラミング?
>>144 読みやすい方だとは思うが「最高」ではないな
>>139 仕事じゃ怖くて使えないから
仕事でしかプログラミングしないなら
それでいいんじゃね
wxRubyがやっとcygwinで動いたので記念かきこ。寝る
>>144 ,146
確かに読みやすいが、最高ではないな。
まあ、perlのソースと比べれば一億倍くらい読みやすいのは事実だ。
pythonと比べてもrubyのが読みやすいと思った。
ary1 : 配列として、 ary1[1] に 1 をいれて、ary1の 0, 2, 3 番目には 配列 ary2 の要素をコピーしたいとき、 どうすればさくっと綺麗に書けるかな。
ary1 = ary2[0..2] ary1[1,0]=[1]
なるほど、挿入する訳か。 気づかなかった。 ありがとう。
MD5のハッシュ値抜き出すのってどうやるの? \s(................)\sだと関係なの間でマッチしちゃうし。
I have a dog!
So death car.
>>153 > MD5のハッシュ値抜き出すのってどうやるの?
日本語の部分だけ
require 'digest/md5'
p Digest::MD5.new(File.read("/tmp/empty")).hexdigest
"d41d8cd98f00b204e9800998ecf8427e"
そーいや、こういうサンプルがマニュアルにないから使い方がわかりにくいですね。
> \s(................)\sだと関係なの間でマッチしちゃうし。
こういうことかも知れない・・・
% md5sum /tmp/empty | ruby -ne 'p split(/\s/)[0]'
"d41d8cd98f00b204e9800998ecf8427e"
158 :
デフォルトの名無しさん :03/09/28 15:29
>>147 Ruby って、ビジネスで使おうと思えば使えるものがたくさんあるのに、
できない、やらないっていうのは、結局のところ、やろうとするヒトがいない
からってことでしょうかね。
踏みとどまらせているのは何なのだろう。
>>158 あたりまえといえばあたりまえだけど、
技術の選択基準が枯れてて評価が固まっているかどうかってのはある。
プログラミングだけでなく教育コストや受注の際の優位性とか考えるとね。
あと、品質監査するところが知らない言語は使えなかったりする。
通り一遍なだけでザルみたいな品質監査の癖にね(うちだけかな)。
作者や主な開発陣が日本人だから、ヘンに身近に感じるのも、 業務に使うにはマイナス要因になってそう。 日記に、たまにピントのズレた事を書いてあったりすると (おいおい、こんなヤツが開発してるモノを使って大丈夫かよ!?) なんて思ったり。
>>158 MatzのおっさんがRubyを使って金儲けしようとしないから。
>>147 典型的なのが、rwiki, webrick, div あたりで、あそこらへんなんかは最早
初心者無用。チュートリアルとかドキュメント一切なし。
divにはどう動かすかなんて何処にも書いてないし。仕組みは経験豊富な
プログラマだけウェルカム。
そこらへんの意図としては、理想を追いかけるために仕様変更は永久に
避けられない。よって、ドキュメントなんざ書くだけ無駄、自己責任でよろしく。
てなもんだ。
163 :
デフォルトの名無しさん :03/09/28 23:04
>>162 だからといってtomcatだのejbだのdcomだの他じゃどうなのかといえば、
同じように難しいんだから、それなら分かりやすいソースがあるだけ
divがいいんじゃ。
>>162 経験がないと仕組みが分かりにくいのはしょうがないんじゃないの?
165 :
デフォルトの名無しさん :03/09/29 04:37
soap4r 1.5.0のsoap/rpc/cgistub.rbの98行目はバグでしょうか? すみません。こういう報告とか慣れてないんで・・・
divは絵で仕組みを確認しながらソースを読めばわかりやすいYO
仕事の使ってるもん
ひとりでできるもん
Matzの戦略としては、まずは(ほっとけば勝手に広まるくらいに)いいもの作って、 勝手に広まる状況を作ってから原作者の利を活かした事業(わからんが、コード 評価サービスとか、コンサルティング)をやろうってことなんじゃなかろうか。
間違えた。 まつもと氏にコンサルは無理そう。
コンサル→うさんくさいと連想してしまう漏れは負け組ですか?
「サル」という語彙が良くないのだろうか。
Ruby VMってもうできたんだっけ?
CVSの最新をcygwinでコンパイルしてみたら curses のビルドの直後で止まるのは俺だけ?
>>177 狐も、狡猾な動物というイメージがあって良くない。
二つのキーに対して、一つの値を対応さしたハッシュを作りたいのだけど hash[ [a, b] ] = c みたいに配列使うのって良くないかな?
コンサル → 金猿
>>179 可変オブジェクトをキーにするのはよろしくない
matzは身の丈にあったことしかやらないだろう。まあ身の丈が伸びないとは限らないわけだが
>>179 既にそういうのありそうな悪寒だけど、こんなのどう?
# def []=(*key, val); end ってしようとしたんだけどダメなのね。
class Hoge
def initialize
@hash = {}
end
def []=(key1, key2, val)
@hash[key1] = {} unless @hash[key1]
@hash[key1][key2] = val
end
def [](key1, key2)
(@hash[key1]) ? @hash[key1][key2] : nil
end
end
a = Hoge::new
p a[1, 2] = "FOO"
p a[1, 2]
p a[1, 3]
p a[2, 3]
>>184 > # def []=(*key, val); end ってしようとしたんだけどダメなのね。
やりたいのはこういうこと?
class Hoge
def initialize
@hash = {}
end
def []=(*keys)
val = keys.pop
raise ArgumentError, "wrong number of arguments(0 for 1)" if keys.empty?
ekey = keys.pop
keys.inject(@hash) {|hash, key| hash[key] ||= {}}[ekey] = val
end
def [](*keys)
keys.inject(@hash) {|hash, key| hash.fetch(key) {return}}
end
end
金猿の商売あがったり
187 :
デフォルトの名無しさん :03/09/30 20:56
教えてください。 入力された文字列を時間として扱い、現在時刻との大小を比べたくて Webページなどを参考に以下のものを書いてみたのですが、 ここからどうしてよいかわかりません。時刻型の配列になっているようですが、 当然単純に引き算ではダメなようで・・ここから年月日に分解して数値化し結合して 大小を比べるのなどの作業が必要でしょうか? # 入力文字列 input_date = "2003-09-30" # 日付 input_hour = "5" # 時 input_minute = "30" # 分 # 比較 input_date_str = input_date + " " + input_hour. + ":" + input_minute idate = ParseDate.parsedate(input_date_str) ndate = ParseDate.parsedate((Time.now.utc + 32400).strftime "%Y-%m-%d %X") どうかよろしくお願いします。もっと簡単な方法がありましたら教えて いただけるとありがたいです。
require 'time' input_date = "2003-09-30" # 日付 input_hour = "5" # 時 input_minute = "30" # 分 p idate = Time.parse( input_date + " " + input_hour + ":" + input_minute ) p idate <=> Time.now
丁寧に解答しても187はレスなんか書かないよ。
>>190 > 丁寧に解答しても187はレスなんか書かないよ。
別にいらない
書いてて気が付いたんだけど、Time.parseはエラーを判定できないので入力が
予想できないときは以下の方がマシかもしれない
require 'parsedate'
p Time.local(*ParseDate.parsedate("hogefuga")[0,6])
>>191 いらないとか言って、本当はMLとかで初心者が
返事書かないと直接メールして説教するタイプだろ。
>>191 ありがとうございました。そのまま使わせていただいております。
しかしながらなんとサーバーのローカルタイムが間違っているようで
直せなかったため、UTCに置き換えてやってみました。
# 入力文字列
input_date = "2003-09-30" # 日付
input_hour = "5" # 時
input_minute = "30" # 分
err_msg = ""
input_date_str = input_date + " " + input_hour. + ":" + input_minute
idate = Time.utc(*ParseDate.parsedate(idate_str)[0,6])
#p idate ,"<=>", Time.now.utc + 32400
if (idate <=> Time.now.utc + 32400) == -1
err_msg += "予約日時は現在時刻より後の日時を入力してください。\n"
err_flag = 1
end
# 俺は返事がないと少しムカっとするタイプだが
>>192 わざわざメールで説教する人って実在するの?
rubyユーザーであるからには例え「解決しました」の一行でも礼儀上レスは必要だよ。 pythonユーザーなら逆に不要だが。
def ccc_binding ccc = :ccc binding end def ab_c(a_binding) aaa = :aaa bbb = :bbb bd = (({ ローカル変数のaaaとbbbを知っているa_binding })) eval "[aaa,bbb,ccc]", bd end ab_c(ccc_binding) # => [:aaa, :bbb, :ccc]が欲しい これの (({ ローカル変数のaaaとbbbを知っているa_binding })) の部分を書く方法はあるでしょうか。
>>198 > bd = (({ ローカル変数のaaaとbbbを知っているa_binding }))
だけなら bd = binding だけど、
> ab_c(ccc_binding) # => [:aaa, :bbb, :ccc]が欲しい
Bindingの結合というのはできない。
local_variablesとevalでa_bindingのローカル変数をコピーするというのはできるだろうが、
そもそも何でそんなことをしたいわけ?
>>200 やりたかったのはBindingの結合、それです。できないんだ、残念。
自作のテンプレートライブラリで、繰り返し処理に凝ろうとしたら、
イテレータブロックの中で呼ぶevalにこれをやりたくなるケースが
出てきました。他の方法があればいいんだけどまだ思いつかない。
>>194 かなり昔で何のMLかBBSだったか覚えてないけど実在する。
直接メールで説教されたことを示唆しつつ、非礼を詫びながら
慌てて返事を書く初心者を見たことがある。
また説教した人も気恥ずかしそうに、ちょっと行きすぎたかも
しれないけど分かってくれればいいんだ的な書き込みをしていた。
>>196 PHP使いなんだけど、返事は } でいいのかしらん
あのさあ、もの凄くどうでもいいことなんだけどさ。 イテレータブロックの引数(?)の位置って、 a.each(){ |m| } より、 a.each() |m| { } こう書けたほうがかっこよかったよな?
そう?
ブロックパラメタはブロックがないと意味がないわけだから ブロック内に書くのが自然だと思う
しかも以下を避けるには文法が繁雑になる a = Object.new def a.each() self end def a.|(x) self end m = nil a.each() |m| { }
文法を変えていいのなら str.map { |c by :each_with_index| ...} for c by :each_with_index in str みたいなのは禿しくほしい
>>208 どうでもいいけどC#だとmの重複定義で怒られるのにはびっくらこいた。
each以外のイテレータに差し替えたいんだが。 roughにあるのは知ってるが文法で対応した方が簡潔ではないかな。
>>209 それだと each_object に対応できない
>>213 ObjectSpace.find_all { |obj by :each_object| とは書けないってこと?
それは、by を使わずに、
ObjectSpece.extend(Enumerable).instance_eval{alias each each_object}
てかなんでこうなってないのかが分からん。
>>204 ObjectSpaceを使わないように改造。
それとs/marge/merge/g。
def merged_binding(*bindings)
dst = empty_binding
bindings.each do |src|
eval("local_variables",src).each do |var|
eval("#{var} = nil; proc {|#{var}|}", dst).call(eval(var, src))
end
end
dst
end
216 :
デフォルトの名無しさん :03/10/02 06:52
Rubyの正規表現について質問です。 ruby 1.8.0 (2003-08-04) [i386-mswin32] にて、 cmd=msg.scan(/command #{@name} (.*)/) case cmd[0][0] when /exit/ then exit end というようなものを書いたのですが、@nameを全部エスケープしてマッチさせたい場合は どのようにしたらいいのでしょうか。@nameに]が片方だけ含まれていて、エラーになってしまいます。 Perlで言う \Q$name\E というのをしたいのですが。
>>216 /command #{Regexp.quote(@name)} (.*)/
quote は escape の別名なので escape でも同じ
>>217 ありがとうございます!! うまくいきました。
>>204 サンクス。ほとんど同じ話しをしてる。参考になりました。
221 :
デフォルトの名無しさん :03/10/02 20:19
soap4rでレンタルサーバー上にCGI版SOAPサーバー置いてテストしてるのですが500 Error が返ってきます。 状況としては、 ・ローカルでのテストは問題なし ・必要なライブラリは自前でCGIと同じディレクトリに置き、$:に . をunshift ・PerlでのSOAPはうまくいく ・広告等の問題はなし ・レンタルサーバーのWEBサーバーログは見れない なんですが、デバッグ方法とかないですか?
222 :
デフォルトの名無しさん :03/10/02 22:16
>>221 例外が上がってるのかどうかくらいはHTTPで見えるところへ
devel/logger に吐かせれば分かるんでないの?
>>223 500 Error なら HTTP のセッション見ても詮無いような。
おお、
>>205 にレスが。ありがとう
今の漏れのブロックパラメタ(?)のイメージはこんな感じなんだよね
a.each(){ |a,b| } これを関数定義ぽくすると→ func{ ( a, b ) }
そんでこっち↓の方が関数定義に似ていてかっこいいような気がして。
a.each() |m| { }
激しくどうでもいいですね。
class MyClass < File def open(fn) super p "open:#{fn}" end end m=MyClass.open("test.rb") このようなスクリプトを書いたのですが、MyClassのopenが実行されません。 どうしてなのでしょうか、教えてください。
age
>>226 意図したことなのかバグなのか区別か付かない気がする。ここじゃなくて ML で聞いた方がよくないか?
>>226 これでいいじゃん。
m=MyClass.open("test.rb").open("test.rb")
>>226 def self.open(fn) じゃないの?
>>230 それでもファイルオブジェクトは得られない訳だが。
>>231 ハァ?本気で言ってるの?
class MyClass < File
def self.open(fn); p "open: %s" % fn; super; end
end
p m = MyClass.open("x.rb")
p m.read
>>226 それだと MyClass.new.open("test.rb") しかできないよ
実体なしで直接つかうようなメソッドの場合、
メソッド定義時に
>>230 か def MyClass.open(fn) とかで定義する必要があるよ。
オブジェクト返せ。superを最後にするかreturnつけろや
>>232 とおもったら書いてくれてる
226はインスタンスメソドとクラスメソドの違いをわかってないということですか?
>>230 ,232が素で必死にレスしているのを
見ると心悲しくなってきます。
だって、どうせ226からのレスはないんだから。
>>222 なんとかって、escapeHTMLしなきゃいいじゃん。
漏れ、大ボケかましてたな・・・
>>221 soap4rっていうのがなんだかわからないけど
スクリプト1行目のrubyへのパスが間違ってるんじゃないの?
または、perlからsystem("tail /var/log/httpd-error.log")
とかして八苦してみれば?
標準添付になってもその存在を知られていないsoap4r憐れ・・・。なひさん頑張って!
Rubyのライブラリは肥大化の一途を辿るのか と1.8を見て思った
Ruby に限らず、逆は普通ありえないだろ。と屁理屈を言ってみた。
いやなのか? 文法肥大化よりはまっとうな方向だと思うが。
他に比べたらまだ十分サイズ小さいし、いいんじゃない?
肥大化するのはかまわないけど、テストコード(TestUnit)を充実させて ほしいな。作り手は面倒かもしれないけど、それによって使い手は安心 できる。それになりより、何をするライブラリなのか見当もつかなくて 困惑してしまう俺なんかでも、テストコードがあると具体的な使い方が わかって助かるし。
まともなドキュメントとまともなサンプルがあればそれでよし。 テストコードじゃふつーのユーザーはついてこない。
まともなドキュメントとまともなサンプルすらない、ということでは
>>247 テスティングフレームワークを使った経験はあるの?
ドキュメントは結構まともだと思うな。 ちょっと文句をいうと標準関数群の説明を一個のHTMLにまとめないで欲しいな 一個一個のクラスや標準関数につき1個のHTMLにして欲しい。 サンプルに関してはほんとないね。もっと普及してくれ
>>238 だって
&とかはしてくれないと困るじゃん
逆に実体参照はそのままスルーしてくれないと
みすた & → &amp;
あ、なんかでてきた ・・・・わけわからん
1.8.1もうでるの?
実数→整数にキャストしたいんですが、 自分で計算するや文字列にしてからs.to_iを使う以外に簡単にできる方法ないでしょうか?
すみません、自己解決しました。 アホか俺('A`)
>>258 どうやって?Integer(100.001) やっぱこう?
同じ悩みにぶつかる奴もいるからちゃんと解決方法も書いてってくれるとうれしい
>>259 その通りです。
foo = 100.001
print Integer(foo)
で、結果が100になることを確認しました。
to_i round truncate floor ceil
262 :
デフォルトの名無しさん :03/10/04 08:08
ろくにテストなんてやってないんだろーなー
>>262 Cygwin上でMingw版を使ってる悪寒
265 :
デフォルトの名無しさん :03/10/04 21:07
クラス変数ってPStoreで保存できないんですか? 下のようなクラスつくったんですが、インスタンス変数は 保存できるんですが、クラス変数は保存できません。 誰か教えてー。 class Music @@total_plays = 0 def initialize @plays = 0 end def play @@total_plays += 1 @plays += 1 end end
アフォか(ゲラゲラ
class Music @@total_plays = 0 def initialize @plays = 0 end def play @@total_plays += 1 @plays += 1 print @@total_plays, ", " end end a = Music.new a.play a.play b = Music.new b.play a.play を実行したら漏れの環境では↓こうなったけど? #=> 1, 2, 3, 4, 何がしたい?インクリメントされればいいんじゃないの?
>>265 を百回読んでからレスしろ。まー265もアフォなんだが(ゲラゲラ
漏れの推測・・265=226
>>269 すげーよ、君すげーよ。
226までさかのぼって最近の流れを思い出して爆笑したYO!
そうか、PStoreってもんがあるんだな・・・
脊髄反射でレスしちまった。
というわけで
>>265 全然わかりません。
>>267 すみません、説明が不十分でした。
サンプルを載せます。
>>266 ,268
知ってるなら教えてくれよ、ヽ(`Д´)ノウワァン
そんなコメントじゃ漏れがアフォだということしかわからないじゃないか!!
#まぁ、実際アフォなんだが...(´・ω・`)ショボーン
-- music.rb --
class Music
@@total_plays = 0
def initialize
@plays = 0
end
def play
@@total_plays += 1
@plays += 1
end
def show
puts "@@total_plays = #{@@total_plays}"
puts "@plays = #{@plays}"
end
end
続く
マニュアルよく読めよ
いやごめんごめん、マジレスするよ。 PStoreってのは内部でMarshalを呼んでる。 んで、Marshalってのは、インスタンスをファイルに書き出すんだよ。 つまり、インスタンスに属さないクラスの属性は保存されない。 そのインスタンスを復元すると、当然のことながら、もとのクラスの属性は 復元されない。 ってか、オブジェクトを保存する必要あるの? ただ単に、データを保存したいんじゃないの?
>>273 スマソ
>>274 納得しました。ありがとうございます。
オブジェクトとして保存したほうが、いろいろと楽ですよね。
データとし保存するとデータを読み込む処理を書かなきゃいけないし..
オブジェクトとして保存すると、そのオブジェクトにしか復元できないよ。 つまりそのクラスの変更ができなくなる。 データはデータとして保存しといたほうがいいとおもうぞ。
PStoreっていう変数を外部ファイルに保存してくれるやつがあるんだね。勉強になった。 漏れはデータ保存する場合、読み込みが楽なんでrubyのハッシュのソースはいてeval しますよ。 ↓例。こんなファイルを自分で作って { 'data1' => 'aaa', 'data2' => 'bbb', 'data3' => 'ccc'} ↓eval とか require で読み込み data = eval( open('config.rb').read ) rubyのソース作って、読み込ませるのが楽です。 こういうデータファイルを出力するのも結構簡単だし。
>>277 大きなデータを読み書きしないならそれでいいんだろうが、
そんならYAMLにした方が楽なのでは?
require "yaml"
config_rb = "config.rb"
conf = { "data1" => "aaa", "data2" => "bbb", "data3" => "ccc"}
open(config_rb, "w"){|f| f.truncate(0) ; f << conf.to_yaml}
p conf == YAML::load(File.read(config_rb)) #=> true
c = "0" として、c = "1"にするにはどうしたらいいんでしょう? Perlの時は、chr(0x01)とかで出来たんですが、これに相当する関数はあるのでしょうか。
>>279 ぜんぜん言いたいことがわからん。なんなんだこのスレは
>>280 えとですね。cに文字として0が入っていた場合のインクリメントの仕方を教えて頂けないかなと…
整数型使えハゲはなしで…
>>279 前半後半でいってることが違うんだが chr(0x01) ってのはRubyの 1.chr だろ?
前半でいってることへの解答は c = "0" ; c.succ! ; p c #=> "1"
succ!なんて使うなよ
なんで?
succ!なんて意味わかんねえだろ
意味が分からないとは?
まず読み方がわからない すく?さっく? 意味がわからない su -> スーパーユーザー cc -> コンパイラコンパイラ ! -> びっくる! おれのボキャを漁るとこんなもんさ
ちょっとマジレスすると !が破壊代入なのはわかった。 これは282の文脈から判断できる。
successorでしょ。 読み方が分からないなんて、じゃあ sprintf はなんて読む
するとsuccは何をするメソッドか? 同じ様に282の文脈から判断して、 文字列を数字と見なし、その数字の値をインクリメントする と解釈ができる。 ただ、なぜsuccという名前なのか? これがわからない。
succがsuccessorの略だとすると、まるで意味が通らない。 Rubyのこの用法は誤用としか思えないのである。 今一度名前の見直しが必要だ。
in mathematics or computer science, an object that succeeds another is called
"successor". for example, you find the word "successor" in Peano's axiom:
ttp://mathworld.wolfram.com/PeanosAxioms.html and, by ruby's convention, if a method replace the receiver as the value of
"foo", then the method is named as "foo!".
別に数字に限らず、「次に相当する文字列」ということでは。 "a".succ は "b" だし、"99".succ は "100" だ。
>>290 >sprintf
string print formatだろう。
sとfは略記されているが、これは文脈でも容易に判断でき、
名前としても的確で意味の想定は常識の範疇の中で行える。
>>294 s/replace/replaces/ だと思われ
いやいや、あくまで読み方の話のつもりでした。 「すぷりんとふ」とか「えすぷりんとえふ」とか読み方は決まってないでしょう?
>294
そのsuccesorとインクリメントには何の関係もない。
>>281 の回答としてsuccを選択したのは間違いである。
>>262 Windows版とCygwin版で試したけどどっちもだめでした。
もしかしたら俺だけなのかなあ。
インクリメントは後者に置き換えること以外の何者でもないんだがな
>>295 >別に数字に限らず、「次に相当する文字列」ということでは。
残念ながら全く見当外れだよ
304 :
デフォルトの名無しさん :03/10/05 00:51
c = "1" p (c[0] + 1).chr これはどうさ。
もうわけわかんね
>>305 じゃあインクリメントってどういう操作?
"-1".succはどうなるの?
succeed → succ predecease → pred Pascal にもあるよ
>>308 負の数もあるなら c = c.to_i.succ.to_s だろうな
>>308 "-2" だった。
p "2 * 9.9".succ #=> "3 * 0.0"
だった。
successorの意味を知らなくて引っ込みがつかなくなった奴がいるスレはここですか?
「以下のような」といわれてもなあ。
じゃあ次のバージョンアップの時には prev を……。
>>312 succの意味を誤解しているrubyを叩いているのでは?
nextがあるのか。
文字列の前者は後者よりもさらに合意がとれないからでは? ruby-talk では何度か議論されている。 もっとも Integer#pred を否定する材料は特にない。
succ!なんて使うなよ
お前ら釣られてる暇があったらサンプルだかドキュメント欠けや
文案書いておいたよ。 アルファベットは26進数、数字は10進数として数えあげを行う。負符号などは考慮されない 文字列がアルファベットや数字を含んでいればそれ以外の文字はそのままになる p "1.9.9".succ # => # "2.0.0" アルファベットや数字を含まなければ以下のように次のASCII文字を返す。 p "\0".succ #=> "\001" p "/".succ #=> "0" 特別に "".succ は "" を返す。またsuccはマルチバイトを認識しない。
riはサンプルが充実してると思うんだけど perldocみたいに拡張可能なriって作る予定ないの? 現状で効率がいいのはrefe用の文書の増強なのかな。
alias get_next_ero_jpg_num_for_wget succ
>>325 付けたし
String#predはString#succの逆数を返す。
>"a9".succ => "b0"
>"Az".succ => "Ba"
この辺りよくわからないけど。
アルファベットや数字に関しては繰り上がりのある数え上げを行う。 書いておきました日本語変かも
329 :
デフォルトの名無しさん :03/10/05 01:52
webrickでディレクトリ毎アクセス制限する方法教えて下さい。
>>327 > String#predはString#succの逆数を返す。
なんじゃそりゃ。逆関数といいたいのかな。
慣用的な訳語は successor: 後者、 predecessor: 前者。
next も あるから prev も。
Peano算術ネタはもういいだまれうるさい寝る
>>327 逆数と言えば、普通は「n → 1/n」の事だ。
混乱を避ける為にも言葉を選べ。
そういう趣旨の話をしてるのなら尚更に。
プププ succ信者必死だな
suckされるのは好きです。
you.succ!
yoshida.ei.succ!
>>278 ・・・yamlって。
また、そんなマークアップ言語があるんでつね
漏れまだXMLもわかんないのに・・・。
ありがとう
>>342 おまえは標準添付ライブラリに全て目を通すまでこのスレにレスすんな。
Win98の$:フォルダ内に、ダウソしたhoge.rbを入れたんだけど 別のフォルダで「ruby hoge.rb」しても No such file or directory -- hoge.rb (LoadError) ってでるのはそういうもん? やっぱりhoge.rbのあるフォルダで「ruby 〜」しないとダメなの? または、実行ファイルみたいにpathを通す必要があるとか? #なんか我ながらお子ちゃまな質問だけど、聞けるのはこのスレ(サイト)ぐらいしかないので‥‥‥。
ruby -S ? $:が何か知らずに回答。
>>346 $:ってのはアレじゃね?c: とか d: とかドライブ名を表してんじゃね?
と適当に回答。
$:っていうのは、ライブラリ?のフォルダらしい。よくわかってない‥‥‥。 「ruby -e "p $:"」してもらえば。 書き忘れたけど、ruby 1.8.0 (2003-08-04) [i386-mswin32]で、試しました。 #cygwinバージョンでも同じ結果だったけど。
>>345 hoge.rb の位置、$: の値、現在のディレクトリが聞きたい。
ruby -rhoge -e ''
copy hoge.rb C:\temp set RUBYPATH=c:\temp ruby -S hoge.rb でうまくいくかも。
ちなみに$:はrequireのサーチパス。
353 :
デフォルトの名無しさん :03/10/05 20:34
WEBrickでHTTPServlet::AbstractServletを実装してServlet作るとき、 POSTデータはどこに入ってますか?
シラネーヨ。
GETもPOSTもreq.queryに入ってました・・・
回答者のレベルがもうぐだぐだやな。シラネーなら答えなきゃいいのに。
シラネーからシラネーと言って何が悪い
>>357 お前のことは言ってない。
シラネーのにシラネーと言わずにわざわざ答える香具師のことを言っとる。
>>358 報告・連絡・相談
ほうれん草は社会の義務だろうが!
とくだらない回答。
>>358 香具師って何?まさか奴って意味じゃないよね。
>>360 すまんが、どうレスすりゃいいんだ?マジレスしていいのか?
イタイノイタイノ トンデケー
>>363 まさか当っているとは思わなかった。
それで奴を香具師と書く必要性ってあるの?
まさか、2ちゃんに精通していることを示唆しようとしたわけじゃないよね。
367 :
デフォルトの名無しさん :03/10/06 11:57
お前らrubyでなにつくってんだ
ここ最近の流れは何なんだ
>>366 大丈夫か?
痛いとこがあったら病院で早めに見てもらったほうがいいぞ。
>>368 いつも通りじゃん。
でも、たまにRubyのこと書く人いて頭に来るけどな。
>>262 今頃言っても遅いかもしれんが、Windows版rubyが悪い。
いまのところそういうものなので、諦めるか、rubyを直してパッチを送るかするとよい。
スクリプトが聞いて呆れるわい
>>363 それで奴を香具師と書く必要性ってあるの?
>>376 それで名前をひらがなで書く必要性ってあるの?
ん?
ヤシガニは顔だけに汁
>>377 必要性がないなら香具師と書かないほうがいいよね。
香具師と書かない必要性はありますか?
あります。
もうやめろよ。ウザイ。
やめます。
香具師を使う香具師は流行遅れ
つーか、るび使い結構いるんだね。 漏れだけかと思った。安心したよ。 Ruby いいよな!この野郎ども!
>>387 だまされるなよ。このスレ、お前以外は全て自作自演だ。
389 :
デフォルトの名無しさん :03/10/07 16:58
x上で開いているウインドウの一覧を表示するスクリプトをお教え下さい。ruby/tkを使えば出来そうな感じはします。
質問です。 rubyでMySQLを使いたいのですが、どのライブラリを使えばいいのでしょうか。 ruby-mysql,mysql-ruby,ruby-dbi などと、いろいろあるようなのですが。
m17n は何の略ですか?
>>390 ruby-mysqlかmysql-rubyのどちらか好きなほうを選んで、
それからruby-dbiを入れる。
好きな方って一体どんな選択基準があるんだろう・・・
ちくしょう、荒らされてる。
Ruby と PIC で何か面白い遊び方あるよってひといる?
座標指定して、三角形やら円描いて、 画像に出力できるライブラリとかない?
あるのかー。 ありがとう。調べてみる。
400 :
デフォルトの名無しさん :03/10/08 23:12
>>396 PICで動くrubyインタプリタを書く(もしかしてもうあったらスマン)
401 :
デフォルトの名無しさん :03/10/09 00:39
あのさ 式 or 式 ってあるけど "foo" == ("foo" or "bar") みたいな書き方ってできませんか? 一々左辺を書くのがメンドイっす
"foo" =~ /^(foo|bar)$/ ["foo" "bar"].include?("foo")
["foo", "bar"].include?("bar") だと遅くなるかな。
あ、Arrayにコンマが抜けてた。
そうだね。3〜4倍ほど遅くなるね。
cond
要素数によるんではないか?。Array.include?で妥当だと思うが、 本気でやるならSetか? array & array が思ったほど速くなかった。結果は各自でどぞ x = 100000 a = ["foo"] * 10 + ["bar"] b = "bar"; ba = [b] def elapsed_time t = Time.now yield p Time.now - t end elapsed_time {x.times { a.include? b }} elapsed_time {x.times { a & ba }} r = Regexp.new('\A' + a.collect {|v| Regexp.escape(v)}.join("|") + '\z') elapsed_time {x.times { r =~ b }} require 'set' s = Set.new(a) elapsed_time {x.times { s.include? b }}
class Object ; def in?(*set) set.include?(self) end ; end "foo".in?("foo", "bar")
case "foo" when "foo", "bar"; ... end
irb-historyって標準添付じゃなかったのね ちょっと迷ってしまった
aclも入ってないね。
>>411 % cd cvs/ruby
% find -name \*acl\*
./lib/drb/acl.rb
% cvs log lib/drb/acl.rb | grep date
date: 2003/10/04 17:08:23; author: seki; state: Exp;
"foo" =~ /^(foo|bar)$/ で行きます! ありがと〜>402-409 感謝
require 'eregex' "foo" =~ /^foo$/ | /^bar$/
正規表現の質問です。 文字列のうち '<' から '>' までにマッチする正規表現を書きたい。 ただし、'<' と '>' の中にも他の '<' と '>' が出てくる。 また '<' と '>' は必ずペアとして出現する。 例えば s = 'aa<bb<cc>dd>ee<ff>gg' とあったときに、 '<bb<cc>dd>' や '<ff>' にマッチしてくれるような正規表現を書きたい。 例えば、次の2つはNGです。 s =~ /<.*>/ # $& == "<bb<cc>dd>ee<ff>" s =~ /<.*?>/ # $& == "<bb<cc>" 次のは一応うまくいくのですが、内側の '<' '>' のネストが深い場合などに 対応できません。 s =~ /<([^<>]*|[^<>]*<[^<>]*>[^<>]*)>/ # $& == "<bb<cc>dd>" こんなのは正規表現では無理でしょうか? やっぱり、'<' と '>' の文字数をカウントするような機能が正規表現にないと 難しいとは思うのですが。
>>416 それは正規表現(だけ)では解けない事で有名な問題。
ちょっと質問があります。 (ID、値)というデータが次々に入力されてくるとしますが、IDごとにそれぞれ 入力された順番を考慮して保持したいと考えます。ID番号ごとにqueueを作って、 既存のIDが入力されたらqueueにpushし、新規のIDが来たらそのIDに対応するqueueを 新たに作ってpushするという方法を考えました。 しかしどうやって書いたらいいかわかりません。後でID番号を基にそれぞれの queueの中身を参照できるようにするには、どのように書いたらいいのでしょう? C++だと、std::map<ID_type, std::queue<value_type> > のように書くと思うんですけど 同じような機能ってありますか?
パターン共有・参照が実装されれば書けるかも。 もう鬼車に実装されてる?
S式にしてリスト比較
Rubyのキラーアプリってなんもないの?
ないよ。
>>417 どうもありがとうございます。
やっぱりそうですか。
ちなみにこの問題って、正規文法じゃ無理だけど文脈自由文法ならいけるんですかね?
いや、よくわかってないもので。
スキャナを書けば有限オートマトンを実現できるから、文脈自由文法を解釈できるってことなのかな?
>>425 そういうこと。
バランスのとれた括弧からなる文字列の全体はDyck言語と呼ばれ、
正則ではないが文脈自由。オートマトンの教科書には必ず書いてあるはず。
>>425 有限オートマトンの能力(=正規表現の能力)は、
「Rubyの正規表現」の能力に劣りますが?
# 後方参照とかあるのに「正規表現」って名乗るのはうさんくさいよなー。
>>418 class OrderdHash
include Enumerable
def initialize() @data = Hash.new ; @order = Array.new end
def [](key) @data[key] end
def []=(key,val) @data[key] = val ; @order << key end
def each() @order.each do |key| yield(key, @data[key]) end end
end
h = OrderdHash.new
h[10] = "foo"
h[-1] = "bar"
h[13] = "baz"
h[10] = "quux"
h.each{|k,v| printf(" %d -> %s\n",k,v)}
# generates:
# 10 -> quux
# -1 -> bar
# 13 -> baz
# 10 -> quux
>>427 「Rubyの正規表現」で表現できる言語のうち正規言語でない例には何がありますか?
>>428 >>418 が欲しいのはこうじゃね?
h = {}
[[key,val], [key,val], ...].each {|key,val|
h[key] ||= []
h[key].push(val)
}
>>428 ,432
どうも質問に答えてくださってありがとうございました。
さっそくやってみます。
ソースやバイナリがダウソされた数とか分かんないの?>中の人 インタプリタの用途は統計的な手法で邪推するしかなさそうだが。
>>437 ミラーのことを考えると数なんてわからない。
Mac OS Xに添付されているのは数えるのか?とかいう問題もある。
まあそうだよな。そうなると、キラーアプリかどうかなんて知りようがないな。 評判なんてあてにならんし。
440 :
デフォルトの名無しさん :03/10/11 11:44
Ruby-GPGMEのインストールに失敗するんですがどうすればいいんでしょう 環境はWin32/Cygwinで、以下のようにコンパイルしたところシンボル未解決エラーが出ました gcc ./gpgme_n.c -I/usr/local/lib/ruby/1.8/i386-cygwin
441 :
デフォルトの名無しさん :03/10/11 11:44
書き忘れましたが、GnuGPG-ME自体は正常にインストールできています
cygwin版は使い物にならない
なるほど、ありがとうございます。 では現状ではRubyからGPGを呼ぶ場合はパイプ付きopenで直接GPGを呼び出した方が良いということでしょうか?
444 :
デフォルトの名無しさん :03/10/11 12:17
||= この演算子の意味は何?
つーかエラー内容全部書けよ
>>446 強調までしてくれて、ども。
||が斜めになってて、//=もあるのかと思ってしまった。
> a ||= 1 # a が偽か未定義ならば1を代入 これ見て気付いたんだけど、 a || 1 #=> error a = a || 1 #=> 1 c = b || 1 #=> error なんだね。
>>447 スタイルシートを.hilightにfont-style: normal;をつけました。
これで斜体にならなくなったはず。
詳しくは GPG1.2.2をCygwinアップデートからバイナリインストール GPGME0.3.15をソースからインストール Ruby-GPGMEのディレクトリに降りてMakefile作成 $ ruby extconf.rb checking for gpgme_check_version() in -lgpgme... no これでこけて終了するのでgcc直呼びでライブラリ作成を試みたところシンボル未定義のエラーが大量に出た といった流れです。 gpgmeライブラリも gpgme.hも使える位置におかれているはずなんですが...
>>450 ∧_∧ / ̄ ̄ ̄ ̄ ̄
( ´∀`)< オマエダレダー
( ) \_____
| | |
(__)_)
AC嫌いなゆきひろくんがこんなところに来るとは思えないんだけどなぁ
今日は TMail を使ってみた。 TMail::Mail.parts に TMail::Mail を差し込んで、 write_back することで Multi-Part が作れることを知るまで 子一時間悩んだ。 あしたは、添付ファイルの名前の付け方で悩んでみよう。
コンパイルが通っただけでテストもしていないプログラムを 「出来ました」 と言って持ってくる。当然まともに動かない。 「ちゃんとテストをして、初めて出来ましたと言えるんだ」 と言ったら 「あんたが急がせたからテストが出来なかったんだ」 と逆ギレされた。 これを体現したのがconfigureシステム。 すなわちRubyの移植度合いはこれに左右される。
(;´∀`)ハハハ、 configureってアホな仕組みを考えたGNUは逝っていいよな
automakeの使い方が悪いんでは? まー、あれって移植・保守の妨げになってるよね。どう考えても・・ そもそもソースから起こすって発想の在り方からして問題だよ。 ソースクレ厨の発生源になった。
だってGNUだもん
>>457 GNUはgcc以外世の中に大した貢献もしてないから、
もう不要かもな。
オープンソースとか言って、悪用しかされねーのわかってるのに、
正気でいられるかよ。開発スピードめちゃ遅だし。
これを機にメイン開発プラットフォームをWindowsに移そうぜ。
GNUのせいで、古めかしいUNIX系OSが未だに淘汰されてない。 これは業界のガンと考えて宜しいかと。 この大きな腫瘍を切除するため、ゲイツ帝国が某国等と結託して RMS一派抹殺計画が発動されるかもしれません。
ストールマンは相変わらず笛吹いてるしな
オプソ計画は、いわば「釣り」なんだよね。 それを勘違いしたアホ企業はみんな破滅してる。
Redhatも焦ってサポート打ち切りやら更新スピードアップ図ってる罠
久しぶりにアンチ GNU、アンチ OSS な人がやってきたな。 Ruby と直接関係ないじゃん。
UNIXべったりなRubyの仕様も再設計すべき時に来ているのかもしれないな。
まあ、ソース公開しないアプリ作者が悪者扱いされたりもするし、 GNUが台頭してきてから変な風潮になってるのは確かかも。 無闇にソース公開ってのはどうかと思うね。 どうせ保守すんのは一部の人間だし。
ココハrubyスレ
>>467 Python 使えばいいんじゃないの?
わかった風な俄かRubyアナリストがMLで暴れたりするから 言語仕様がどんどんクソになっていく
まつもとも、助成金貰ってんだから人雇えよ。 そのための金だろうが。
configureは俺もウザイと思う
本屋でRHG見たときには、(;´ー`)。oO(こいつら馬鹿?) とオモータよ
>
>>473 >じゃあ代替案は?
OS毎に、きちんと動作確認済バイナリをオフィシャルで公開すれ。
OSが何種類あるかすら分かりませんが?
動かねえとか書き込みあったら、そりゃβ版ですがな、 ってこと度々あるよな。このスレ。 適切なレスが一向に無いのが笑える。
>>479 Mozilla スレからのコピペかな?
>>478 ビルダなんて、それこそ審査でもして募ればいいじゃん。
どうしても必要なら環境一式用意するだろ。
使う側からすれば、configure はとても便利だと思いますよ? むしろ、なかったら切り捨てられる環境が山のようにありそう。 で、なんで configure 話なの?
動作確認が問題なら rubicon の整備をすすめりゃいいのでは。
こんふぃぐれはクソなのれす
>>483 >むしろ、なかったら切り捨てられる環境が山のようにありそう。
無いという前提なら、切り捨てておしまいだよ。
それでも別に困る事は無い。
初めから動いたという実績も何もないんだから。
何か configure でいやな目にあったんだろうか、この人。
今までの流れ configureウザイ ↓ オープンソースが諸悪の根源 ↓ GNU撲滅しよう(RMS抹殺計画) ↓ Rubyもソース公開止めてバイナリ配布しよう(GPLも破棄?) ↓ rubicon なんとかしろ
Rubyのキラーアプリは次世代makeツールに決まりますた。 つうわけで作れ>all
裁判でRMSの笛を差し押さえれば問題解決しそうな気がする
まともにWindows対応しろってことでは configure使えないし。
debianだからソースはどうでもいいや
つーかconfigureがUNIX系でしかマトモに動かない所に問題があるな。
>>494 あれだ、bcc32 や vc が gcc 互換になればいい。
rubyでconfigure作ればいいだけじゃないか。
sh前提って時点でどうかしてる まだC言語で動かした方が可能性ありそう どうせC言語使うんだし。
それがsetup.rbなのでは
各種コンパイラで問題なくコンパイルできるコードを生成する → すげー大変。つうか死ぬ → 中間言語を使おう → 言語仕様を決めよう → あーだこーだ → つうかすでにある sh でいいじゃん
configureがUNIX系以外でマトモに動いたら嫌だな。
>>499 C言語の方が普及してるし、互換性もそれなりに高いじゃん。
それにいざ動かなくても修正楽だ。
shなんてUNIX使わない限り触らないよ。
単体じゃろくなことできないし。
どうしてもsh使うぐらいならperlの方がいいのでは。
結局UNIXならC入ってるし、それもいいか。
そもそも C で書くと ifdef の嵐になって 互換性とるのも大変だから configure ができたんだが。
configureにとって替わるビルドツールをC言語ソースで配布しる ↓ ビルドツールをコンパイルする ↓ ビルドツールがうまく動かなかったら各自修正する(C言語だから簡単) ↓ ビルドツールでRubyをビルド ↓ C言語使えるOSならどこでもRuby! ↓ (゚д゚)ウマー
というシナリオなのだが
結局、UNIX以外に移植するのは大変ってことだよ。 configureなんかいつまでも使ってるから馬鹿にされるんだよ。
誰が馬鹿にしてるんだろうか。あと何を使えば馬鹿にされないんだろうか。
>>504 つーか、初めからバイナリ配布すりゃこんなツールいらねーだろ。
馬鹿か。
今でもバイナリ配布されてるからいいじゃん
>>508 RubyをWindowsで使う奴はアホ。
Pythonとか他の言語にしなさい。
Windows でスクリプトといえば、wsh ってかなりパワフルなのにあんまり使われないよね。 なんでだろう。
うんこ
おいおい、結局うんこかよ。 やめてくれよそういうのは。
どっちかというと切れ痔
Python は公式サイト上で Windows 版インストーラ付きを配布してるんだね。 Perl は AcriveState へのリンクだけど。
こういった問題には誰も真剣に取り組まない。 結局オープンソースにしても無駄。 Rubyを見てると良くわかる。
configure が嫌いだということ以外 結局どういう問題なのかさっぱり分からないのだが。
結局何が問題なのかもういちど教えてくらさい。よーわからん。
>これを体現したのがconfigureシステム。 ?
なんか変なのが来てるな
現時点で Windows の処理系のうち bcc32、VC++、djgpp、mingw、cygwin でビルドできるようになっている。 そのうち autoconf な configure を使うのは mingw と cygwin で、他は個別に対応している。 主要な処理系は揃っているのだからいいのでは? それとも、もっと対応環境を増やすというときに対応が大変ってこと? autoconf の代替物を作っても、結局それを移植するという作業が必要なので 個別対応するか GNU ツールが対応するのを待った方が楽だと思うんだけどなあ。
訂正。djgpp は DOS だった。
どうせ誰も読まないから訂正しないでいいよ
自分が読んでるよ。
環境はWinしかしらねぇ馬鹿が集まるスレですか?
オープン批判って事で、るびべんが紛れ込んでると予想してみるテスト。
>>527 基本的にRubyを使った開発やテスト環境はWinだろ
Unix系のOSはもともとサーバ用途のOSだから
人間とのインタフェースがうんこで使ってられん
|基本的にRubyを使った開発やテスト環境はWinだろ はつみみです はっ。思わず void 化してしまった。
死人の悪口はいかんよ…
>>475 >本屋でRHG見たときには、(;´ー`)。oO(こいつら馬鹿?)
RHG買おうかなーと思ってるんだけどどういう点が馬鹿なの?
ところでスラドで大量に煽り書き込みしてるACの一人ってのは多分おごちゃんだと思うんだ俺。
>>532 > 死人の悪口はいかんよ…
そういうことにしたいのですね?:-)
>>528 みんなconfigureに不満持ってるんな〜ってこと。
GNU autotoolsを厄介物あつかいする気持ちはわかるけど、 Winな環境に対応できないからダメって言ってるやつどうかしてるよね。
538 :
デフォルトの名無しさん :03/10/12 04:42
ActiveScriptRuby使えば良いのでは?
オマイラツラレスギ
>>542 あ、右辺に未定義な変数 (b) が出てきたからエラー、か。
∧_∧ ピュ.ー ( ´_ゝ`)< フーン =〔~∪ ̄ ̄〕 = ◎――◎
x = y = z = x #=> x,y,z = nil か。
1.8系にあるブロックつきHash.newを1.6系でも使いたかったので作ってみますた。 さすがにHashの挙動を変えちゃうのは怖いので継承してみますた。 class Hash18 < Hash def initialize(dflt = nil, &block) super(dflt) @default_block = block if block_given? end def [](k) @default_block ? @default_block.call(self, k) : super(k) end def inspect "#<Hash18:#{id} @default_block=#{@default_block.inspect}, #{super}>" end end
>>547 ごめんなさい。typoです。「みました」の誤りですた。
>>546 ブロックが実行されるのは登録されていないキーで参照したとき
>>549 おー、そうだ。わたしがバカでした。恥ずかしい…
self[k]がnilを返してきたとしても登録されてないとはいえないわけで、
そうするとkeys.include?(k)で判別するしかないのかな。
だとしたら効率悪そう。
>>550 has_key?(key)
include?(key)
key?(key)
member?(key)
ハッシュが key をキーとして持つ時真を返します。
Hashのような組み込みの具象クラスの継承はあんまりしない方がいいと思う。 例えば is_a?(Hash) と判定された時の挙動の責任を持つ必要があるし。
グローバル変数は、事前に代入されていなくてもnilのデフォルト値を持つのね
おれは変数宣言あった方がよかったと思う
変数宣言イラネ
いる。
宣言レスだと、ちょっと複雑なコード書くとき不安じゃね?
複雑に書くな。との御託宣である
>>555 ごめんなさい。typoです。「でした」の誤りでつ。
「でつ」ってどういう意味? 「です」の誤りです。 いいかげんやめろ。
いいかげんやめれ。 「やめれ」ってどういう意味? とかって続くわけじゃないのね。
スマソ。
もまいら、いい加減にしる!
Arrayで、全部の順列を列挙するにはどうしたらいいでしょうか こんな感じです [1, 2, 3, 4].each_perm do |a| # a は並べ替えられた配列 end
「しる!」ってどういう(ry
2典(ry
「(ry」ってどういう意味?
>>565 class Array
def each_permutation(&block)
_permutate(self, 0, &block)
end
private
def _permutate(a, k, &block)
n = a.size-1
if n == k
yield(a)
else
(k..n).each do |i|
b = a.dup ; b[k],b[i] = b[i],b[k] ; _permutate(b, k+1, &block)
end
end
end
end
器用なコード書くなぁ。
>>569 ありがとうございます
関数を2つに分ければいいんですね。
2関数に分けない方法
ttp://www.sra.co.jp/people/miyata/algorithm/genperm.txt から移植
class Array
def genperm4
p = self #.dup
c = Array.new(p.size+1)
(1 .. p.size).each {|i| c[i] = i }
k = 1
while k < p.size
i = (k & 1).zero? ? 0 :c[k]
p[k], p[i] = p[i], p[k]
yield(p)
k = 1
while c[k].zero?
c[k] = k
k += 1
end
c[k] -= 1
end
end
end
[1,2,3].genperm4 {|v| p v}
573 :
デフォルトの名無しさん :03/10/13 11:09
enterキーが入力されたことをわからせるメソッドってありますか?
unless STDIN.getc == ?n; end
575 :
デフォルトの名無しさん :03/10/13 15:51
www.ruby-lang.org にある man-rd-ja.tar.gz は,どうやれば読める HTML にできるの? % cd rd-man-ja % rdoc --charset ISO-2022-JP --fmt html *.rd とやって,doc/index.html を mozilla で見てみたら %A5%AF%A5%E9%A5%B9%A1%BF%A5%E1%A5%BD%A5%C3%A5%C9%A4%CE%C4%EA%B5%C1.rd %A5%AF%A5%E9%A5%B9.rd なのが,リンクとしていっぱい出てきて,クリックしても「そんなファイル見つからん」 と言われてしまいます.
HA HA HA!
>>575 *.rd は rd2 で処理するんでねえの?
HTML版を落とせ。
以前分割 HTML 版配布してたと思うんだけど、1.6.8 / 1.8.0 版は配布してないの?
自分が樹形図を書くときの手順をそのままコードにしただけなんだけどねえ。
582 :
デフォルトの名無しさん :03/10/14 08:45
RDEでデバッグすると、以下の警告がうざいのですが、 C:/ruby/lib/ruby/1.8/debug2.rb:797: warning: multiple values for a block parameter (2 for 1) from C:/ruby/lib/ruby/1.8/debug2.rb:797 C:/ruby/lib/ruby/1.8/debug2.rb:809: warning: multiple values for a block parameter (2 for 1) from C:/ruby/lib/ruby/1.8/debug2.rb:809 どう対処するといいでしょうか。
激しく亀レスでスマソ。
「ruby -S hoge.rb」で動きました。
>>346 ・351氏に感謝。
>>352 っていうことは、RAAなんかでダウソしたライブラリは、$;の中に入れとけばいいってことか。
>>583 普通、ライブラリ付属のドキュメントの通りにインストールすれば、
何も考えなくても $: の中 (/usr/local/lib/ruby/site_ruby/... など) に
入ってくれるんでないかい?
それともドキュメントは死んでも読まない主義?
>>586 RAAなんかでもうその手のは飽きたライブラリは〜
だとなんか変じゃないか?
>>584 install.rbが付属しているのはそれでいいかもしれないけど、ついてないやつは(既知として)そんなことかかれてないやつが多いから、
試行錯誤してました。
(ドキュメントは必ず目を通してるつもり。)
っていうか、うちの環境ではinstall.rbが動かずインストールできないことが多いので、むしろ手動の方がありがたかったりする。
# 今日tmail試してるんだけど、「install.rb setup」でmakeがこけて‥‥‥。
#しかもエラーメッセージが文字化けして読めないし‥‥‥。
#make
#Makefile:102: *** ・ソ。シ・イ・テ・ネ・ム・ソ。シ・ャ `%' 、゙、ヌ、、、゙、サ、・ テ貊゚。」
#setup failed
#'system make ' failed
#
#>make -v
#GNU Make version 3.79.1, by Richard Stallman and Roland McGrath.
#Built for i686-pc-cygwin
とりあえず、 make を ruby でラップしちゃうとか。 お手軽に Kconv.tosjis(`make`) とか使えば読めるよ。
>>589 まつもとゆきひろ先生にでも聞いてみたら?知ってるかもしれないよ
>>582 ハッシュを for で回すときは key と val をブロックパラメータに取る。
begin-base64 644 debug2.patch
LS0tIGRlYnVnMi5yYi5vcmlnCTIwMDItMDctMDEgMTY6MTc6MDIuMDAwMDAw
MDAwICswOTAwCisrKyBkZWJ1ZzIucmIJMjAwMy0xMC0xNCAyMzo1OTowMS4w
MDAwMDAwMDAgKzA5MDAKQEAgLTc4Miw1ICs3ODIsNSBAQAogICAgICAgVGhy
ZWFkLmNyaXRpY2FsID0gdHJ1ZQ0KICAgICAgIG1ha2VfdGhyZWFkX2xpc3QN
Ci0gICAgICBmb3IgdGggaW4gQHRocmVhZF9saXN0DQorICAgICAgZm9yIHRo
LCBpbiBAdGhyZWFkX2xpc3QNCiAgICAgICAgIGNvbnRleHQodGhbMF0pLnNl
dF90cmFjZSBhcmcNCiAgICAgICBlbmQNCkBAIC03OTUsNSArNzk1LDUgQEAK
ICAgICAgIFRocmVhZC5jcml0aWNhbCA9IHRydWUNCiAgICAgICBtYWtlX3Ro
cmVhZF9saXN0DQotICAgICAgZm9yIHRoIGluIEB0aHJlYWRfbGlzdA0KKyAg
ICAgIGZvciB0aCwgaW4gQHRocmVhZF9saXN0DQogCW5leHQgaWYgdGhbMF0g
PT0gVGhyZWFkLmN1cnJlbnQNCiAJY29udGV4dCh0aFswXSkuc2V0X3N1c3Bl
bmQNCg==
====
このスレもダメポ。 知障だらけ。
597 :
デフォルトの名無しさん :03/10/15 03:56
WEBrickでサーバが保持するデータをサーブレットに送る、 サーブレットが保持するデータをサーバに送るにはどうしたらいいですか?
>>597 もう少し具体的に。AbstractServletのインスタンス変数に@serverというのはある。
>>595 国語辞典ひいてみなよ。のってるかもしれないよ。
>>594 lhaplusを入れて、base64decodeをして、以下のpatchを得ました。
------------------------------------------------
--- debug2.rb.orig2002-07-01 16:17:02.000000000 +0900
+++ debug2.rb2003-10-14 23:59:01.000000000 +0900
@@ -782,5 +782,5 @@
Thread.critical = true
make_thread_list
- for th in @thread_list
+ for th, in @thread_list
context(th[0]).set_trace arg
end
@@ -795,5 +795,5 @@
Thread.critical = true
make_thread_list
- for th in @thread_list
+ for th, in @thread_list
next if th[0] == Thread.current
context(th[0]).set_suspend
-------------------------------------------------
以前のファイルをdebug2.rb.origにリネームし、
>patch -p1 < debug2.patch
をしたところ、次のエラーが出て力尽きました。
missing header for unified diff at line 3 of patch can't find file to patch at input line 3 Perhaps you used the wrong -p or --strip option? The text leading up to this was: -------------------------- |--- debug2.rb.orig2002-07-01 16:17:02.000000000 +0900 |+++ debug2.rb2003-10-14 23:59:01.000000000 +0900 -------------------------- File to patch: アドバイスもらえますか。
>>601 この程度なら自分の手で修正すればいいでしょう。
なんでファイル名と日付時刻がくっついてんだろ? ってのはさておき、 File to patch: debug2.rb でいいんじゃないの。
というか、-p1 はいらないでしょ。
>以前のファイルをdebug2.rb.origにリネーム なんで?
結局dos窓から秀丸にコピー→保存して開きなおしたら見えました。 「Makefile:102: *** ターゲットパターンが `%' を含んでいません. 中止。」 とのことで、できあがったmakefileをよく見直せばコンパイラがclでした。 cygwinのruby環境があるPCでコンパイルしたら(多分)無事できました。 重ね重ね、レスくれた方に感謝。 #install.rb使いたかったら、cygwin版にしろってことで。
元凶は秀丸だな。
Cygwin+http-access2でHTTPSのコンテンツを読みたいと思い、簡単なテストをやってみたのですがうまくいきません
#!/usr/bin/env ruby
require "http-access2"
print HTTPAccess2::Client.new.get( "
https://www.rsa.com/ " ).body.content
$ ./ssltest.rb
at depth 3 - 20: unable to get local issuer certificate
/usr/lib/ruby/site_ruby/1.8/http-access2.rb:807:in `connect': SSL_connect:: cer
ificate verify failed (OpenSSL::SSL::SSLError)
from /usr/lib/ruby/site_ruby/1.8/http-access2.rb:807:in `ssl_connect'
from /usr/lib/ruby/site_ruby/1.8/http-access2.rb:1125:in `connect'
...
とエラーが戻ります。OpenSSL自体の設定が必要なのでしょうか?
bbbbbbyyy
正しいプログラマの方におうかがいいたします。
以下のscript.rbのように設定ファイルconf.txtを反映するのは邪道でしょうか?
conf.txt
---
# 設定ファイル
Mailaddrs = ["
[email protected] ","
[email protected] ","
[email protected] "]
Datafile = "sample.csv"
Threshold = 2.4
Rang = 1.3
---
script.rb
---
#
# 初期設定ファイル読み込み
f=File.open("conf.txt","r")
f.each{|line|
eval(line)
}
# メイン
・・・・
---
>>611 1行ずつevalすると複数行にまたがってるときにSyntaxErrorになる。
どうしてもevalしたいんなら、eval(File::read("config.txt"))の方がマシ。
定数しかないんなら拡張子を.rbにして、require "config"で十分。
>>612 require より load がいいかもね。
>>604 >patch < debug2.patch
で、パッチが無事にあたったと思うのですが、今度は次のエラーが出てしまいました。
パッチ、うまくあたってないのかなぁ。
Debug2.rb
Emacs support available.
RDE Extention
C:/ruby/lib/ruby/1.8/debug2.rb:798: warning: do not use Fixnums as Symbols
C:/ruby/lib/ruby/1.8/debug2.rb:798:in `[]': 0 is not a symbol (ArgumentError)
from C:/ruby/lib/ruby/1.8/debug2.rb:798:in `suspend'
from C:/ruby/lib/ruby/1.8/debug2.rb:797:in `each'
from C:/ruby/lib/ruby/1.8/debug2.rb:797:in `suspend'
from C:/ruby/lib/ruby/1.8/debug2.rb:111:in `suspend_all'
from C:/ruby/lib/ruby/1.8/debug2.rb:713:in `trace_func'
from C:/ruby/lib/ruby/1.8/debug2.rb:931
from C:/ruby/lib/ruby/1.8/debug2.rb:930
from C:/work/debugtest.rb:1
Completed(1)
ありがとうございます。
初期設定や換算式、評価式はスクリプトの外に出して、ユーザが自由に書き換えられるようにしたいのです。ついでに、作者の手間も省きたかったり。。。
>>612 >>615 定数の定義だけなら require や load のほうがすっきりしますね。
複数行にまたがる eval の使い方はとても参考になりました。大きなハッシュや配列がすっきり書けるようになりました。
>>613 yamlですかー、新しい言葉だ。1.8から使えるみたいですね。勉強してみます。
で、何でこんなことをお聞きしたかと言いますと、先輩格の同僚に「eval はキモい」とかなんだかんだケチつけられてたんです。
その人は、スクリプトというものをあまり知らない感じ。ソフトウェアの技術者ではないのですけどね。
>>617 それより、複数行にまたがる文章の書き方を勉強しないと。
やっぱりこれで eval はキモいでしょ
意味不明
rubyのライブラリgoogleで検索するとmlがトップで引っかかるのやめてくれよ。 普通リファレンスが最上位に来るべきだろ。 こういうことやってるからコミュニティが拡大しないんだよ。 もっと工夫してくれ。不便杉。
>>621 どうすると検索結果で上に持って来れるの?
lispのread欲しい?
意味不明
何僻んでるの?>意味不明厨
site: とか -site: やってないから検索結果が拡大するんだよ。 もっと工夫してくれ。
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ | 君さ、Routes作ったぐらいで浮かれてんじゃねーよ \  ̄ ̄ ̄|/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ( ・∀・) ∧ ∧ < な、なんですか?あなた・・・ ( ⊃ ) (゚Д゚;) \____________  ̄ ̄ ̄ ̄ ̄ (つ_つ____  ̄ ̄ ̄日∇ ̄\|Leaf社PC|\  ̄ ========= \
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ | ・・・誤爆しちまったよ \  ̄ ̄ ̄|/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (;・∀・) ∧ ∧ < な、なんですか?あなた・・・ ( ⊃ ) (゚Д゚;) \____________  ̄ ̄ ̄ ̄ ̄ (つ_つ____  ̄ ̄ ̄日∇ ̄\| ム板PC|\  ̄ ========= \
>>622 メジャーなサイトからリンクを張ってもらいオフィシャルサイトの評価値を高める。
>>626 そんな面倒なことやってられるか。MSを見習え。
\314\265\315\375\244\267\244\306\273\310\244\246\244\312
\223\307\202\335\202\303\202\347\202\242\202\346
勝手にパクったPerlの仕様を「後悔した」とぼやきながら 我の仕様として定着させているRubyは先人に失礼極まりない。 このことを見て見ぬフリしている、いや、見ようともしない人びとに 私は呆れている。
だれかマッチ持ってきてー
粗悪な燃料なので着火しません
>>633 焚きつけてみるテスト。
>我の仕様として定着させている
具体例は?
ガソリン持ってきたのだけど、もう遅かったようだ。
Rubyぱくっていい?
どこの方言ですか?意味は?
>>640 ハクるっていうか普通みんなソースカスタマイズして使ってるよ。
デフォじゃ使い物にならないからね。
645 :
デフォルトの名無しさん :03/10/18 16:20
rubyでhttpproxyを作りたいのですが、Net::HTTPを使うと、例えばGETメソッドの 場合、データを全て読み込んでからでないとブラウザに転送できないと思うのですが、 逐次ブラウザにデータを転送する方法はないですか? WEBrickのhttpproxy.rbを見たのですが、Net::HTTPを使っているようです。 自分で実装するしかないのでしょうか?
>>633 $_とか$&とかな。
俺はPerlでは$_はよく使うが、$&(等の正規表現系)は殆ど使わない。
1.8になってようやく代替機能が揃いつつあるようだが、
まつもとはこの仕様を拝借する時何も考えなかったのか?
>>645 リファレンスマニュアルちゃんと読んだ?
> get( path, header = nil ) {|str| .... }
> (中略)
> ブロックとともに呼ばれた時はエンティティボディを少しづつブロックに与えます。
>>647 はぁ・・・
メクラでした。すみません・・・
>>640 elseif rubyでも作るつもりだろう。
Ruby は Post Perl になれるかな。
>>649 いや、新しい言語 emerald を作るとみた
ルビーと同質の鉱石としてはサファイアのほうが適してると思うけどね
druby,eruby,jrubyがあるから残りのrubyを埋めていくのはどうだ? crubyはpythonみたくmatz版c言語実装のrubyということで残りは22個.
そのうちdjbrubyが出てくる罠
zrubyは補完がすごいとか
aruby 玄人向けなRubyです bruby バイナリ版Rubyです(突っ込み禁止) fruby フリーなRubyです gruby グローバルなRubyです hruby えちぃRubyです iruby インターナショナルなRubyです kruby KDE上での動作に特化したRubyです lruby Rubyのライブラリです mruby まつもとゆきひろ的Rubydesu nruby nVidia版Rubyです oruby オープンなRubyです pruby PerlライクなRubyです rruby リモート操作用Rubyです sruby セキュアなrubyです truby とみながたけひろ的Rubyです uruby 利用価値の高いRubyです vruby Ruby仮想マシンです wruby RubyRubyです xruby XなRubyです yruby 卑猥なRubyです zruby Ruby-zipです
nVidia版ってなんだよ。
ビデオ制御が強いです
日本発の言語なんだから、「あruby」〜「んruby」も欲しいな。
>>661 それだったら「いruby」〜「すruby」っしょ。
酢っぱい。酢っぱい。
かruby ごruby
,,.、 _、、 / };;゙ l )) . ,i' / / ミッフィーちゃんが666げっとずさー ;;゙ ノ / ,r' `ヽ、 三 ,i" ゙; 三 !. ・ ・ ,!''"´´';;⌒ヾ, (⌒;; (⌒;; x ,::'' |⌒l゙ 三 (⌒ ;; `´"''ー-(⌒;;"゙__、、、ノヽ,ノ
kまでググったら aruby bruby cruby fruby gruby kruby はあるようだ。つかれたので後はよろしく。
かるび
ぬrupy
_,. -──=ニヽ、 /レ'´ `ヽ、 //● / , ,、 ヽ ヽヽ ト、 /7O j_ノ_/ハHl、_j l lN 〈7イ ´|/l/ `ヘノ} jrく)j r‐ヶハl c⌒r─ォ⌒c,ハヽ〉 わはー るby Y//,ハ>、j>l、_ノ.イレ1l レ′ \l l//` ` ̄´ j l レ' _>′r。~。ヽ レ'´ (__ゝ、<ゞニア< | \`^^´ l `ーr-、ノ し′
キレる17歳が落ち着いたかと思えば、 (全世代がキレてるから特に取り上げられないだけだけど) 今度はキレる言語だ。 最近、何かと言語間の問題が目につく。 Rubyに関して言えば、パクリの問題。まぁ、あれは普通に許せない。 あと、二番煎じぽかったり、 オブジェクト指向だったり、それに付加する関数型・イテレータetc... Rubyはパクリ行為に全力を注いでて、色々反感買ってて、 でも、日本人のRubyに対する態度は落ち着いてて、反感買って。 もうよく分からない。何に頼ればいいのか。少なくともmatzには頼れない。 パクリ犯罪なんてあり得ないと思ってた。あり得てしまった。 言語を設計する野郎がキレてて、それを信者は崇拝し、まるで宗教で・・・。 そんな言語あり得ないと思ってた。あり得てしまった。 いっそRubyなんてなくなればいいと思った。 そうすれば俺を付きまとう様々な痛手も消える。
いやー、しかしそれでもオブジェクト指向のPerlなんつー奇妙な物いじらされるよりは幾分ましだと思わないか?
671ってなんかのコピペっぽいけど実際どうなの?
付きまとう様々な痛手って何?
昔からあるせいでcrubyとか載ってない罠
連絡してくれと書いてあるんだから連絡してやれ。
678 :
デフォルトの名無しさん :03/10/19 05:19
なんか、よくわからないところでSegmentation faultが起こります。 毎回毎回違うところです。 スレッド関係でしょうか? Rubyでは、Ruby自体のバグ意外ではsegvらないと聞いたのですが
>>678 そういうのは ruby-list にソース付きで投げてくれ。
再現できれば誰か直してくれるから。
>>678 おそらくGC関係だね(スレッド関係と言えなくもないが)。
ちゃんとバージョンやプラットフォームの情報をつけた上で、
>>679 の言うように
MLに投げてくれ。
>>672 幾分ましというか、こっちの方がいい。
オブジェクト指向のPerlなんてPerlじゃないと思うんだけどなぁ
あと
>>671 がいってるイテレータつーのはイテレータブロックのこと?
あれはパクったの?
LWP並に整備されたネットライブラリが出来たらRubyを本格的に使うつもり
>>679 >>680 レスありがとうございます。
WEBrickやらSOAPやらDBやら弄ってて環境がややこしいので、
なるべく小さな再現コード探してるのですが趣味プログラマなんでよくわからんです・・・
バージョンはruby 1.6.7 (2002-03-19) [i386-linux]
protocol.rb:461→rb_mark_tbl
timeout.rb:33→rb_mark_tbl
http-access2.rb:1079→rb_gc_force_recycle
の後でsigactionがおきてます。
やっぱ、ML入ってソース丸々出した方がいいですか?
コランダムってどうよ
>>683 バージョンが古いね。
直ってる可能性があるので、1.6.8 や 1.8.0 で試してみては。
>>681 ってか、ruby厨がありがたがってる機能でrubyならではのものなんてないし。
パクリ元の言語では、ごくあたりまえに使われるがな。どれも。
ってか、matzはパクリって認めてるのに、
無知なマンセー厨が勘違いしてるだけってのも。
matzのおじさんはいいなぁ。 あの田舎からあっちこっち遠出するのが大変だろうけど、 どこに行ってもRubyの作者として称賛されるんだから。 自ら趣味として初めたRubyの開発が今は仕事なんだから。 それを続けてれば人生安泰なんだから。 あー、うらやましい。
むしろかわいそう
IT土方として仕事を嫌々させられ、上司にはどやされ、部下からは馬鹿にされる悲しい中年プログラマの
>>688 の姿が目に浮かぶようだ。
>>687 みんなパクリって知ってるけど、
それらが全て絶妙なバランス感覚でブレンドされてるのがいいのよ。
便利で有名な機能を、わざわざ外して利便性を損なう理由もない。 awkはsedをパクって、perlはawkをパクったんだとしても、それはそれで便利だからイイじゃん。 パクったって言い方は、なんか悪意を感じてヤだな。
パックンチョ
全ての言語が多言語からの「パクリ」を一切禁止されてたら、 さぞ不便だろうな。つーか、発達してないと思うけれど。
パクリ批判してる人ってどんな言語を使って開発してるんだろ。
brain fuckだろ
unlambda とかじゃない?
>>693 ,695
そうそう。誰だよパクったとか言ってRubyを悪者にしてんのは。他の言語の
便利でスタンダードな機能をパクることは、立派な転用術と言えるのですよ。
とはいえ、私憤しているのは、立派に転用しておいて「後悔した」はないだ
ろうということです。堂々と転用すればいいものを「後悔した」と言いだす
から不潔になってくるのです。つまり、後悔しているのならすぐに仕様から
外せばいいのです。というと、おそらく何処の誰かが「Rubyの互換性」を主
張してくるでしょう。しかし、matzのおじさんのいわゆるイエス様の一声で
すべてが決まる世界ですから、いつでもサッサと外せばいいのです。誰も文
句なんか言いません。
にもかかわらず、なぜそうしないのか。そこには二面性があるのです。一方
のまともなRubyユーザーに対しては「本意じゃないんだ。後悔しているけど、
あれだけPerlが広まっているのだから真似するのは仕方なかったんだ。恥じ
ているんだ。本意じゃないんだ。わかるだろ?だから許して」と弁解をしな
がら他方のPerlユーザーには「ほら、$_ もあるから心配ないヨ。Perlなん
か捨ててこっちこいヨ。正直言ってRubyは完全にPerlの上いってんだから。
ほらほらこっちこっち」と、蒔かれた餌を食べようかどうか迷っている小動
物を見守るかのような視線で手招きをするのです。
立派に転用しておいて弁解する。そこからは薄汚い思索が感じられるのです。
まぁRiteで一旦リセットできるからいいんじゃないの?
javaの構文なんざほぼC++だしな。 既存にある有名な言語の構文を真似るのは、 覚えやすいしいいと思う。
Riteマダ?
そんな暇な奴matzぐらいしか居ないっての
おまえらまったりしすぎ
>>702 C++ は親のコンストラクタ呼ぶのが面倒
708 :
デフォルトの名無しさん :03/10/20 21:28
ハッシュのキーにSymbol(:hogeとか)を使う意味はなんですか?
>>705 もうしばらくしたら、1.8.xはなかださんか誰かに任せちゃって
matz氏は1.9/Riteに専念したらいいのに。
とか思ってる人って他にいないのだろうか。
早速ゆきひろに進言してたもれ
ゆきひろとひろゆきってよく間違うよね
715 :
デフォルトの名無しさん :03/10/20 22:35
Symbolはimmutableだし
>>708 ・(注意深く扱えば)アクセスが速い
・(注意深く扱えば)メモリが少なくてすむ
・(注意深く扱えば)分かりやすい
不注意に使うと何もかも台無しだがな
Symbolって何で軽いんだっけ?
:symbol.object_id == :symbol.object_id
720 :
デフォルトの名無しさん :03/10/20 23:54
代入 (=) って返り値もってるんですか? っていうか、メソッドって全部返り値もってるんですか?
全部持ってます
def a
return
end
p a #=> nil
空の return は nil なのか。
>>720 代入はメソッドじゃ(ry
symbolのidって不変? これってhash値になるの?
>>722 def hoge=(arg)
@hoge=arg
end
こういう奴をいってるんでない?わからんけど。
の前にこれはメソッドに分類される?
>>725 まあな。
いや読んでねえよ
727 :
デフォルトの名無しさん :03/10/21 05:46
>>722 見て思ったけど
メソッドと変数に同じ名前をつかったら、困るな。
>>727 なので、なんか警告出すのはどうか、という意見もある。
どういう条件で出すべきなのかが難しいんだがな。
「同じ名前を付けたらエラー」でいいと思うが…
730 :
デフォルトの名無しさん :03/10/21 14:54
実行する前に、ケアレスミスをチェックしてくれるツールがあると便利なんですが。 そんなのないですかね。 たとえば、まだ作ってない、オブジェクトを使ってる(変な変数がある)だとか endで閉じてないよ、だとか スペルミスじゃない?とか あと、クラス名が大文字で始まってないよだとか。。 あると結構便利だとおもうのですが。
a がメソッドか変数かを見分ける方法はある?
つーかいいかげん変数を宣言付きにしてくれよ
脳内宣言で我慢しろよ
/.のコピペですかおめでたいですね
737 :
デフォルトの名無しさん :03/10/21 20:52
'A'..'Z'をランダムに返す関数ってどう書くの?
>>737 class Range; def rand; self.to_a[Kernel::rand*self.size]; end; end
>>739 Rubyって全然オブジェクト指向じゃないね。
>>741 (?A..?Z).atRand
…な〜んてねw
5年前から煽りのレベルが進歩しないねー。回答し尽くされてる。
なぜ Ruby は文字リテラルの結合ができない? irb(main):001:0> { "foo¥n" irb(main):002:1> "bar" => "baz" } SyntaxError: compile error (irb):1: odd number list for Hash (irb):2: syntax error "bar" => "baz" } ^ (irb):2: syntax error "bar" => "baz" } ^ from (irb):2
"foo\n" のあとで改行入れなければつながりますが何か。 c なんかと違って ruby では改行がある程度意味を持つのに そんな文句をいうのは筋違い。
>>745 意味無いじゃん
俺がCで文字リテラルの結合を使うシチュエーションは、間に改行が挟まるときくらいのものなのだが、
printf(
"This program is free software; you can redistribute it and/or modify¥n"
"it under the terms of the GNU General Public License as published by¥n"
"the Free Software Foundation; either version 2 of the License, or¥n"
"(at your option) any later version.¥n"
);
Ruby はこういう使い方ができないと。
>>746 たとえば
printf(
"%s",
"foo"
);
とかがエラーになるというなら「そういうもんか」と諦めもつくんだがな。
a = "a" "b" これの結果 a == "ab" になってもいいなら採用可能かもしれんから devにでもなげたら?
>>746 できないかどうか聞いているのに、文句をいうのは筋違いというあんたが筋違い。
>>748 何言ってるのかわからん。諦めずにがんばれ。
>>744 たぶん Ruby 使いはそういう場合にはヒアドキュメントを使うんだと思われ。
>>750 文句でない可能性はあっても、できないかどうか聞いていることはありえない。
>>751 がんばるよ。
「上に書いた二つのprintfのうち片方は通って、片方は通らない。この違いはなぜ発生
するのか?"("の直後で改行可能なら対応する")"まで改行可能でもいいんじゃないの
か?『文が続いてるっぽい所では続いてるとみなす』という方針なら。」
ということが言いたかった。分かりづらくてすまん。
>>753 同意というか、できないかどうかはすでに明らか。
>>753 なぜかを聞いているんだね。結論に変わりはないがスマソ。
ruby-dev に投げました。
"abcd"\ "efgh" は出来ないっけ?
別に+で足せばいいように思うけど。
漏れも最初のころは、 if condition_a || condition_b || condtiion_c then とは書けなくて、 if condition_a || condition_b || condtiion_c then みたいに書かなきゃいけないのに違和感おぼえたよ。
「漏れ」ってどういう意味?
恥ずかしながら、文字列リテラルの結合って初めて知った。
漏れと結合しませんか?
ウホッ!
here document使わないの? ところで、here document内の改行は \r\nになるの? \nになるの? どっち?
ヒアドキュメントがインデントできたらなぁ。
\nらしい
ヒアウイゴーアゲイン
>>765 メチャメチャ強引に
eval <<FOO.gsub!(/^ /, '')
def hoge
puts <<-BAR.gsub!(/^ /, '')
hoge
BAR
end
FOO
hoge
eval呼ぶ時点で糞
>>769 んー、違うよー。eval はただの例示のつもり。
gsub! を使うところが言いたかったところ。
>>759 あー、それ俺も思ったわ。
あと妙に整合性がない所だと、数値リテラルの区切りに '_' が使えるけど、
0x_FFってのは駄目なんだよな。上位桁をはぶんちょしない自動生成でハマった。
中学や高校の数学で、方程式を途中で改行しなけりゃならないときには、 演算子を行末に置かないように、って習ったからかな。
>>772 それは数学論文の組み方とまるっきり逆だぞ。
紙に改行する場合はページを跨ぐこともあるから、
式が続くすることが分かるように演算子は行末に書くもんだ。
行指向言語だな 昔のVBと同じだ
今さら何を>行指向
ぬ、ナナシゲットされた
>>773 演算子の後で切るってのはCのスタイルガイドでもそう。
>>774 今のVBも同じだろ。VBは行末に二項演算子やカンマがあって続きがあることが
明白でも、 _ で行継続しないとエラーになるね。
777 :
デフォルトの名無しさん :03/10/24 00:08
aaa.bbb.ccc.dddがxxx.yyy.zzz.www/pに属するかどうか判定するモジュールとかありますか?
さっぱりわからん 宇宙人ですか?>777
ナナナゲット
宇宙人キター
782 :
デフォルトの名無しさん :03/10/24 00:15
192.168.10.4が192.168.10.0/24に属するかどうか判定するモジュールとかありますか?
ツッコミまくりな割には誰も知らないんだな
784 :
デフォルトの名無しさん :03/10/24 00:25
Ruby原作者のまつもとさんが、日経バイトの記事の中で、20年後はアスペクト指向だみたいなことを書いているが、 何のことだろう? 誰かアスペクト指向について知ってる人いたら教えてくれ。 何かの本か雑誌に解説がないかな?
require 'ipaddr' ip = IPAddr.new('192.168.10.4') net = IPAddr.new('192.168.10.0/24') p net.include?(ip) #=> true
>>783 ワラタ。聞く立場の態度じゃねー。
そんな態度だとよほど親切な人じゃないと答えてくれないよ
>>773 だけど改行後に演算子置くのってプログラミングだと便利なんだよね
SQLだと、項目の追加がしやすいよう「改行後⇒カンマ」の記法を良く見かけるし。
でも、まあRubyはこのまんまでいいけど
789 :
デフォルトの名無しさん :03/10/24 01:30
アスペか。。。。。 ウワーン
玄人指向なら知ってるんだが…
エージェントスミス
>>788 逆にRubyの場合は追加しやすいように [a,] や {1=>2,} が合法になったし
数式はクエリと違うんで項を追加したいということがどれほどあるのかはギモン
>>792 おお、Rubyにも{1=>2,} あるんでしか。
つーか、末尾に nil が無駄に入ってしまうってことになるんではないの?
と思って、 p [1,].size, "\n" とやったら1だった。サンクス
AspectRはまだか?
MixJuiceというと、あのワンダバスタイルな言語か?
RubyのMix-inとどこが違うの?
なんか adviceみたいだな。
複数の人で作るようなでっかいプログラム作るときに便利って事? < アスペクトとかいうの
ノー
いや、普通にべんりだろ。
BeatleJuice, BeatleJuice, BeatleJuice...
西川のりおキタ━━━━━━(゚∀゚)━━━━━━!!!!
グレートチキンパワーズ
807 :
デフォルトの名無しさん :03/10/25 16:25
グサーンキタ━━━━(°∀°)━━━━!!!!
808 :
デフォルトの名無しさん :03/10/25 16:25
どんな印刷やねん。
なんで答えなきゃいけないんだよバーカ。
そりゃそうだ 黙秘権は正当な権利だよ
質問です。 Linux でファイル所有者の権限で動くよう、rubyのファイルに -rwsr-xr-x を設定して実行したんですが、 Process.euid がファイル所有者の権限では動作してくれません。ログインしたユーザ権限で実行されます。 なにか必要な手順があるのでしょうか? # ↓uid.rb。ファイルは -rwsr-xr-x で uid は909。 # コレをuid 500の奴が実行するとuid、euidどちらも500で動く。euidだけは909になって欲しい #!/usr/bin/ruby print "uid: ", Process.uid, "\n" #=>500 print "euid:", Process.euid, "\n" #=>500 # perlでは同じ状況を作るとできる事を確認 # ファイルは -rwsr-xr-x で uid は909。 #!/usr/bin/perl -U print "uid :$<\n"; #=>500 print "euid:$>\n"; #=>909
ruby自身がsetuidされてないから無理。 suidruby作るか、他のsuidされた外部コマンド経由で呼ぶか。
>>797 Mix-inとMixJuiceは違うよ。
Mix-inは、Javaでいうと「メソッド定義ができるinterface」というかんじだが
MixJuiceの機能は「Classを分割して定義できる」ことであり、これはRubyでは
あたりまえのようにできること。
Rubyでは既存クラスに対して別ファイルで機能を追加することが簡単にできるけど
これをjavaで可能にしたのがMixJuice。
>>814 マジっすか (;´д`)
たしかにperlもsuidperlとかいうのをインストールしたらできた気がする
ありがとうございます
あっ、よくよく考えたらsuidruby作るのってrubyのmain関数あたりで setuid(geteuid()); の行を付け加えるだけ? 簡単そうですな、やってみよ。
>>818 もっと考えた方がいいと思うが、自分だけで使うならいいか。
820 :
デフォルトの名無しさん :03/10/26 15:05
Cygwin + Apache 1.3.28 + ruby for cygwin 1.6.8 です。 Ruby で CGI を作ったんですが、ローカルとサーバーでの動作が異なって困っています。 Apache 1.3.28 + rubywin 1.6.8 で、正常に例外捕捉できていたものが、 上記環境とサーバーでは例外捕捉されず、スクリプトが中断してしまいます。 どうすればよいのでしょうか?
822 :
デフォルトの名無しさん :03/10/26 15:16
>>820 ちなみに、どこのサーバーなのか教えてくれますか?
823 :
デフォルトの名無しさん :03/10/26 15:17
ruby でのcgi開発って、parse error も表示してもらえるように、 begin // ライブラリの読み込み処理 rescue Exception // エラー表示 end なんてやるのが定番だと思うんですけど、どうでしょう
>>821-823 早速のレスありがとうございます。
例外はStandardError以下に自分で例外クラスを決めてraiseしたりしてるんですが、
raiseしたところでストップしてしまうようです。
サーバーは今レンタルさせていただいている無料サーバーと、
友人が立てている Debian + Apache1.3.28 です。
あと、ローカル(前述の環境)で試しても捕捉されず停止します。
>>823 そうしてるんですが、捕捉されません。
以前補足できていたときも、paese error は 500 エラーになってました…。
apache のエラーログには何も吐き出されません。 関係ないエラー warning: escaped terminator '"' inside string interpolation は出ますが…。 これは "" の中で " を表示させるために \ でエスケープしてるために出るエラーなので、 回避の必要はないと思ってますが、ダメですか?ダメなら %Q とかですか…。
解決しました。捕捉側のプログラムミスでした。 ところでその修正過程で別な問題が出たのですが、 begin / while / for / until などの構文内で定義した変数及びインスタンスは、 その外部からは見えないんですか?代入による書き換えは見えるようですが…。 例えば -- i, j = [0, 0] while i < 10 array[i] = Array.new while j < 5 array[i][j] = " " j += 1 end i += 1 end -- みたいにして多次元配列を作って、外部から -- array[i].each_index do |num| end -- みたいにアクセスすることはできないんですか? …undefined method `[]' for nil:NilClass エラーになってしまうんです。
array = Array.new(10) { Array.new(5, " ") } でいいんじゃなかったかな。
ごめん、
>>828 てけとーにレスかいてしまった。
ヘルプで変数のスコープのところを読んでみるといい。
ブロック内で定義したら、ブロック抜けたときに初期化されちゃうよ。
>>830 個数が起動時によって異なる場合、解決策はないですか?困った…。
W*H の二重配列を作りたいなら、 W=5 H=10 a=Array.new(W){|i| Array.new(H){|j| i*j}} p a #=> [[0, 0, 0, 0, 0], [0, 1, 2, 3, 4], [0, 2, 4, 6, 8]] これでよいのでは?
例にあげたのは W = 5; H = 10 ではなくて、W=3; H = 5 でしたー。
for 構文を使うしかないのでしょうか?for 構文はブロックを生成しないんですよね。
>>832 なるほど、こんなやり方もあるんですね。ありがとうございます。
Ruby使いはロビイスト
>>834 ブロックの外 (前) で array を初期化しとけば?
>>819 たしかに。よく考えたら汎用的じゃないんですよね。
しかも、suidruby作ろうにも1行付け足すだけじゃ無理だということがわかりましたし。マンドクセ…
作ってるものがCGIなんで、apache のsu_execに頼ろうかと思ってます。
アドバイスさんくすです
>>838 Cでスクリプトを起動するプログラムを書いて、そいつをset-user-idするのが簡単。
841 :
デフォルトの名無しさん :03/10/27 00:42
1.8(or 1.6)の.chm版ヘルプってないの?
./configure --program-prefix=s でインストールして chmod する方が簡単では?
>>842 それだけじゃチェックが甘いので、こういうのを使ってる。
----BEGIN BASE64----(sruby.diff.gz)
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 wBSqi1tyAcmQXEPFef0v4pdoEGcaAAA= ----END BASE64----
>>842 >>844 ruby自体を変えてしまうのはなぁ…。
他のサーバにそのCGI持ってったときにrubyもコンパイルしてねってのがね。
apacheのsuexecはuidが100以下のユーザだと実行できないので却下になりました
>>840 の方法でやろうと思います。…マンドクセ
rubyと関係ない話題ですね。以降放置でおながいします。
うわぁ まじめに全部読んじゃったじゃんか
>>847 心温まらねえよヽ(`Д´)ノ ウワァァァァーーーーーーン!!!
perlのソースと比べて一億倍読みやすいって本当ですか? 俺がperlのソースを汚いって思うのはどんなことかというと ・正規表現とか文字列内置換とか入り混じっててメタ文字連発でキモい ・変数が型無しなので混乱しやすい ・奇妙な演算子が一杯で覚えるのも大変 なんですが…この辺rubyではどうなってるんでしょうか
>>851 一瞬、インタプリタのソースコードの話かと思った。
確かに、perlのソースコードよりもrubyのソースコードのほうが
一億倍読みやすいな。
そうじゃなくてそれぞれの言語で書かれたスクリプトの読みやすさと
いうことになると、そんなもん書き方次第だろう。
>>851 の言ってるようなレベルでは、PerlもRubyも大差ない。
ただ、Perlは読みにくいスクリプトを書いてしまいがちな言語であり、
Rubyは読みやすいスクリプトを書きやすい言語だとは思う。
平均を取って一億倍の差がつくってほどじゃないけどな。
>>852 あーそういう事なら納得です。thx
というか、今調べたら一億倍というのはコードの話でした。すんません
一億倍は嘘だな。
Perlはきれいに書こうと思っても書けないし、それはPerl道からはずれる。 Rubyはきれいに書こうと思えば書ける。Perlのように書こうと思えば書けるがね。
RubyでもJavaでもそうだけど、なんでもかんでもオブジェクトに してしまうとかなり開発効率落ちない? 標準関数なんかは無理にオブジェクトにしなくたっていいと思うんだが。 C++とかPerlみたいなオブジェクト指向を強制しない言語の方が 安心感があるよ。
あっそう、で?
Rubyはふつうに手続き型言語のように書けるけど?
実行効率はともかく、開発効率が落ちると感じたことは無いなあ。 単にオブジェクト指向が理解できてないだけなんじゃない?
なんでもかんでもオブジェクトな Smalltalk は 開発効率めちゃくちゃ開発効率が高いですね。
なんでもかんでもオブジェクトなSmalltalkを使う人は日本語めちゃくちゃですね
オブジェクト指向といっても中途半端なオブジェクト指向って逆に使いにくいよな。 C++などの中途半端なオブジェクト指向は最悪 Smalltalkは使ったことないから知らないけど
>>861 なんでもかんでもオブジェクトなのはRubyも一緒。
Smalltalkはなんでもかんでもメッセージ送信なのが特色。
(テンポラリ変数の宣言とグローバル変数以外への代入を除く)
だから開発効率めちゃくちゃ開発効率が高いのさw
まあ、オブジェクト指向が使いやすいと思うかどうかってのは人によるのではないかと。 漏れ的には簡単なプログラムを組むぐらいだったら C とか perl の方が使いやすいし、 ちょっと規模が大きくなるようだと ruby の方が使いやすい。 オブジェクト指向の言語って標準ライブラリ使ってナンボって感じがあるからね。 大きなプログラム書くときでないと、どんなライブラリがあるかなんて調べる気にもならないし。 簡単なプログラム作るときは、頭使わない分 perl とかの方が楽
>>863 C++はマルチパラダイム言語でOOPLを目指したものじゃない。
OOPもできるしそう使うのは勝手だけれど、C++になじまない俺OOPを
勝手にイメージしといて使いづらいと文句をいうのはお門違い。
Javaは文法をC++に模しただけで、中身は別物。
Rubyは作者自らOOPLであると公言してはばからないから
OOPしにくいと感じれば文句はどんどん言えばいい。しかし…
Smalltalkでコードの一片も書けんでよくC++のOOP云々ができるもんだ。
手続き型言語だと c(b(a())) なのがオブジェクト指向型言語だと a().b().c()。 読みやすい。 オブジェクト指向型でも CLOS なんかはまた別。
(c (b (a)))
がいしゅつな話題を飽きもせずによくもまぁ・・・
>>868 Smalltalk や Objective-C は?
>>870 「がいしゅつ」って?
既出(きしゅつ)の間違いじゃないのかい?
>>866 >C++になじまない俺OOPを勝手にイメージしといて使いづらいと文句をいうのはお門違い。
この辺りがよくわからないけど、言いたいことはとにかく、
JavaやRubyに比べてC++はOOPしにくいなって話です。ちょっと
>>863 は言葉が悪かったですね。
まあ、そう思ったのは、
>C++はマルチパラダイム言語でOOPLを目指したものじゃない。
コレを知らなかったわけだからですけど。無知なもんで。
>>871 a b c
ってか、レシーバ指定してないし! ホントにふだんから
オブジェクト指向してるの?
>>868
this.a().b().c() か a.b().c() と思ってくれ。
>>873 Rubyなんてしょっぱい言語でOOP分かった気分に浸ってないで、
OOPの変遷や種類を勉強しろって。メッセージパッシングメタファなのか、
手続きによるデータの抽象化手法なのか、型によるデータの抽象化手法なのか
それらを越えた関数型アプローチなのかとか。クラスベースなのか、
インスタンスベースなのか、それらを超越した関数型…(ry
Programming in Logic マンセー
作りたいものを作れれば正直なんでもいい
>>872 皆さんそのことはご存知ですのでお気になさらず
[[a b] c]
(((a))) ; b cは名無し
>>876 は関数型を無闇にありがたがってる臭いがするな。
どのへんが「超越」してるのか説明してみて欲しい。
Programming in Logic マンセー
>>876 の言う関数型言語は Lisp や Scheme の系統なのか
Haskell や Clean の系統なのか
普通のプログラマにとっての思考や常識を超越してるんでない?
文が値を持つのは楽でよい
大体Rubyで大規模なプログラムなんか組まないだろ。 スクリプトってのは書き捨てプログラミングの用途が多いんだから 本格的なOOPはそんなに必要ないのでは? まーでも大人のおもちゃとしてはいいのだろうな。
>>882 は関数型を無闇にけむたがってる臭いがするな。
どのへんが「超越」してるのか説明してみてやってもいいが、
その前にお前が、OOの何たるかを語るに必須かつ基本の
- message passing metaphor
- abstract data type vs procedural data abstraction
- class-based vs instance-based OO
の3つのレイヤーついてどのくらい理解できているのか端的に語ってみろ。
念のために言っておくが、googleじゃ答えはすぐでてこんぞ。
>>890 は
>>889 を無闇にけむたがってる臭いがするな。
どのへんが「偉そう」なのか説明してみて欲しい。
さて、それでは、 Ruby の話題に戻ります。 ↓どうぞー。
1.8.1まだー
連休中に出るかのぅ。
2.0まだー
1.9ってとばしてもいいんじゃないのかなぁ 普及するかどうか分からないなんて言ってるくらいだし
>>889 ほとんど理解できていないので拝聴させてください。
>>900 関数型言語の話は関数型言語のスレでやればいいでしょ。
>>895 明日ようやくpreview1だ。少なくとも次の連休には出ない。関西O+Fもあるし。
>>896 あと数年待て。
>>891 「説明してみてやってもいい」「語ってみろ」
というあたりが偉そう。
関数型言語は好きだからけむたくはないが、
>>889 のようにむやみに
偉そうな香具師は確かにけむたい。
実際とっても偉い人なんだよこの愚民
904 :
デフォルトの名無しさん :03/10/29 20:52
プロバイダでruby使えるんです xmlパーサー使いたいけどモジュールインストールされてません ファイルをアップロードして requireとか出来ないんでしょうか?
全然けむたくない。
>>904 pure Ruby なパーサなら、どっか適当なディレクトリに設置して、
プログラム側でこんな感じ。
$:<<"設置したどっか適当なディレクトリ"
require "XMLパーサー"
>>889 だからあなたの言う関数型言語はLisp系なのかML系なのか?
Lispです
偉いやつは偉ぶれ。
>>908 すぐ分かる違いで型付けの強さがあるからな
>>905 数年どころか十数年、ということにはならない……と信じたい。
十数年先も生き残っているなら言語として成功でしょ。
rubikitch引導渡されてる・・・
グルって言葉は, 日本では例の事件以悪い印象を与える語になってしまい
ましたが, Lisp の guru である Paul Graham 氏のページでの Ruby の取り
上げられ方が面白かったので貼ってしまいました(既出ならスマソ)。
ttp://store.yahoo.com/paulgraham/fix.html wimpy: ショボい; scary: キョワい; kludge: 取り繕い, 下手なデバッグ, DQNなパッチ
awkward: ぶきっちょな; dialect: 方言
>>904 REXMLなら100% Rubyだから、ファイルをアップロードして
$: にパスを追加してやれば使える。
クールなコードを読むことは, すごい刺激だ。一クロックの無駄もなく, すべての命令が余計でなく, そして何も不足していない, アセンブラのコード。常識をひっくり返すような, 聞いたこともないようなアルゴリズムと, その実装。 心にダイレクトに, びりびりと感じる。それは共感であったり, 嫌悪感であったりする。「俺はここにいる。コードを書いている」プログラマーの叫びが聞こえてくる。彼らのように, 僕はコードで自己を表現したいと思う。 音楽家が音楽で, ダンサーが踊りで, 小説家が小説で, 自己を表現するように。だから, 本当にクールなコードだけしか他人には見せたくない。センスのない, ただ動けばいいというコード。そんなものはクソだ。捨ててしまえ。 何十, 何百という思考をめぐらし, いくつものパターンを試す。いつしか, コードが自分の思考の一部になってくる。そうしてできた, 最高のコードは, まさに自分の脳の一部なのだ。屑であって良いわけがない。 コードを通して自分の思いをぶつけるのだ。 自分の命を削って, コードに注ぎ込むのだ。
>>920 LispとMLは関数型言語の両極端
同一視する方が間違ってる
まぁPaul GrahamはArcをきちんと世に出してからデカイこと言えって感じだ。
死にたい。
がんばれ。
がんばるな。
がんばらない。あきらめない。
xmlscanってのを入れてみた。requireできましたありがとう。 REXMLはダウンロードサイトに繋がらなかった・・ そしてXMLを出力したいんだけど オススメのライブラリは? DOM形式なら慣れてるんだけど 他のでもいいです。
スクリプトをコンパイルしてバイナリ化するのは2.0まで無理か… 業務で使えねーよヽ(`Д´)ノ
[Ruby]1.8.1 preview1予告 [ruby-dev:21747]にある通り、明日30日午後4時ごろにリリースする。要望、注文、文句、バグレポートなどはお早めに。
exerbはコメントすら削らずに内包してしまうので、コメントの多いプログラムだと予めコメント行を削ってからビルドするだけでも結構サイズ変わってくる
>>931 でも、実行時にコンパイルするのは Exerb でも変わらんよね?
>934 そう。なんでこれが未踏に採択されてるのか不思議 Rubyのインタプリタとソース・必要なライブラリを全部1ファイルに詰め込んで実行時展開するだけでしょう
未踏に採択されたときにはビルド時コンパイルのつもりだったけど、年度が替わるまでにそれが作成できなかったから、しょうがなく実行時コンパイルにした、とか。
* ローディング速度が向上することがあります。 * ファイルサイズが小さくなることがあります。 自信なさげなドキュメントだな・・・未踏に恨みがあるわけじゃないけど、なんでこんなの選んだんだろうってのはやっぱり思う
全ての場合においてファイルサイズが小さくなるわけでないのであれば、 「ファイルサイズが小さくなることがあります」というのは 自身なさげでもなんでもなく、ただ単に事実を言っているだけでは?
>>930 ギャルのパンティおくれ
っていうかおまえだれだ
a=[[1,2,3],[4,5,6]] のような2重配列を行列と考え、転置させる関数 trans(a) を考えよ。 これできますか??
% ruby -e'p [[1,2,3],[4,5,6]].transpose' [[1, 4], [2, 5], [3, 6]] できますかも何も...
あくまで自分で実装するって事なら def trans(a); a.inject([[],[],[]) {|r,i| r.inject(i) {|i,a| a << i,shift; i }; r } end
>>938 このプロジェクトに文句を言っていたら、その他の未踏プロジェクトのレベルはどうなるのかと。
def trans(a); a.inject([[],[],[]]) {|r,i| r.inject(i) {|i,a| a << i.shift; i }; r } end
ありがとうございます。非常に助かります。
def msize(a) b=[] a.length.times{b << []} print "aと同じサイズの空行列は、" p b print "行列aのサイズは、 " [a.length, a[0].length] end a=[[1,2,3],[4,5,6]] p msize(a) こういったパターンでプログラムしてもらいたいんですが?? 全くルビーについてわかりません。 すいません。
はい・・・・ 全くわからないんです。
お願いします。お願いします
つまらん、お前の話はつまらん。
お願いします
954 :
ひみつの検疫さん :2025/01/03(金) 00:51:26 ID:MarkedRes
汚染を除去しました。
宿題なら全くわからないなんてことはないだろ? 授業で関連することをやったのでは?
うるせー。さっさと教えろ。
injectってよく分からんな。使えないと勿体無い??
答えまだ? ガッコ行く前に頼むよ。
学校へ行く時間が分かれば、それまでに書いて……
お願いします。
上の二回の書き込みは僕ではありません。
偽物にしろ本物にしろウザかったから書いてあげない。 こーいう行為を認めちゃ今後も続く者があらわれるから。
>>956 ,958,960,961は僕ではありません
別になぜそうなるかなんてことはどうでもいいんです・・・・
答えだけ教えてください
みんなだって宿題は自分だけでやるものではないでしょう!!
ごめんなさい。正直に言います。 宿題じゃなくて博士論文の一部なんです。 教えてくれたら謝辞に書きますんで、どうかお願いします。
954書いたの誰だ! いちいちAntiVirusが警告出してくるんでウザイよ!
>>964 array.c の rb_ary_transpose() でも読んだら?
>>963 >>964 うへぇ。そんなんでよく修士通ったな。
こんなんで通るようじゃダメポ。
つーか答えならもう出てるだろ。あれでわからんようなら中学からやり直せ。
アイカワラズネタニツラレスギデス
会話のネタがないのでつき合ってあげてるんですよ。
最近は授業に Ruby を採用している学校って多いんだろうか?
ゲーム関係の話題はゲーム製作板へどうぞ。
ああ、あのエロゲが原作の糞アニメのことな
「エロゲ」って何?
たぶん、春画を主体とした自慰を支援するためのソフトウエア。 ダメポは知らない。
もうだめぽ: P2Pのファイル交換ソフトでアプリを交換してタイフォされた男が 2ちゃんに最後に書き残した言葉「もうだめぽ」から。
>>968 が「ダメ」ではなく「ダメポ」と書く必要性はあったの?
>>957 漏れもよくわかんないので、inject 使ってるひとを見ると、すげー、と思ってしまう。
>>979 「だめっぽい」って書こうと思って、あわてて書けなかったらしい。
ていうか、もうRubyの話題やめようぜ。
雑談ばっかりしよう
>>971 某大学では、3年次の授業で使ってたなぁ。
でも「obj.to_s()」とか「obj.length()」とか、コードにやたら
カッコが多かった覚えが…
自分の趣味で(その言語における)非標準的な
スタイルを生徒に教え込むのはやめてほしいものデス。
「デス」って半角カタカナにする必要性あるの?
あるのデスタ!
>>980 折れはinjectを、余計な変数を定義せずに再帰的な処理が書ける。
というようなイメージでとらえてる。それが正しいのかどうかわか
らないけど。配列の各要素の和を求める例を考えるとわかりやすいよ。
1から10までの整数の和をeachで書くと
r = 0
(1..10).each { |i| r = r + i }
となるところ、injectだと
(1..10).inject(0) { |r,i| r + i }
rを外で定義する必要がなくなり、代入もなくなりちょっとすっき
りする。lispで再帰を使うときの気持ちよさに通じるものがあるか
もしれぬ。
再帰じゃなくて反復
>>983 漏れも必要性ないと思うデス。使ってるやつはもうダメポ。がいしゅつだったらスマソ
ノーー ク 亜 == 巴 心 〜〜〜 メ レ
次スレ、マダァー?
injectってなんだろうって思ったら std::accumulateみたいなものか
「デス」って半角カタカナにする必要性あるの?
ないデス
半角にすることによって鋭さを演出するのデス
それは演出の方法を間違っているな。
もう今後は Ruby スレ要らないよね?
>>992 必要性ないに決まってるデス。あんたくどいデス。くどいあんたダメポ。
lisp とかでよくある foldl/foldr だろ
ふーん、foldrとかって lispで一般的な関数だったのか。 一般的な elispの範囲しか知らない俺は、 さきほどウニ板の emacsスレで書き散らされたコード見て ( ゚д゚)ポカーンとしてたよ。
1000
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。