~/.irbrc ってWinだとどこのディレクトリになるの?
>902 "~"がどこに当たるかって話だよね? NT系だと%USERPROFILE% (たいていC:\Documents and Settings\ユーザー名) 9x系は分からん。
>>903 1.9ユーザ発見。
> NT系だと%USERPROFILE%
基本的には%HOME%だけど、1.9では、初期化時に設定されていなければ、
以下の順序で最初に見付かったものをセットするようになっている。
1 %HOMEDRIVE%%HOMEPATH%
2 %USERPROFILE%
3 マイ ドキュメント
905 :
903 :2006/04/19(水) 02:41:50
>904 あり? 漏れ1.8.4(i386-mswin32)だがそれでいけたけど。 ちなみにHOMEを別途設定して、%HOME%に.irbrcを置いても %HOMEDRIVE%%HOMEPATH%に.irbrcを置いても読んでるぽい。(両方に置いたらどうなるかは試してない) ひょっとしてirbが自力更生(?)してるのかな。ソース読む気力無いので後は知らない(ぉぃ) てか%USERPROFILE%より%HOMEDRIVE%%HOMEPATH%が先なのか。スマソ>902
>>905 irbはカレントディレクトリにあるのも読むぞ。
そういうことじゃないか?
x = [[1, 2, 3], [5, 3, 7], [1, 1, 7], [3, 2, 9], [5, 4, 8]] みたいなArrayを p x.sort_ex #=>[[1, 2, 3], [1, 1, 7], [3, 2, 9], [5, 3, 7], [5, 4, 8]] みたいに一番最初の要素のみでソート(重複した場合はソースの順番)したいんですが何かお手軽な方法はありますか? 普通にsortすると2番目以降も反映されてしまいますし def sort_ex self.sort{|a, b| a[0]<=>b[0] } end みたいにすると重複した場合にソースの順番がバラバラになってしまいます
>>907 [[1, 2, 3], [5, 3, 7], [1, 1, 7], [3, 2, 9], [5, 4, 8]].sort_by {|e| e[0]}
>>908 sort_byだと安定じゃないみたいなので907の望むのとは違ってるよ。
ヘルプに載ってた例だけど、下のような感じで書けばいいらしい。
i = 0
ary.sort_by {|v| [v, i += 1] }
でも、i が綺麗じゃないねぇ。
>906 ……その通りですたorz 重ね重ね相済まぬ>902
stable_sort_by実装すればいいやんけ
912 :
デフォルトの名無しさん :2006/04/20(木) 03:02:57
def stable_sort_by self.zip((0..self.size).to_a).sort_by{|e| [yield(e[0]),e[1]]}.map{|e| e[0]} end
zip のところを enum_for(:each_with_index) にするとより変態チックでよいと思います
914 :
912 :2006/04/20(木) 21:56:14
>>913 enum_for知らなかった。こりゃ便利。
def stable_sort_by
self.enum_for(:each_with_index).sort_by{|e,i| [yield(e),i]}.map{|e,| e}
end
enum_with_indexも思い出してあげて。
916 :
907 :2006/04/22(土) 02:07:35
レスありがとうございます 出来ました…が、使ってみてリバースソートできないことに気が付いた…il||li ○| ̄|_ もう少しいじってみます…
- e[0] では?
環境が連続してると勘違いしてんのか
920 :
デフォルトの名無しさん :2006/04/23(日) 16:38:35
↓の2つのクラスのf.puts以外のところを共通化したいんだけどいいパターンないですか? class BBS FILE='bbs.txt' def initialize @db=PStore.new('bbs.db') end def print @db.transaction{ @db.roots.each{|name| x=@db[name] file=File.join(x['dir'],FILE) if(!File.exist?(file),'w') then open(file){|f| f.puts(x['url']) end } } end end class Sure FILE='sure.txt' def initialize @db=PStore.new('sure.db') end def print @db.transaction{ @db.roots.each{|name| x=@db[name] file=File.join(x['dir'],FILE) if(!File.exist?(file)) then open(file,'w'){|f| f.puts(x['title']) end }......
#テキトー。細かい仕様は知らぬ。 class MyPrint #モジュールでも良いかもね def print @db.transaction{ @db.roots.each{|name| x=@db[name] file=File.join(x['dir'],FILE) if(!File.exist?(file),'w') then open(file){|f| fputs f, x } end } } end end class BBS < MyPrint FILE='bbs.txt' def initialize @db=PStore.new('bbs.db') end def fputs(f, x) file.puts(x['url']) end end class Sure < MyPrint FILE='sure.txt' def initialize @db=PStore.new('sure.db') end def fputs(f, x) file.puts(x['title']) end end
922 :
921 :2006/04/23(日) 16:59:33
ミス。fputs メソッドの中身は file.puts じゃなくて f.puts だった。
923 :
デフォルトの名無しさん :2006/04/23(日) 21:47:12
>>920 f.putsのところを別メソッドに切り出す。
class AbstractBBS
def func()
raise NotImplementedError.new # 切り出した部分
end
def print
...
func()
...
end
end
class BBS < AbstractBBS
def func()
# f.putsの処理その1
end
end
class Sure < AbstractBBS
def func()
# f.putsの処理その2
end
end
926 :
デフォルトの名無しさん :2006/04/24(月) 10:56:09
>>925 ありがとうございます
NotImplementedErrorなんてのがあるのか
抽象メソッドが作れるですな
なんかこのスレにウィルスがいるとノートン先生に怒られるなあ。
こんなmail欄ごときに反応してるのか orz
UNIX/Linuxさえなければこんな迷惑をこうむらずにすんだのにな。
vbs反応するから、どっちにしてもかわらんよ
単に、こんなもんに反応するノートン先生が狂ってる。
ノートン先生に感染するウィルスは無いのだろうか
ノートン先生って神経質なマッドサイエンティストっぽいな。
これで相殺
普通に迷惑だからやめてくれ
>>872 忘れかけてた。これどうなった?
>>882 くらいで終わってる感じだけど。
ソース読み切れなくてもいいからさ、確認できた人が報告した方が将来の誰かのためにもなると思うよ。複数の環境で再現できるのが確認できてるわけだし。
>>939 Cygwin だと Ruby に限らずファイル開けないっぽいね。
941 :
・∀・)っ-○●◎ ◆Pu/ODYSSEY :2006/04/28(金) 00:56:55
ActiveScriptRubyならおkじゃね? Cygwin版使うのはApache立ち上げて自作CGIのテストやるとき
>>939 Cygwin 側の問題ならスレ違い
別の言語や別の環境で試してみてくれよ
再現スクリプトきぼーん。
>>939 メンテナが対応パッチまで作ってたから、報告はいらないんじゃね?
946 :
939 :2006/04/28(金) 17:53:39
Rubyで名前付きパイプを扱う方法ありませんか?
どういうプラットフォームで? ext/dl 使えばなんでもできそうな気はする、とは言っておこう。
949 :
・∀・)っ-○●◎ ◆Pu/ODYSSEY :2006/04/28(金) 22:37:07
ActiveScriptRubyなら普通にAPIコールでCreatePipe呼べばいいと思うよ
ぷう
おねにぃさま
Rubyリファレンスマニュアルのwikiの字句構造の埋め込みドキュメントの説明だけど、今時は、もはやRDじゃなくてRDocスタイルを推奨すべきでは?
953 :
947 :2006/04/29(土) 05:31:18
>>948 Linux です
system("mkfifo hoge") で、FIFO作るのはできるんだけど、
opneして、getsで読み込み一回したあとは gets が即 nil で返ってきちゃう。
あと、書き込み側がopenするまで open() から返ってこないのも・・・
Cで
mkfifo()
open("hoge", O_RDONLY|O_NONBLOCK) した時と同様の挙動をさせたいんですが、
どうすればいいんでしょうか。
>>953 File.open("hoge", File::RDONLY|File::NONBLOCK)
今日のざっと見て3倍の速度(赤い彗星?) 今日のドナドナ夫 今日の黄金水 今日の「やっぱこれからはデジモでしょ」 今日のがまん汁委員会 今日の「あーそうさ.オレらはどうせしもじもですよ.」 今日の「やっぱイジメたいです.とことんまで.」 今日の「最近ヤツの動きが少なくてツマラン」 今日の「tDiaryはモテ系ってマジ?」 今日の「クソババァって誰のことよ?」
>>952 日本の Ruby コミュニティは RDoc 好きじゃないんじゃない?
標準ライブラリには入ってるけど積極的に使ってる人いない気がする
ていうかみんな使い方分かってないんじゃまいか。 いいサイト紹介キボン。
試してないだろ? ちょこちょこ使う分なら、ググった出てくる情報をさっと読めば使えると思うが。 最近は、日本語の説明も見掛けるし。 下手すりゃ RD よか、よっぼど分かりやすい。
RDoc使う利点て何? いや、煽りじゃなくて。 どんな時につかうのかなーと思って。 ソース内のコメントに使う?
ソースから文書を生成できるから。最近の言語にはみんな付いてるよ。使われてるかはさておて。
Rubyのライセンスって、GPLとどう違うの? COPYING読んだら「GPLに基づく」と書いてあるけど、でもGPLそのままというわけではないんだよね。
GPLだと著作権も放棄同然、 BSDだと論文と同じ扱いで著作権は堅持、 この中間で行くってことじゃないの?
>>963 むしろ日本語としては問題ないが意味がわからない。
A=B,B=CなのでA=(B+C)/3
と言ってるようなもん。
どっちかって言うとBSDのほうがゆるいライセンスだと思うんだけどな。
966 :
・∀・)っ-○●◎ ◆Pu/ODYSSEY :2006/04/30(日) 21:03:25
GPLに基づくってのはGPLそのもの。
いちどGPLを選択したら他のライセンスに変更できない融通のきかなさ。
>>965 商用利用考えるなら普通はBSDライセンスのほうが流用しやすい
英文を読んで意味がわからないならCOPYING.jaを読めばいいのに。 デュアルライセンスだからGPLまたは下記のライセンスに従え、と書いてあるだけじゃん。
end end end end end end end ↑これどうにかならない?
969 :
デフォルトの名無しさん :2006/05/02(火) 00:43:59
>>968 スーパー括弧みたいのが欲しいってこと?
begin と end ってのは、大失敗だったと思う。 {と}で良かった。
補完なしでしこしこ作ってるから閉じるのが面倒になってきたんだ end*8 みたいにすると do の数を数えなきゃならないから逆効果 解決方法思いついたけどPythonになった orz
972 :
デフォルトの名無しさん :2006/05/02(火) 01:13:27
endclass, enddef, endif, enddo
ssalc, fed, fi, od
補完とかそういうことが問題じゃないんだ end乱舞は見た目がきもい
} 乱舞は気にならないの?
おまえはきもいだろうが、俺はきもくない。以上。終了。
>>976 end よりはマシ
スクリプト言語だぞゴラァと言いたいためだけに
わざわざbegin end を使っているとすら感じる
vi なので { } でないと辛い。
そこまでネストするプログラムを書く、 お前のヘタレプログラミングをなんとかするか、 Pythonに鞍替えすればいいじゃん。 今更どーこー言おうが、{}にはならんよ。 互換性がどうこううるさいヤツもいるってのに。
>解決方法思いついたけどPythonになった orz おぇっ やめてくれ あの趣味の悪さと中途半端さ、途中でどの言語で 書いてるか判らなくなる文法の汚さは、悪魔の言語
はいはい、貴方が大好きなC系の言語に似てないと、全部汚い文法なんだよねー。
↑自分が低脳晒してるのに気付いてないのね
ネストしないプログラムをかけれるような文法と言語ってどんなんだろう Perlの暗黙標準出力なんかがぱっと浮かんだけど
条件文や繰り返し文がクロージャを引数として取る関数として実装されていて、かつ、無名クロージャを書くことができない文法であればネストしないプログラムを書くしかなくなるのではないだろうか。
テキストでプログラム表現しないこと前提にすればいいんじゃね
RubyはC系じゃない文法だから逆によい。 C系は普段使う/使わざるを得ない古女房。Rubyは誰にもないしょで出会う秘密の恋人。 つまりだな、Rubyは一夫多妻制という教祖の思想を反映した言語だったんだよ!
な、なんだってー(AAry と返してやりたいが、内容はふーんそうでしかないな
endで文句いう人って、対応関係がわからないから文句いってるのかな。 カッコだったら簡単にわかるけど、endだとそれがわからない。 もしそれだけが問題なら、例えばendにカーソルをおくと対応するifやdefをハイライト表示するような、 エディタのマクロやIDEのプラグインを誰かが用意してあげればいいってこと? それ以外に問題点ってある?
ワンライナーが ; だらけで汚くなるとか?
そりゃbeginが残ってendだけ;;にしたら、pythonもびっくりの汚さになっちゃうからねw
>>991 ハイライト表示用の設定ファイル有った希ガス
endが3文字なのに対してbeginが5文字もあるのがバランス悪いと言われる原因 begにしよう
(そうだ、括弧にしよう)
>>994 beginが残ってて…
お前本当にRubyやってんのか?
1000
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。