Ruby 初心者スレッド Part 34at TECH
Ruby 初心者スレッド Part 34 - 暇つぶし2ch369:デフォルトの名無しさん
10/02/10 19:38:19
OneClickInstallerはインストーラー含めて正式版が作られてる
RubyInstallerはまだインストーラー含めてrc版(ベータと正式の中間)

OneClickInstallerで入るRubyはmswin32で作られている
RubyInstallerで入るRubyはmingw32で作られている

mswin32は従来のタイプの「Windows版Ruby」でgemライブラリでは確実にバイナリがある
 古いコンパイラで作ってあるせいか、環境によってはなぜか動作が遅いことがある
 どうせアップグレード時は全消し推奨なんで面倒の少ないこっち使って慣れろという説も根強い
mingw32は今後主流になるもので最終更新日が古いgemライブラリではバイナリ自前コンパイルも
 動作速度が遅くなる報告は少ないが、gemバイナリの自前コンパイル強要はめどい
 サイトのDevelopment KitをRubyを標準インストールしたディレクトリに上書きコピーすればいいだけだが
 あと、mingw32をWindows環境のRubyの印だと認識してないスクリプトがまだあるので手直しが要ることも

370:デフォルトの名無しさん
10/02/10 19:58:39
あああ、なんかわけわからないことに
mswin32 版を使う場合は ActiveScriptRuby のほうインストールしろ
OneClickInstaller 使って数年前の Ruby をわざわざいまさらインストールする必要もない

 ■ とにかく迷いたくない普通の人 … ActiveScriptRuby
面倒がない mswin32 版のみ提供、ActiveTcl を別途入れると tcl でウィンドウも描けるぞ(要Tcl言語知識)
URLリンク(arton.hp.infoseek.co.jp)
1.9.1 を使いたい人は
URLリンク(www.artonx.org)
の「Ruby-1.9.1-p数字 Microsoft Installter Package」を使わせてもらえ
なに、自分のとこだけ妙に処理が遅い? 宝くじ並の外れ環境だからマシン買い換えろ

 ■ トラブっても自分で手直しする根性あるから遅くなる可能性ないほうがいい … RubyInstaller
古いコンパイラ製ではない mingw32 版の提供がメイン
URLリンク(rubyinstaller.org)
古いgemパッケージでWindows環境だとみなしてくれずにコンパイラが走って「make がない」と言われること有り
それを乗り越えるためにコンパイラ環境が入ってる「Development Kit」をインストールしておくのを推奨
URLリンク(wiki.github.com)
上記解説にもあるが、RubyInstallerの標準ディレクトリ構成の場合は上書きだけでよい(設定ファイル記述不要)
7zip でないとダウンロードしたファイルを展開できないので注意
スクリプト内での条件分岐で「mingw32」をWindowsとみなさないものが稀にあるので、それは手動で書き換える必要あり

371:デフォルトの名無しさん
10/02/10 20:08:43
長い

 ・ 初心者は URLリンク(www.artonx.org) の 1.8.7 だけ使え、トラブル起きたらここで聞け

でいいじゃん

372:デフォルトの名無しさん
10/02/10 20:16:28
てか本来は URLリンク(arton.hp.infoseek.co.jp) でいいんだよね

どうでもいいけどこのサイト meta charset と本文 HTML のエンコーディング食い違ってるぞ
見るたびに毎回エンコーディング指定やり直さないといかん

373:デフォルトの名無しさん
10/02/10 20:22:12
先生,「1.8が許されるのは小(ry」と煽ってもいいのはいつ頃ですか

374:デフォルトの名無しさん
10/02/10 20:22:56
1.8.6はともかく1.8.7は数年無理。


375:デフォルトの名無しさん
10/02/10 20:24:29
先生,JRubyが「Ruby 1.9 compatible now」になるのはいつ頃ですか

376:デフォルトの名無しさん
10/02/10 21:00:20
>>369-370
とりあえず Windows で Ruby がめちゃくちゃ面倒糞いということがわかりました
ほんとうにありがとうございました

377:デフォルトの名無しさん
10/02/10 21:01:13
>>375
見た感じ遠い未来に見える。
URLリンク(kenai.com)


378:デフォルトの名無しさん
10/02/10 21:02:47
>>372
それは作者がUTF-8の普及だか何かのためにわざとやってるらしいよ


379:デフォルトの名無しさん
10/02/10 21:08:40
>>377
そもそもなんでそんな時間かかるんだよ
何がネックになってるんだ

380:デフォルトの名無しさん
10/02/10 21:12:04
>>379
Java からも読めるように作ること

Java VM 上で単独で動く ruby インタプリタを作るだけなら
たぶんもっと早くにプロジェクト完了してるんじゃないかな

381:デフォルトの名無しさん
10/02/10 21:55:57
つか1.8.7って鬼車使えるの?

382:デフォルトの名無しさん
10/02/10 22:18:29
黙れカス

383:デフォルトの名無しさん
10/02/10 22:19:06
ごばく

384:デフォルトの名無しさん
10/02/10 22:26:55
>>381
gem install oniguruma

組み込みになるわけではないので制約はあるが。
URLリンク(oniguruma.rubyforge.org)

385:デフォルトの名無しさん
10/02/10 23:22:59
oniguruma を使うようなひとなら mingw とか入れてるような
気がします・・・知らずに joni 使ってるひとも嫌少ないだろう・・・

386:デフォルトの名無しさん
10/02/10 23:49:30
>>381 ってjrubyの話なん?


387:デフォルトの名無しさん
10/02/11 03:58:52
>>384
Requirements
* Oniguruma regular expression library (>= 4.x.x)

ってことは
自分でOnigurumaをコンパイルするか
バイナリをどこからともなく拾ってくる必要があるってことか

./configure
make
make install
で済む話ではあるが

388:デフォルトの名無しさん
10/02/11 22:37:00
irb> p "ねこだいすき"
"\343\201\255\343\201\223\343\201\240\343\201\204\343\201\231\343\201\215"
irb> $KCODE="u"
irb> p "ねこだいすき"
"ねこだいす\343\201\215"

なんだこれ

389:デフォルトの名無しさん
10/02/11 23:22:03
下のようなループってrubyだとどう書きますか?
for (i = rect->lx, j = rect->ly; i <= rect->hx; i++) map[i][j] = TRUE;

390:デフォルトの名無しさん
10/02/11 23:24:17
最近出るようになった気がする。
$ cat test.rb
# coding: utf-8
p 'ねこだいすき'

$ rvm 1.8.7-p72,1.8.7-p160,1.8.7-p174,1.8.7-p249,mput ruby -Ku test.rb
ruby-1.8.7-p72: ruby 1.8.7 (2008-08-11 patchlevel 72) [i686-darwin10.2.0]
"ねこだいすき"

ruby-1.8.7-p160: ruby 1.8.7 (2009-04-08 patchlevel 160) [i686-darwin10.2.0]
"ねこだいすき"

ruby-1.8.7-p174: ruby 1.8.7 (2009-06-12 patchlevel 174) [i686-darwin10.2.0]
"ねこだいすき"

ruby-1.8.7-p249: ruby 1.8.7 (2010-01-10 patchlevel 249) [i686-darwin10.2.0]
"ねこだいす¥343¥201¥215"

mput-head: ruby 1.9.2dev (2010-02-10 trunk 26632) [x86_64-darwin10.2.0]
"ねこだいすき"

391:デフォルトの名無しさん
10/02/11 23:26:15
>>389
jは変化してないけどいいの?
iだけならuptoでよいでしょう。


392:デフォルトの名無しさん
10/02/11 23:41:26
>>391
ありがとうございます!

これをrubyに書き換えて勉強中でした。
URLリンク(racanhack.sourceforge.jp)

393:デフォルトの名無しさん
10/02/11 23:52:42
>>388
URLリンク(redmine.ruby-lang.org)

usa, 2009年12月15日 11:50 AM

string.c (rb_str_inspect): wrong result of UTF-8 inspect because of the mistake of calculation. reported by eban via IRC.

これかな。

あれ、1.8.7-p248 がクリスマスリリースだったはずだが…


394:デフォルトの名無しさん
10/02/11 23:56:35
Iconv::IllegalSequenceを見るのはもう飽きたお…

395:デフォルトの名無しさん
10/02/12 03:35:08
何か一揆にperl5の時代に戻った気がするなw
教祖様が日本語処理ぐらい最初からまともに組み込んでてくれれば。

396:デフォルトの名無しさん
10/02/12 06:07:00
iconvとnkfってどう違うの?
どう使い分けたらいいの?

397:デフォルトの名無しさん
10/02/12 08:13:29
nkfは
- shift_jis, euc-jp, iso-2022-jp, utf-8しか使えない。
- 改行コードの変換ができる。
- カタカナやアルファベットの全角半角変換ができる。
- base64のデコード/エンコードができる。

iconv
- いろんなコードが変換できる。

398:デフォルトの名無しさん
10/02/12 08:28:43
>>372

URLリンク(www.artonx.org)

399:デフォルトの名無しさん
10/02/12 08:33:31
文字コード変換ならiconvが上で
その他機能がnkfにはあると
そういうこと?

400:デフォルトの名無しさん
10/02/12 08:51:30
そもそも文字コード変換に上とか下とかあるんかいな
1.9のencodeとNKF/iconv/kconv/uconvの違いも教えてほしい

401:デフォルトの名無しさん
10/02/12 09:14:29
動作が違うとかは置いとくと
対応してる文字コードが多いほうが上っていうことでしょ

String#encodeはよくわからんが
URLリンク(jp.rubyist.net)

402:デフォルトの名無しさん
10/02/12 09:17:58
encodeは文字列のバイト表現を指定のものに変換したStringを作り、エンコード情報を設定。
encode!は自分自身の持つバイト列とエンコード情報を変える。
force_encodingは自分自身のエンコード情報のみ変える。バイト列はそのままで解釈が変わる。

kconvはnkfをラッピングして文字コード変換のみ、簡単にできるようにしたもの。

uconvはたしか標準じゃないよな?
euc-jp, cp932(shift_jisの亜種), utf16, ucs-4に対応している。
rubyでutf-8が扱えるようになったのはuconv作者の提案したコードがもとになってる。
URLリンク(blade.nagaokaut.ac.jp)


403:デフォルトの名無しさん
10/02/12 09:28:13
>>400
NKFはguessができるので、現在のエンコーディングが何かわからなくても変換ができる
ただ、日本語関連(とMIME)しか認識できないしLatin-1とかの指定もできない

iconvはguessができないので、現在のエンコーディングを正確に(本当に正確に)指定しないと変換できない
そのかわり、NKFではできなかったような文字エンコーディングの値の保持解釈ができる
SHIFT_JISとCP932やEUC-JPとEUC-JP-MSを使い分けられる(可能性がある)のはiconvだけ
ただし、相手のマシンにインストールされている外部iconvのバージョンと対応に依存するのでやや面倒
iconv実装にはでっかい版と小さい版があり、外人産は小さい版だけを使うことが多いのでファッキンガッデム

1.9のEncodingはiconvを使ってる
kconvはNKFを使ってる
uconvはめんどくさいからもう使うな、使わなくても用は済むはず

404:デフォルトの名無しさん
10/02/12 09:36:07
>>401
そのリンクは読んだけど総花的であんまり参考にならなかった

・M17N(1.9)/NKF/iconv/kconv/uconvで変換結果に差が出ることがあるか
・速度の違い
・推測の精度
・使い分けのシチュエーション

がよくわからんのですよ

405:デフォルトの名無しさん
10/02/12 09:38:35
>>403
わかりやすい

406:デフォルトの名無しさん
10/02/12 09:44:20
ってことは,事実上 iconv と NKF の二種類しか変換器は存在しないわけね
でメールみたいに入力のエンコーディングがよく解らん場合はNKF.guessをつかえと
入力のエンコーディングが固定されてる場合はiconvでおkでOK?

1.9のM17Nはguessしてくれてるんだと思ってたわ。

407:デフォルトの名無しさん
10/02/12 09:47:44
> メールみたいに入力のエンコーディングが
のあとに続くのが
> よく解らん場合
なのがショックだ
あれは99パーセントくらいの確率でヘッダに書いてあるまんまだと思うのだが最近は違うんか

408:デフォルトの名無しさん
10/02/12 09:49:41
メールやHTMLが文字化けするのはヘッダのエンコーディングと実際のエンコーディングが違うからなんじゃないの?

409:デフォルトの名無しさん
10/02/12 09:55:24
日本人しか使わないプログラムなのならNKFでいいよ
外国の人も使うならiconv「でなければならない」
MechanizeとかではNKFを組み込んでしまった日本人がいて、その部分がえんえん障害になってる
iso-8859-xはNKFのShiftJISに誤爆することがあるんだが、そのへんの処理を考慮してない


410:デフォルトの名無しさん
10/02/12 09:59:50
>>407
メールの現実を知らなさ過ぎる

411:デフォルトの名無しさん
10/02/12 10:11:38
1.9のencodeは青学の先生のライブラリ(transcode)じゃないの?


412:デフォルトの名無しさん
10/02/12 10:37:03
>>411
URLリンク(jp.rubyist.net)
URLリンク(naruse.biz)
URLリンク(www.sw.it.aoyama.ac.jp)
これか

1.9のM17Nはiconvじゃなくてtranscodeみたいだ
また兄弟が増えちまった
よくわからなくなってきた

413:デフォルトの名無しさん
10/02/12 11:04:08
1.9のEncodingの中の人はIconvだと思ってたIconvの例外出すやんキュピーンやん
と思ってたんだが出なかった
あれー、昔はIconvが例外出してなかったっけ、気のせいか

irb> "①".encode(::Encoding::SHIFT_JIS)
Encoding::UndefinedConversionError: "\xE2\x91\xA0" from UTF-8 to Shift_JIS
irb> "①".encode(::Encoding::CP932)
"?@"


414:デフォルトの名無しさん
10/02/12 11:08:15
うちは大家族ですから^^;
おとーちゃんビシッと言ってやりな

って言うは簡単だけど結構面倒だよね…

415:デフォルトの名無しさん
10/02/12 11:54:27
うっぜぇ変なもん作るなよ
rubyってiconvすら実装されてない糞言語だったのか

416:デフォルトの名無しさん
10/02/12 11:58:46
馬鹿発見。


417:デフォルトの名無しさん
10/02/12 12:15:08
みてみて!
Ruby でクイックソート書いてみた。

def qsort(ary)
  return [] if ary.empty?

  v = ary.shift
  left, right = ary.partition{|e| e < v}
  qsort(left) + [v] + qsort(right)
end

ary.dup とかした方がいいのだろうか。
ま、いいや。

418:デフォルトの名無しさん
10/02/12 12:27:58
irb> Iconv.conv('shift_jis', 'utf-8', "\302\273")
Iconv::IllegalSequence: "\302\273"
irb> Iconv.conv('cp932', 'utf-8', "\302\273")
Iconv::IllegalSequence: "\302\273"

» (&raquo; 、RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK (U+00BB)、終わりギュメ)
を含むUTF-8文字列をIconvでShift_JISっぽい文字列にしたいんですが…

419:デフォルトの名無しさん
10/02/12 12:43:39
>>417
受け取ったArrayを中途半端に破壊してるのは……まあ確かにまずいかも
アルゴリズム的な補足をするなら、単純かつ美しい実装ならそれでもいいけど、
実用上はピボットの取り方を工夫しないといけない

420:デフォルトの名無しさん
10/02/12 12:44:32
irb1.9> "\302\273".encode('SHIFT_JIS')
Encoding::UndefinedConversionError: "\xC2\xBB" from UTF-8 to Shift_JIS

そもそもだめぽい

421:デフォルトの名無しさん
10/02/12 12:58:36
Ruby M17N は transcode という独自実装
Iconvは環境依存な上にWindowsだとないから、Ruby M17N で使うことはできなかった
なお、libiconvのCP932周りのサポートが腐ってるのも致命的だとされた

> そのかわり、NKFではできなかったような文字エンコーディングの値の保持解釈ができる
> SHIFT_JISとCP932やEUC-JPとEUC-JP-MSを使い分けられる(可能性がある)のはiconvだけ

nkf もできるよ

> メールやHTMLが文字化けするのはヘッダのエンコーディングと実際のエンコーディングが違うからなんじゃないの?

そんな根本的に違う指定ってそんなにあったっけ?

422:デフォルトの名無しさん
10/02/12 13:00:01
>>418
変換表に定義されてないんで、変換前に別の文字にgsubするのが正解

423:デフォルトの名無しさん
10/02/12 13:13:10
>>418
422が書いているようにgsubするのもありだが
変換時の戻り値で分岐するというやり方もある
詳細は下記の "Encoding::Converter#primitive_convert" の項目参照
URLリンク(jp.rubyist.net)

424:デフォルトの名無しさん
10/02/12 13:26:50
>>421
実際にメーラーを書いて運用してみたらいい

425:デフォルトの名無しさん
10/02/12 14:06:43
kconvの "\302\273".tosjisでは"\x91\xB9"になるな
エラー出して教えてくれたほうがマシかも

426:デフォルトの名無しさん
10/02/12 17:04:09
>>424
単にCP50221って話じゃないの、それだとguessは悪手なんだが

427:デフォルトの名無しさん
10/02/12 18:29:23
reg2 = Regexp.new("A(.*)CD(.*)EF")
str1 = "AbbccCDasdaEF"
str1 =~ reg2

これで得られる$1と$2をループかなにかで
添字をつけて取得できないものでしょうか?

428:デフォルトの名無しさん
10/02/12 18:55:24
>>427
Regexp.last_matchとか$~のこと?

429:427
10/02/12 19:21:56
>>428
$~がMatchDataってオブジェクトになってるのか
ありがとう、解決しました。



430:デフォルトの名無しさん
10/02/12 19:39:54
>>427
foo = reg2.match str1 とすれば、foo にその MatchData が入る

431:デフォルトの名無しさん
10/02/12 19:54:03
kconvとかnkfの話はrubyと関係ねぇ…

432:デフォルトの名無しさん
10/02/12 20:14:00
kconvは関係あるな
nkfは関係ないがNKFは関係あるな

433:デフォルトの名無しさん
10/02/12 21:08:09
Ruby1.9で勉強していた(>>1を読んでませんでしたorz)のですが、
Railsもやってみたいということで、1.8をインストールしたいです。
ですが、Synaptic(Ubuntuのパッケージマネージャ)に1.8のフルインストールパッケージがありませんでした。
なので公式サイトにあるソースコードからインストールしようと思うのですが、
うまく1.9と共存できるのでしょうか?
宜しくお願いします。

434:デフォルトの名無しさん
10/02/12 21:26:32
1.8と1.9ならおおむね問題はない
ユーザーディレクトリにインストールしても動くぞ

435:デフォルトの名無しさん
10/02/12 21:32:17
ありがとうございます、今やったところ
1.9が/usr、1.8が/usr/local
にたまたまなのか入ったので問題なさそうです。
とりあえずrubyとirbコマンドは1.8で起動するようにしました。

436:デフォルトの名無しさん
10/02/12 21:35:41
へえ、いつの間にか1.8なくなってたのか

437:デフォルトの名無しさん
10/02/12 21:42:43
参考までに、./configure するときに
1.8.7$ ./configure --prefix=$HOME --program-suffix=187 && make install
1.9.1$ ./configure --prefix=$HOME --program-suffix=19 && make install
とすると $HOME/bin/ruby187 $HOME/bin/ruby19 などが出来る。

最近はコマンド一発でruby環境を切り替えられる rvm という便利なツールもある。
(多少不安定だが)


438:デフォルトの名無しさん
10/02/12 22:14:07
このようなデータがある時に、重複したデータ削除したいです。
irb(main):001:0> address = Array.new
=> []
irb(main):006:0> p address
[{"name"=>"taro", "tel"=>"11111111111"}, {"name"=>"hanako", "tel"=>"22222222222"}, {"name"=>"hanako", "tel"=>"33333333333"}, {"name"=>"taro", "tel"=>"11111111111"}]

重複している {"name"=>"taro", "tel"=>"11111111111"} を削除したいです。
調べてみて uniq 使えば良いかなと思ったのですが、違うようです。
わかる方、アドバイス貰えると助かります。

439:デフォルトの名無しさん
10/02/12 22:21:44
uniqでいいように見えるんだけど。


440:デフォルトの名無しさん
10/02/12 22:31:06
>>439
失礼しました。uniq で良かったようです。

441:デフォルトの名無しさん
10/02/12 23:15:20
rsenseってなんですか?

442:デフォルトの名無しさん
10/02/13 00:11:16
Rubyコードを補完してくれるもの
ruby rsenseでググるといろいろ情報が見つかるよ

443:デフォルトの名無しさん
10/02/13 00:27:21
>>442
ありがとうございます.メッセで飛んできて「使ってみたらおもしろいかも」って言われて気になってました.
URLリンク(github.com)
これですね.でもどうやって使えばいいんですか?

444:デフォルトの名無しさん
10/02/13 00:47:08
こいつ自体はファイルとその中での位置を与えると補完候補を返すというコマンドに
すぎないので、好みのエディタのマクロでそれを呼び出して候補を表示する部分は
自作する必要があると思う。


445:デフォルトの名無しさん
10/02/13 03:44:36
>>444
ありがとうございます.Emacs使ってるんで色々みてみます.といってもなんかドキュメント少ないみたいですが;

446:デフォルトの名無しさん
10/02/13 09:23:42
$gem install newgem
したら
ERROR: Error installing newgem:
rubigen requires thoughtbot-shoulda (>= 2.10.2, runtime)
とか出てきて
さらにthoughbot-shouldaを探しても見つからないんですが
newgemのインストールの仕方を教えてください

$ gem --version
1.3.5

$ ruby --version
ruby 1.9.1p376 (2009-12-07 revision 26041) [i386-mswin32]

447:デフォルトの名無しさん
10/02/13 09:34:58
gem install thoughtbot-shoulda --source=URLリンク(gems.github.com)

448:デフォルトの名無しさん
10/02/13 09:36:14
「or を伴う式をメソッドの引数に渡す場合は二重に括弧が必要となります。 」
ってどういう意味?


449:デフォルトの名無しさん
10/02/13 09:43:24
そういうことはしないでくださいね、の意

450:デフォルトの名無しさん
10/02/13 09:43:36
puts(nil or "a") だめー

puts((nil or "a")) おk

451:デフォルトの名無しさん
10/02/13 09:51:56
>puts (nil or "a")
a

普通にいけたけど?

452:デフォルトの名無しさん
10/02/13 09:55:07
それ括弧なし

453:デフォルトの名無しさん
10/02/13 09:57:32
>>448
それ余計な文言だよな
査読者や編集者がやっぱり必要だと思う

「メソッドの引数にする場合にはorを伴う演算部分を括弧でくくって式にする必要があります」が正解

p(false or "yes!")

だと「p (false が偽だったら "yes!"」と解釈されて文法エラーになる
false or "yes!" がひとつの処理の塊だとわからせるために式として括弧で括り、
 (false or "yes!")
なおかつ、これ全体を引数として指定してるんだということをわからせるために引数としての括弧を省略せずに使う
 p()
にさっきのカッコつき式を適用して
 p((false or "yes!"))
となる

なお、>>451のように引数括弧相当の存在が明確な場合はエラーにならない
この括弧は引数の括弧ではなく式を作る括弧だ

454:デフォルトの名無しさん
10/02/13 10:13:03
ありがとうございます。
もしかしてメソッド名と引数を括る括弧の間を空白で空けてはいけない?
(第一引数の式を括る括弧と解釈される?)

455:デフォルトの名無しさん
10/02/13 10:26:20
メソッドの引数のカッコはメソッド名と分かれてはいけない

が、分かれた場合は「引数のカッコを省略して引数の全体(または一部)をカッコで括った」と解釈される
おおむね同じ動作をするので、実際上はみんな深く考えてない

puts("ruby") #=> "ruby" をメソッドに渡す
puts ("ruby") #=> ("ruby") の結果をメソッドに渡す


456:デフォルトの名無しさん
10/02/13 10:36:24
ありがとうございました。
ロジカルシンキングではなくイマジネーションでってことですね


457:デフォルトの名無しさん
10/02/13 10:51:47
いや物凄い論理的だと思うが

引数括弧を省略するのがコンセンサスになってるのはpとかputsとかごく一部だぞ
それ以外の普通のメソッドはとりあえず括弧つけとく派が多数派だ
irbとかだと読み返すこともないから適当に省略しまくってるが

458:デフォルトの名無しさん
10/02/13 10:55:08
>>456
意味不明なときは感覚なものととらえてしまうけど、
しばらくRuby使ってなれてきたらロジカルなものだと理解できるようになるよ、がんがれ

459:デフォルトの名無しさん
10/02/13 11:34:23
ちょっと使ってみたんだけど、この言語(というか処理系?)、は多項式時間や指数関時間な計算をブチ転がそうとすると圧倒的に遅いわね…
なによ…まったく!

460:デフォルトの名無しさん
10/02/13 12:45:56
そこらへんのしっかりしたドキュメントが無いから
どうしても試行錯誤で感覚的にならざるを得ない

461:デフォルトの名無しさん
10/02/13 13:33:34
>>460
カッコで括ったら式になるってちゃんと書いてあるだろ

462:デフォルトの名無しさん
10/02/13 13:35:08
そんなところで試行錯誤した覚えはないなあ

463:デフォルトの名無しさん
10/02/13 13:42:42
p(2*10) #=> 20
p (2*10) #=> 20

p(2*10)*2
NoMethodError: undefined method `*' for nil:NilClass
p (2*10)*2 #=> 40

464:デフォルトの名無しさん
10/02/13 13:45:38
> メソッドの引数のカッコはメソッド名と分かれてはいけない
これが書いてないだろ?

465:デフォルトの名無しさん
10/02/13 13:49:36
>>459
O(nlogn)の近似アルゴリズムに変えるか、Inline C 使うか、
そもそも C で書け。

466:デフォルトの名無しさん
10/02/13 17:42:27
      ,―ヽ_(((((_、―
   ,/  ノ       ヽ  ~\
  /   ノ   IPA    ヽ   ~\
/   ノ           ヽ、  `ヽ
|    ノ / ̄\   / ̄~ヽ ヽ    i
|   ノ              |  ノ
\  |  <●>  <●>  (  )
 \ |      | |       i /
    |      /  ヽ       レ
   i     (●_●)      /  
    i、    ,-―-、   ・ /
    i、  <(EEEEE)> ∵/    多項式時間や指数関時間な計算が遅いのは当たり前だろ
      i、  \   ./  /
       \   ーー   ,ノ       
  ,,.....イ.ヽヽ、ー-―一ノ゙-、.
  :   |  '; \_____ ノ.| ヽ i
      |  \/゙(__)\,|  i |

467:デフォルトの名無しさん
10/02/13 19:53:39
多項式時間や指数関時間の計算をRubyでやる男の人って・・・

468:デフォルトの名無しさん
10/02/13 20:57:16
マルチバイトの文字列のうち、ASCIIの制御文字にあたるもの(NULLとかCRとか)
を削除するには
sub /\s+/, ''
でいいですか?

0x00~0x1fだけを削除するにはどうしたらよいですか?

469:デフォルトの名無しさん
10/02/13 21:18:32
irb> p "ね\001こ\t大\025す\177き\n".gsub(/[[:cntrl:]]/){''} == "ねこ大すき"
true
irb> p "ね\001こ\t大\025す\177き\n".gsub(/(?![[:space:]])[[:cntrl:]]/){''} == "ね こ\t大すき\n"
true


470:デフォルトの名無しさん
10/02/13 21:18:33
普通に
/[\x00-\x1f]/
じゃダメなの?

471:デフォルトの名無しさん
10/02/13 21:21:50
飼ってたインコを食べたので猫はきらいです

472:デフォルトの名無しさん
10/02/13 21:29:55
>>469
名前つきでわかりやすそうに見えて実はわかりにくいというなんとも

473:デフォルトの名無しさん
10/02/13 21:30:57
キャリッジリターンやラインフィードは立派なコントロールコードですよ

474:デフォルトの名無しさん
10/02/13 21:35:40
>>470
いいんじゃまいか

475:デフォルトの名無しさん
10/02/13 21:42:39
> 0x00~0x1fだけを削除するにはどうしたらよいですか?
こういうの見るたび、DELは消さなくていいんだろうか、といつも思う

476:デフォルトの名無しさん
10/02/13 21:55:53
ISO-2022-JP文字列に対して実行してESC(0x1B)を消されてしまえー。


477:デフォルトの名無しさん
10/02/13 22:07:14
>>467
Ruby を愛しています
ゆるしてください

478:デフォルトの名無しさん
10/02/13 22:25:51
童貞のくせに愛なんて言葉を軽々しく使うな

479:デフォルトの名無しさん
10/02/13 22:46:25
rubyはJavaの1000倍の生産性があると聞いてやってきました

480:デフォルトの名無しさん
10/02/13 22:54:29
エロ画像を一括でスクリプトとか書くならそれぐらいあるかもしれない

481:デフォルトの名無しさん
10/02/13 23:05:47
RubyでJSON(と言うかJavaScriptのオブジェクトの記述)をパースしたいのですが
require "yaml"
p YAML.load('{"num":"123456789"}')
とかやるとエラーになってパースできません。何か良い方法があったら教えてください
p YAML.load('{"num": "123456789"}')
ならパースできるようですが、JavaScript的にはどっちでも通るはず・・・

482:デフォルトの名無しさん
10/02/13 23:39:39
# 正しいところを見ているのかちょっと自信がないけど。

URLリンク(yaml.org)

Explicit Values
An explicit value is denoted by the “:” indicator, followed by separation spaces.

仕様かも?



483:デフォルトの名無しさん
10/02/14 00:41:07
面倒でなければ、gem install jsonで
JSON.parse(json_str)
するのが簡単で確実。

484:デフォルトの名無しさん
10/02/14 08:04:15
ちょっとあなた
RubyInlineでインスタンス変数を参照する方法がわかりませんわよ

485:デフォルトの名無しさん
10/02/14 10:32:41
URLリンク(jp.rubyist.net) にもコロンの後にはスペースとしつこく書いてあるな。
YAMLのフロースタイルがJSONとして評価できたとしても、逆ではないってことかな。


486:デフォルトの名無しさん
10/02/14 10:34:53
>>484
使ったことないけど、Cの世界にいるときは rb_obj_ivar_get じゃねーの?

487:デフォルトの名無しさん
10/02/14 10:38:14
URLリンク(ja.wikipedia.org)

他のデータ記述法との関係
但し、厳密にはJSONはYAMLのサブセットではない[3]。具体的には配列とハッシュの区切りを
それぞれ, のようにカンマ+スペースの形にしたときにのみYAMLのサブセットとなる。したがっ
て、YAML.loadといったYAMLのルーチンを流用してJSONデータを読み込む場合は、あらかじ
め区切りの文字をYAMLと互換性を保つようにしておく必要がある。


488:デフォルトの名無しさん
10/02/14 12:42:36
さすがにJSONをYAMLのライブラリで読むのは横着だろうw

489:デフォルトの名無しさん
10/02/14 13:02:11
何でそんなしょぼいところで非互換性持たせてるんだ

490:デフォルトの名無しさん
10/02/14 13:11:56
たまたま似てるだけであって互換性を意図的に持たせようとしたわけではないから。


491:デフォルトの名無しさん
10/02/14 13:20:42
たまたまと言い張るには似すぎだろ

492:デフォルトの名無しさん
10/02/14 13:25:56
>>489
サブセットにしようと思って作ったんだけど手作業での網羅が漏れてたらしくて

493:デフォルトの名無しさん
10/02/14 13:42:37
何に怒りをぶつけているんだろう。


494:デフォルトの名無しさん
10/02/14 14:12:08
お客様がいらしてるご様子

495:デフォルトの名無しさん
10/02/14 14:20:09
>>494
こんなので「怒ってる」とかありえんよな
素直にMLにだけ引き篭もってろと

496:デフォルトの名無しさん
10/02/14 15:41:12
ruby1.9.1(mswin32)で動くプロファイラありませんか?
標準のは遅すぎて使い物になりません

497:デフォルトの名無しさん
10/02/14 15:49:59
自分で作れるよ

498:デフォルトの名無しさん
10/02/14 16:25:54
どうやって作るのですか?

499:デフォルトの名無しさん
10/02/14 16:43:08
掲示板で説明できるようなものじゃないけど、
profile や profiler を見れば既存の作り方は書いてあるよ。
あとは処理速度を向上させる工夫をするなり、
自分で一から作るなりすればいいよ。

500:デフォルトの名無しさん
10/02/14 16:49:37
それは標準のものでは?
自分で書いたからといって速くなるとは思えませんが如何でしょうか?

501:デフォルトの名無しさん
10/02/14 16:55:21
ちょっとお茶しませんか?

502:デフォルトの名無しさん
10/02/14 16:58:01
>>500
そんなの自分次第やん

503:デフォルトの名無しさん
10/02/14 17:01:48
Rubyの使用メモリ量を測る方法って何かありますか?
終了までの最大量だけでもわかるといいんですが

504:デフォルトの名無しさん
10/02/14 17:09:23
Linuxだと "/proc/#{$$}/status" とかを読んだらいろいろ分かるかもしれない。
ほかは知らん。


505:デフォルトの名無しさん
10/02/14 17:10:15
>>503
Rubyとしては提供されてない
OSから観測してもらうしかない

506:デフォルトの名無しさん
10/02/14 17:10:38
UNIX なら top
Windows ならタスクマネージャ


507:デフォルトの名無しさん
10/02/14 17:12:04
valgrind使えばいけるかも

508:デフォルトの名無しさん
10/02/14 17:13:53
まあ、/proc 使っていいなら stat のポーリングで
top コマンドみたいにやればいいんだけどさ。

libproc.so って /proc の出力を露骨に sscanf() してるから
あんまり汎用性ないよなーと思って。

509:デフォルトの名無しさん
10/02/14 17:14:45
汚いコピペだなあ

510:デフォルトの名無しさん
10/02/14 17:21:46
>>504
お前帰れって言われてんだよ

511:デフォルトの名無しさん
10/02/14 17:25:01
>>504-508
ありがとうございます
Windowsで見たいのですがcygwinなら/proc/pid/statusは同様に使えそうな感じなんで
詳しく調べてみます

512:デフォルトの名無しさん
10/02/14 17:25:36
>>502
自分次第とおっしゃいますと具体的にはどのような工夫がありますでしょうか?

513:デフォルトの名無しさん
10/02/14 17:33:21
ruby-profは?コンパイルはがんばれ

514:デフォルトの名無しさん
10/02/14 17:43:59
いや、早い話、インストールするだけで動くものはありませんかってことです。
ruby-profはドキュメントでは1.9対応を謳っていましたがWindows用のものは
msvcrt-ruby18.dllが見つからないと表示され、1.8用のDLLを参照しようと
してしまい動きませんでした。

515:デフォルトの名無しさん
10/02/14 18:05:12
Rubyコミュニティで自分で作れと言われたらそれは
ありませんごめんなさいという意味です。
素直にあきらめましょう。

516:デフォルトの名無しさん
10/02/14 18:21:32
それを先に言ってください

517:デフォルトの名無しさん
10/02/14 18:32:48
無いなら自分で作ればいいってだけの話だな。


518:デフォルトの名無しさん
10/02/14 18:53:46
初心者にそれを求めるのは酷

519:デフォルトの名無しさん
10/02/14 18:59:13
というか普通に動くが

520:デフォルトの名無しさん
10/02/14 19:02:58
何を使っているんですか?

521:デフォルトの名無しさん
10/02/14 19:16:29
やり方わからなくて詰まるくらいなら経験たまるまで素直に1.8だけ使えやオラ、とか思わなくもない

522:デフォルトの名無しさん
10/02/14 19:38:21
コンパイルさえできればいいんだから、コンパイラ入れるかmingw32使ってみるというのはどう

523:デフォルトの名無しさん
10/02/14 20:48:23
妹にチョコもらってしまった…

524:デフォルトの名無しさん
10/02/14 21:59:36
やれるのかやれないのかハッキリしてよ

525:デフォルトの名無しさん
10/02/14 22:04:51
チョコくれたんだから実はOKという意思表示なのでは

526:デフォルトの名無しさん
10/02/14 22:07:05
女だってやりたいんだよ
童貞は知らないだろうけど

527:デフォルトの名無しさん
10/02/14 22:24:22
女がやりたがってるのは好きな男とだぞ
勘違いしちゃダメだぞ

528:デフォルトの名無しさん
10/02/14 22:25:07
やべ
勘違いしてた

529:デフォルトの名無しさん
10/02/14 22:26:22
インターフェースは同じはず
そこはポリモーフィズムで…

530:デフォルトの名無しさん
10/02/14 22:27:51
スレ違いだからもう終わりよ、みなさん。
いろいろと参考になりましたが。

531:デフォルトの名無しさん
10/02/14 23:25:51
童貞きめえ
女に植えてんだなかわいそうにおまえら

532:デフォルトの名無しさん
10/02/14 23:29:19
コンピュータばかりいじりすぎて
外の世界が見えません。

533:デフォルトの名無しさん
10/02/15 00:06:07
gemをインストールしたあと使おうとすると no such file to load になるんだけど
どうすれば使えるようになるの?


534:デフォルトの名無しさん
10/02/15 00:25:35
>>533
そのgemのインストール自体は正常に終わっているとすると、
require 'rubygems'
require 'gemのライブラリ'
で使えるようになるはずだが。(つまり、毎回rubygemsをrequireする必要がある)

たとえば、ちょっとjsonの場合はこんな感じ。
$ sudo gem install json
$ irb
irb> require 'rubygems'
irb> require 'json'
irb> JSON.parse('{"num":"123456789"}')
=> {"num"=>"123456789"}


535:デフォルトの名無しさん
10/02/15 00:26:04
require "rubygems"

536:534
10/02/15 00:26:52
書き途中で送信してしまった。
× たとえば、ちょっとjsonの場合はこんな感じ。
○ たとえば、ちょっと前のレスのjsonの場合はこんな感じ。


537:デフォルトの名無しさん
10/02/15 00:28:56
URLリンク(webos-goodies.jp)

538:デフォルトの名無しさん
10/02/15 00:57:22
sudoをつけてなかったのが敗因だった。ありがとう

539:デフォルトの名無しさん
10/02/15 01:12:58
--pre とか付けると no such file to load となる
すばらしいマイエンバイロンメント ruby 1.8.2、 gems 0.9

いきなり詰んだorz

540:デフォルトの名無しさん
10/02/15 01:19:53
URLリンク(ysky.vox.com)のオプション仕様が変わった.html

あした gems 自体を update させてもう一度やってみょ
寝るべzzz

541:デフォルトの名無しさん
10/02/15 01:30:34
いちはちに…

542:デフォルトの名無しさん
10/02/15 07:52:31
>>539
なんのための--preか知らんが、Rails 3βとかは1.8.7以降でないと動かんぞ。


543:デフォルトの名無しさん
10/02/15 08:05:05
ていうか1.8.2は5年以上前の不安定版なんだが
今更これ使うくらいなら俺はPerlをやる

544:デフォルトの名無しさん
10/02/15 08:13:11
Pythonは?

545:デフォルトの名無しさん
10/02/15 09:07:03
JSON is YAML って言っている人はいるけど、本当に上位互換になるのは 1.2 から。
で、Ruby 標準添付の syck は 1.0 なので

546:デフォルトの名無しさん
10/02/15 10:19:49
_why行方不明だし、どうなるんだろ Syck。


547:デフォルトの名無しさん
10/02/15 10:32:31
どうなるもなにも、これまでの「優秀だったがサポートがなくなったライブラリ」と同様の道を辿る

548:デフォルトの名無しさん
10/02/15 10:49:22
1.8用のtranscodeっぽいものってない?
バイト列とエンコーディングを投げるとバイト列の適切な区切り位置を記憶してくれるライブラリみたいな

549:デフォルトの名無しさん
10/02/15 10:59:07
>>546
Aaron さんが互換ライブラリを開発中

>>548
Iconv じゃダメですか

550:デフォルトの名無しさん
10/02/15 11:04:17
data = Array.new
data = [1, 2, [3, 4, [5]], 6]
多次元配列のデータがあります。
このデータを、次のように1次元配列に格納しなおしたいです。
p data
=> [1, 2, 3, 4, 5, 6]
多次元配列のデータは、今回のサンプルでは3次元ですが、
実際のデータは何次元になるかわかりません。
そのため、再帰の必要性があると思い次のようなメソッドを考えました。

def split_ary(ary)
local_ary = Array.new
return local_ary if ary.empty?
ary.each do |a|
if Array == a.class
split_ary(a)
else
local_ary << a
end
end
end

良く考えれば当然なのですが1次元にできません。。。
p split_ary(data)
=> [1, 2, [3, 4, [5]], 6]

1次元にするには、どのように改善すれば良いでしょうか。

551:デフォルトの名無しさん
10/02/15 11:17:25
[1, 2, [3, 4, [5]], 6].flatten

552:デフォルトの名無しさん
10/02/15 11:21:42
>>551

おおお!! このようなメソッドが既にあるのですね。
ありがとうございます!

553:デフォルトの名無しさん
10/02/15 11:34:29
flatten使うべきだけど、後学のために

def split_ary(ary, local_ary = [])
 ary.each {|a|
  if a.kind_of? Array
   split_ary(a, local_ary)
  else
   local_ary << a
 end
 }
 local_ary
end


554:デフォルトの名無しさん
10/02/15 11:47:28
>>553

丁度、ライブラリ set.rb の flatten メソッドのソースを眺めている所でした。
・Array クラスか判定するのに、kind_of を使うこと
・local_ary を引数(の位置?)で、Array.new すること
勉強になりました。

初めは set.rb を見ても理解できなかったのですが、
私が書いたソースを改変して貰ったおかげで、理解できました。

ありがとうございました。


555:デフォルトの名無しさん
10/02/15 13:07:36
すごく重要なことだけど、多次元配列はRuby標準では存在しない
ただの入れ子になった配列
多次元であるかのように振舞うことはない

556:デフォルトの名無しさん
10/02/15 15:28:12
irb(main):006:0> (5.6 * 10500).to_i
=> 58799

58800になってほしかったんですが、なぜこんな風になってしまうんでしょう?


557:デフォルトの名無しさん
10/02/15 15:31:43
URLリンク(www.google.co.jp)

558:デフォルトの名無しさん
10/02/15 15:32:04
>>549
バイト列 unsafe_str から制御文字を取り除きたいんです
んで、世の中にはたとえば iso-2022-jp のような \e を必要としてるエンコーディングもあるので、
そういう場合、「必要な制御文字」だけは残したいんです

display_encoding = "ISO-2022-JP"
unsafe_str = Iconv.iconv(display_encoding, "UTF-8", 'ねこだいすき').join
unsafe_str #=> "\e$B$M\e(B\\000\e$B$3$@$$\e(B\\e\e$B$9$-\e(B" # \000と\eが入ってるのがやだ
safe_str = kill_dangerous_ctrl_chars_on(display_encoding, unsafe_str)
p safe_str #=> "\e$B$M$3$@$$$9$-\e(B"

ちなみに日本語以外にも対応したいですというか日本語だけでいいなら悩みません

559:デフォルトの名無しさん
10/02/15 15:49:33
>>556
5.6を10500回足したものが、本当は58800よりもほんの少しだけ小さいから
irb> (5.6 * 10500) - 58800
-7.27595761418343e-12
より正確には、2進数で表現される5.6が10進数で考える本来の5.6よりもほんの少しだけ小さいから
Float#to_iは「切り捨て」を行うので、「58800よりもほんの少しだけ小さい数」の小数部を切り捨てて、58799になる

これを簡易に防ぐには、>>557の言うように四捨五入のメソッドを整数化処理として擬似的に使う
誤差が0.5を超すことは一般的用途ではまずないから
irb> (5.6 * 10500).round
58800

もし本当に厳密に計算を行いたいのならbigdecimalライブラリを使う
irb> require 'bigdecimal'
irb> (BigDecimal.new("5.6")*BigDecimal.new("10500")).to_s
"0.588E5"


560:デフォルトの名無しさん
10/02/15 15:59:21
>>559>>557から読み取れというのは酷だな

561:デフォルトの名無しさん
10/02/15 16:01:17
「なんで期待した値にならないのか」の答えじゃなくて
「とにかく望んだ値を得る方法」だものな。


562:デフォルトの名無しさん
10/02/15 16:08:44
まあ、暇な人がリンクをたどって(または単に自前の知識で)説明してくれるだろうと期待して
情報のポインタだけぶん投げるというのは省労力的にはアリではある
どっちかっちゃFAQに近いし

563:デフォルトの名無しさん
10/02/15 18:36:31
BigDecimal.を見るとなぜかマルちゃんのでかまるを思い出す

564:デフォルトの名無しさん
10/02/15 18:58:21
rubyがメインにしているOSって何ですか?

565:デフォルトの名無しさん
10/02/15 18:58:49
linux

566:デフォルトの名無しさん
10/02/15 19:01:12
どのlinuxでしょうか?

567:デフォルトの名無しさん
10/02/15 19:02:15
debian
といってもubuntuやFedoraとかでもそう振る舞いは変わらないと思う

568:デフォルトの名無しさん
10/02/15 19:05:57
Linux上で適当にコンパイルされたRubyで動作させるスクリプトは、
Windows上で慎重にコンパイルされたRubyで動作させるスクリプトの倍以上の速度を誇る

569:デフォルトの名無しさん
10/02/15 19:06:13
DebianはPythonマンセーって感じだけどね。

570:デフォルトの名無しさん
10/02/15 19:12:46
debianはデスクトップにもサーバーにも使えるから使い勝手がいいんだよね
うちの会社は全PCdebian

571:デフォルトの名無しさん
10/02/15 19:13:21
Rubyをシステムスクリプトに組み込むなんて狂気の沙汰だ
しかもDebianのシステムを中途半端にRedHat系列に再現するとかありえん

572:デフォルトの名無しさん
10/02/15 19:14:04
とつぜん何を。


573:デフォルトの名無しさん
10/02/15 19:18:29
>>571
mphは目指すところは悪くなかったんだよ
しかしいかんせん当時のRubyの完成度安定度が低すぎた
良くも悪くもkondaraだな

574:デフォルトの名無しさん
10/02/16 01:37:19
cgi書いてるんだけど、CGI#out でHTMLを出力する場合、ソースを全部一度に吐き出す感じになるよね?
処理しながら少しずつHTMLを出力するにはどうしたらいいの?

575:デフォルトの名無しさん
10/02/16 02:05:35
ふつーに標準出力に書き出せばいいのでは

576:デフォルトの名無しさん
10/02/16 02:07:58
あんなもんつかわずに適当にテンプレートエンジン使ったほうがいい。


577:デフォルトの名無しさん
10/02/16 02:08:26
>>575
なるほど。
標準出力でいいんですね。

578:デフォルトの名無しさん
10/02/16 03:40:26
>>547
まじか
Ruby の未来は暗いな

579:デフォルトの名無しさん
10/02/16 04:13:51
>>574
リストに吐き出して最後に結合

580:デフォルトの名無しさん
10/02/16 07:08:05
Marshal.dump(obj[,port][,limit])を使って
データをグローバル変数に保存したいんですけど不可能ですか?


581:デフォルトの名無しさん
10/02/16 07:31:04
質問の意味がわかりかねるねるねるね

582:580
10/02/16 07:38:37
def save_bitmap
file = File.open("test.txt", "wb")
Marshal.dump(@data, file)
file.close
end
これだとtest.txt内に@dataを保存しますよね?
これをグローバル変数に保存したいのですが
def save_bitmap
file = File.open($data, "wb")
Marshal.dump(@data, file)
file.close
end
これじゃだめですか?


583:デフォルトの名無しさん
10/02/16 08:04:57
$dataと@dataってどうなの

$data = Marshal.dump(@data) は違うの?というかこれなら
$data = @data でいいじゃん

584:580
10/02/16 08:36:03
できましたありがとうございました
考えすぎていたようです

585:デフォルトの名無しさん
10/02/16 08:46:10
というかグローバル変数使うなかっこ悪いから
トップレベルのローカル変数とメソッドの引数でデータの受け渡ししろ

586:デフォルトの名無しさん
10/02/16 08:55:45
ディープコピーの常套手段ってやつか

587:デフォルトの名無しさん
10/02/16 09:16:12
引数と返り値で充分なやり取りだと思えるかどうかには自覚と時間が必要

 ・ グローバル変数いらねえ
 ・ クラス変数使う必要ねえ
 ・ これインスタンス変数でなくてもいい

と感じるにはちょっと時間が要る
他人から言われてもえーって感じでピンとこない

588:デフォルトの名無しさん
10/02/16 11:36:08
>>579
メモリ食いつぶした。
謝罪と賠償を(ry

589:デフォルトの名無しさん
10/02/16 14:39:42
配列で指定した要素を一つだけ削除する命令ってないですか?
[1,2,3,4,5,1,1,1,1,1]
これの1を一つ削除して
[2,3,4,5,1,1,1,1,1]
にしたいんですが。delete(val)だと全部消しちゃいますよね。


590:デフォルトの名無しさん
10/02/16 14:48:27
>>589
それなんかやたらよく聞かれるんだが、メソッド一発でやる方法は特にない

arr = ["a", "b", "c", "b", "a"]
arr.delete_at(arr.index("b"))
p arr

["a", "c", "b", "a"]

591:589
10/02/16 15:08:55
def delete_learn_data(delete_id)
$game_system.golem_learn_data.each_with_index{ |value, i|
if delete_id == value
$game_system.golem_learn_data.delete_at(i)
break
end
}
end
とりあえずこれでいけました。ありがとうございました。

592:デフォルトの名無しさん
10/02/17 13:47:36
メソッドhogeの引数としてフォーマット用文字列と任意個の文字列を渡して
formatで整形した文字列を作りたいんだけど
hogeの引数はどんな形で渡したらいい?

def hoge(引数)
 s = format(引数1, 引数2, 引数3・・・)
end

以下のようにしたらsは1つの配列として扱われてformatに
too few argumentsと言われてしまいました
def hoge(f, *s)
 s = format(f, s)
end
hoge('%s %s', 'aaa', 'bbb')

593:デフォルトの名無しさん
10/02/17 13:50:15
format(f, *s)

594:デフォルトの名無しさん
10/02/17 14:53:03
thx

595:デフォルトの名無しさん
10/02/17 15:23:25
Rubyやってて良かったことを教えて下さい。

596:デフォルトの名無しさん
10/02/17 15:37:21
自分用スクリプトでPerlを使わなくて済んだ
オブジェクト指向に触れてなんとなく理解した気になれた

597:デフォルトの名無しさん
10/02/17 15:47:09
railsに尽きるなぁ
rails無かったら何の価値も無かった

598:デフォルトの名無しさん
10/02/17 16:48:37
ニワカ乙


599:デフォルトの名無しさん
10/02/17 17:00:24
プッ
反論してみろよカス

600:デフォルトの名無しさん
10/02/17 17:34:43
論に対してしか反論はありえない。

601:デフォルトの名無しさん
10/02/17 17:36:48
mechanizeとnokogiri(hpricot)はなかなかいいライブラリだとは思った
あれら程手軽に使えるスクレイピングライブラリは他の言語では知らない

602:デフォルトの名無しさん
10/02/17 17:46:35
railsを作ってしまうような香具師がrailsが存在する前から評価してた言語ってだけで十分な気がする。


603:デフォルトの名無しさん
10/02/17 19:30:01
でも他のスレでRubyの4文字を出すと馬鹿にされる

604:デフォルトの名無しさん
10/02/17 19:31:33
>>595
Javaを使わなくて済むようになった・・・まあRubyじゃなくてもいいんだけど。

>>602
なんでやねん。そんな理由がだれをどう嬉しくするのさ。

605:デフォルトの名無しさん
10/02/17 22:00:29
>>603
難解な言語技術を修得しているという自負が
平易な言語に対する無体な態度につながるんだろうか

606:デフォルトの名無しさん
10/02/17 22:14:05
>>605
Ruby厨でぐぐれ

607:デフォルトの名無しさん
10/02/17 22:35:35
Java厨の嫉妬は凄いよな。

608:デフォルトの名無しさん
10/02/17 22:37:40
・ Rubyをちょっと齧ったばかりで興奮して他スレで煩いRuby厨
・ 生まれてこのかたJavaしか知らない自称中級者

を混ぜると危険というかひたすら面倒

609:デフォルトの名無しさん
10/02/17 22:39:16
そろそろ隔離スレ行こうね

610:デフォルトの名無しさん
10/02/17 22:40:08
・ Rubyには興味がないがRubyに関わった遣り取りにウンザリしてもう排除したいと思ってる人

を追加

というか本スレでやれ


611:デフォルトの名無しさん
10/02/17 22:41:40
変態同士仲良くしろよ

612:デフォルトの名無しさん
10/02/17 23:14:40
..           (.
.            )
      ,―ヽ__(__、―
   ,/  ノ       ヽ  ~\
  /   ノ   IPA    ヽ   ~\
/   ノ           ヽ、  `ヽ
|    ノ / ̄\   / ̄~ヽ ヽ    i
|   ノ              |  ノ
\  |  <●>  <●>  (  )
 \ |      | |       i /
    |      /  ヽ       レ
   i     (●_●)      /  
    i、    ,-―-、   ・ /
    i、  <(EEEEE)> ∵/    IPA Rubyスレは誰でもウェルカム
      i、  \   ./  /
       \   ーー   ,ノ       
  ,,.....イ.ヽヽ、ー-―一ノ゙-、.
  :   |  '; \_____ ノ.| ヽ i
      |  \/゙(__)\,|  i |
      >   ヽ. ハ  |   ||

613:デフォルトの名無しさん
10/02/17 23:18:26
>>612
いつも思うんだけど
この人だれ??

614:デフォルトの名無しさん
10/02/17 23:21:18
ミスターつこうた

615:デフォルトの名無しさん
10/02/17 23:33:15
>>613
こいつにレスしたのお前だけだぞ

616:デフォルトの名無しさん
10/02/17 23:39:16
申し訳ごめんなさい。

617:デフォルトの名無しさん
10/02/18 01:44:24
絶対にゆるさない

618:デフォルトの名無しさん
10/02/18 19:54:41
StarRuby今落としたんですが
この板にスレッドが無いのが気になりました。
ゲーム開発用であんまり需要無いんですか?


619:デフォルトの名無しさん
10/02/18 20:03:48
ありませんというかそもそもゲーム製作専用系は板違い

【Ruby/SDL他】Rubyでゲーム制作・総合スレッド
スレリンク(gamedev板)

620:デフォルトの名無しさん
10/02/18 21:07:28
>>595
手軽に短くかっこよくツールが書けること。
あと、Rails

621:デフォルトの名無しさん
10/02/18 21:11:38
Pythonから来ました。
自分用のプログラムを書くときに、クラス定義のときに組み込みクラスを
オーバーライドするのが怖いので、トップレベルにMyAppみたいな名前の
モジュールを作ってから、その中にクラスを定義しているのですが、
これはRuby文化に反するのでしょうか?

また、Pythonのように、組み込みクラスはすべて、Builtin::String, Builtin::Arrayみたい
になってたらなあ、と思ったのですが、何故こうなっていないのでしょうか?

622:デフォルトの名無しさん
10/02/18 21:36:19
適当なモジュールでくるむのは普通に行われているし、実質推奨になっている
まあ、それ自体が被る可能性もあるが

> 何故こうなっていないのでしょうか?
めんどくさいから

…まあ、オープンクラスっても限度あんだろ、とはみんなちょっと思ってはいる
ある意味初期の見通しミスをずるずる引きずってるわけで

623:デフォルトの名無しさん
10/02/18 21:57:05
本当のところはMatzに聞かなきゃ分からんが、
デメリットを勘案の上でオープンクラスを選択したのは間違いないわけだから
設計意図どおりだと思うけどなあ

オープンクラスの影響範囲を押さえ込む名前空間システムが
検討されてるらしいが、いつ実装になるやら

624:621
10/02/18 21:59:30
>>622
むしろ推奨でしたか。安心しました。有り難うございます。

トップレベルにすべての組み込みクラスがあるのは面倒くさいから。。。
実にRuby的だなと思いました(笑)。いいですね。

もし初期の見通しをひきずっているのなら、Ruby2.0なんてのが出る時には
改善されるかもしれませんね。

625:デフォルトの名無しさん
10/02/18 22:05:47
いわゆる Std:: を使わないのはオープンクラス主義と反するからであるのは間違いない

626:621
10/02/18 22:08:53
>>623
オープンクラスなのは、メリットがとても大きいと思うので気にならないのですが、
どうして、組み込みをすべてトップレベルにしてあるのかなと思ったのです。
自分用のクラスを定義するときには、組み込みクラスの名前はすべてすでに使われているわけで、
名前空間がクリーンじゃないなと。

> オープンクラスの影響範囲を押さえ込む名前空間システム
そんなのが実現したらすごそうですね。

627:デフォルトの名無しさん
10/02/18 22:22:54
selector namespace だっけ?


628:デフォルトの名無しさん
10/02/18 22:30:06
python も
str = 'hoge'
みたいなことすると
あほなことになるが

629:デフォルトの名無しさん
10/02/18 22:45:07
それは__builtins__.strを上書きしてるわけじゃないから、
モジュール外に被害は出ないだろ。

630:デフォルトの名無しさん
10/02/19 01:20:07
lambdaについて

lambdaはreturnがクロージャから戻り、また引数チェックを行うprocというところまで理解しました。
ですが、このlambdaメソッドはどのように定義されているのでしょうか?
引数チェックはなんとなくメタプログラミングでできそうな気がするのですが、returnの挙動を変える
なんてことができるのでしょうか?

Cで実装されているのかもしれませんが、もしRubyで実装するとすればどのようになるのか教えてください。

631:デフォルトの名無しさん
10/02/19 01:23:39
クラスメソッドを定義しようとして
def Fixnum.bar
end
と書いたら
1.bar

NoMethodError: undefined method `bar' for 1:Fixnum
になります。どうすればいいんでしょうか?

632:デフォルトの名無しさん
10/02/19 01:31:22
>>631
1.class.bar

Rubyのクラスメソッドは、その定数で表されるclassオブジェクトのインスタンスメソッドという程度の意味しかない

633:デフォルトの名無しさん
10/02/19 01:31:51
クラスメソッドはインスタンスからは呼べないんじゃないの?
1はFixnumクラスのインスタンスだし。
とりあえず、クラスメソッドと定義しているわけだから
Fixnum.barとすれば動く。

もし、1.barという風に実行したかったのなら
クラスメソッドではなく、インスタンスメソッドを定義したかったのだという事になる。



634:デフォルトの名無しさん
10/02/19 01:35:49
>>630
>このlambdaメソッドはどのように定義されているのでしょうか?
Proc.new

本当に理解したければBindingオブジェクトの知識が要ると思う

635:デフォルトの名無しさん
10/02/19 01:40:35
インスタンスメソッドを定義したかったのでした

636:デフォルトの名無しさん
10/02/19 01:51:27
>>635
それなら
class Fixnum
def bar
puts "bar"
end
end
と書いて、1.barとすればいい

637:デフォルトの名無しさん
10/02/19 01:53:33
Fixnumにメソッド追加するのはおおむねキモいけどな
キモいと自分で感じるまではこれは仕方ない
便利に使うといい

638:630
10/02/19 01:54:53
>>634
Proc.new == Kernel#procですよね?(Ruby1.9)

Bindingオブジェクトは雰囲気だけは分かります。どうか教えてください。
returnの挙動をどうやってメタプログラミングしたのかが知りたいのです。
すみません。

639:デフォルトの名無しさん
10/02/19 02:10:55
あー何度もすみません。特異クラスがおおもとの疑問でした。(試行錯誤の中で>>631へ)
特異クラスの動作を見てみようと
a = 1
def a.foo
end
とすると
TypeError: can't define singleton method "foo" for Fixnum
となるのでどうすればいいのかなと

640:デフォルトの名無しさん
10/02/19 02:20:38
>>639
俺もあまり詳しくないが、とりあえずFixnumとかSymbolとかは特異クラスが定義できない。
a = 1
b = 1
としたときにaとbのobject_idが同じ(aもbも同じオブジェクトを指す)になるのと関係あると思う。
String等その他大勢では
a = 'foo'
b = 'foo'
とするとaとbは違うオブジェクトを指すし、これらには特異クラスが定義できるはず。

641:デフォルトの名無しさん
10/02/19 02:21:31
>>639
Fixnux/Symbol/Nil/True/Falseあたりは処理効率の都合で特殊な実装になってるから
その手の実験では避けた方がいい

642:デフォルトの名無しさん
10/02/19 02:23:12
>>638
わああめんどくせえええ
一応ここはCで書いてあるはず
local_jump_error使ってるんじゃなかろうか
本スレ行き

643:638
10/02/19 02:28:13
>>642
すみません。わああ眠れねええって感じでしたので(笑)。

うは、LocalJumpErrorですか。なんかニオイますね。
初心者なのに、変なところに首を突っ込んでしまったようです。

644:デフォルトの名無しさん
10/02/19 07:31:17
分かりました。ありがとうございました

645:デフォルトの名無しさん
10/02/19 09:02:57
RubyForgeってところでrubyインストーラー落とせると公式に書いていますが
rubyinstaller-1.8.7-p249-rc2.exe
これを落としたいのですが10Mに7時間とかかかるんですが
他に落とせる所は無いんですか?


646:デフォルトの名無しさん
10/02/19 09:50:54
なんとなくRubyでゲーム書いてみたくなったんだけど
2Dで手軽にって感じだと何のライブラリ使うのがいいかね?

647:デフォルトの名無しさん
10/02/19 10:24:06
SDL
Miyako(SDL使用) 書籍あり
RPGツクール(古いか)
くらい?


648:デフォルトの名無しさん
10/02/19 10:27:01
>>645
回線速度で割り算して妥当でないなら時間置いてやり直せ
10MBくらいのファイルなのはRubyならどこも同じ

649:645
10/02/19 10:33:33
ブロードバンドスピードテスト 通信速度測定結果
URLリンク(www.bspeedtest.jp) v3.0.0
測定時刻 2010/02/18 10:27:07
回線種類/線路長/OS:光ファイバ/-/Windows XP/-
サービス/ISP:-/-
サーバ1[N] 23.7Mbps
サーバ2[S] 25.8Mbps
下り受信速度: 25Mbps(25.8Mbps,3.22MByte/s)
上り送信速度: 17Mbps(17.6Mbps,2.2MByte/s)

これで7時間とかおかしいと思うんですがなんででしょうか
firefoxとか関係ないですよね
昨日の12時ぐらいにやっても同じだったんでなんででしょう

650:デフォルトの名無しさん
10/02/19 10:37:40
>>643
何か目的があるの?
例えばthreadでeachのようなものを定義してreturnしたいとか?

651:デフォルトの名無しさん
10/02/19 10:41:16
>>649
こっちは転送率通常
回線経路の問題かも

現在のRubyInstallerはrubygemパッケージで未対応が存在するMinGW32版だけどその覚悟はある?

652:デフォルトの名無しさん
10/02/19 11:04:06
>>612
ぐぐっても見つからないんだが、どこにあるの?

653:デフォルトの名無しさん
10/02/19 11:06:45
>>652
こいつにレスしたのお前が2番目だぞ

654:645
10/02/19 11:17:08
他のPCでも試してみます
>現在のRubyInstallerはrubygemパッケージで未対応が存在するMinGW32版だけどその覚悟はある?
これの意味がよくわかりませんが初心者なのでテンプレ通り1.9.1やめて1.8.7落とそうと思ってます。
rubyinstaller-1.8.7-p249-rc2.exe ←これでいいんですよね?
star rubyってのをやりたいんですけどこれはrubyの拡張ライブラリ?っていう位置付けでいいんですか?

655:デフォルトの名無しさん
10/02/19 11:37:33
しかしなんでわざわざRubyなんかでゲーム作ろうと思うんかね
「○○がRuby経由でもできるようっひょー」が目的であって、Rubyから○○を学ぶのには基本不適だろうに

>>654
URLリンク(arton.hp.infoseek.co.jp)
こっちの入れれ

656:デフォルトの名無しさん
10/02/19 15:16:08
$KCODE ='s'
p Dir.entries(Dir.pwd)
とやると
[".", "..","う\202\311", "しのり\202\361", "すず\202\310"]
こんなのが返ってくるのですが$KCODE以外に何をすれば日本語フォルダを扱えるのでしょうか?

WindowsXP SP3 Rumixで導入した1.8.7を使ってます

657:645
10/02/19 15:32:08
activescriptrubyインストールできましたありがとうございます
hello_world表示できました
エディタがあるようですがRDEとかRDTがあるようですが
みたかんじRDEがとっつきやすそうにググったら見えたんですが
RDEでいいんでしょうか?


658:デフォルトの名無しさん
10/02/19 15:39:02
あー、Shift_JISでも起こるのか
早めに改定出して欲しいなあ

>>656
内部的には普通に扱えてる
p は内容そのものではなく、画面に表示しやすいように整形してから表示する
しかもバグがあって最後に日本語文字があると必ず化ける
putsで表示してみ

659:デフォルトの名無しさん
10/02/19 15:40:50
>>657
どっちも別にエディタじゃない気がするが、どうしてもどっちかを使いたいのならRDEでいいよ

660:デフォルトの名無しさん
10/02/19 18:12:36
>>658
バグですか
こっちはこっちで勘違いしたことやってたので全く気づきませんでしたw
ありがとうございます

661:デフォルトの名無しさん
10/02/19 21:30:25
文字コードを変換して読み書きしてくれるFIleクラスのラッパーライブラリってありますか?
イメージとしては

SjisFileWriter.open(path, "utf-8") do |file|
 file << utf8string
end

とすると、sjisに変換して書き込んでくれるようなものを期待してます。
closeするまでStringIOに溜め込んで一気に変換しようとしたのですが、
データが大きくてサーバーがパンクするのであきらめました。

もしかしてコツがあって、こういうのは簡単に書けるものなんでしょうか?


662:デフォルトの名無しさん
10/02/19 21:35:25
改行があるのなら、改行ごとに読み込んで改行ごとに文字エンコーディングを変換して最後に連結すればいい

663:デフォルトの名無しさん
10/02/19 21:51:24
1.9だと希望とほぼ同等のことが出来るんだけどね。

1.8の場合、文字の途中をどうするかといったことを考えずにやるなら
出力に使うメソッドをひととおりコード変換するようにオーバーライド
すればよいと思う。
writeだけのオーバーライドでいいのかな。


664:デフォルトの名無しさん
10/02/19 21:53:08
>>661
1.8 と 1.9 で対処が変わってくると思うので Ruby のバージョン教えれ

665:デフォルトの名無しさん
10/02/19 21:59:19
>>662
Fileクラスの振りをしてそういうことをするには、どんな風なコードを書けばいいのでしょうか?

FasterCSVは内部で、
 @io << row.map(&@quote).join(@col_sep) + @row_sep # quote and separate

こういうことをやっているので、コンストラクタで@ioに渡してあげると
書き込みのタイミングでエンコーディング変換してくれる
Fileオブジェクトがあればいいなと思っています。


666:デフォルトの名無しさん
10/02/19 22:00:39
>>663, 664

すみません、リロードしてませんでした。
Rubyのバージョンは1.8.7です。


667:デフォルトの名無しさん
10/02/19 22:03:48
これはひどい

668:デフォルトの名無しさん
10/02/19 22:04:38
すいませんリロードしてませんでした
>>667>>663についてです

669:デフォルトの名無しさん
10/02/19 22:09:39
これはひどい

670:661
10/02/19 22:10:20
もしかしてこんなのでいいんでしょうか?動くかちょっと試してみます。

class SjisFileWriter < File
 def <<(str)
  str.kconv(Kconv::UTF8, Kconv::SJIS)
 end
end


671:デフォルトの名無しさん
10/02/19 22:12:03
すいませんリロードしてませんでした
>>669>>668についてです

672:デフォルトの名無しさん
10/02/19 22:13:13
これはひどい

673:デフォルトの名無しさん
10/02/19 22:15:56
末尾再起スレでやれ

674:デフォルトの名無しさん
10/02/19 23:23:37
なんなんだこの流れはw

675:デフォルトの名無しさん
10/02/20 15:25:28
二次元配列的クラスを定義して配列の配列と透過的になるよう要素に
a[i][j]
のようにアクセスできるようにしたいんですがどうすればいいでしょうか?

676:デフォルトの名無しさん
10/02/20 16:26:07
>>675
無理

…いや、2次元くらいなら無理じゃないんだが、
その見栄えを保持するためだけに計算する遅いクラスになるぞ
NArray の a[i, j, k] みたいな記法じゃだめですか


677:デフォルトの名無しさん
10/02/20 17:59:39
プログラマ三大美徳というものがありますが
Rubistにもそういったものがあるのでしょうか?

678:デフォルトの名無しさん
10/02/20 18:05:30
誰かの発言に影響されるのは嫌い。

679:デフォルトの名無しさん
10/02/20 18:09:12
>>677
なにもない
というか
> Rubist
というようなものがない
Railsやってる人とは仲悪いし

680:デフォルトの名無しさん
10/02/20 18:30:08
Railist vs Rubyist

681:デフォルトの名無しさん
10/02/20 20:07:31
>>676
ありがとうございました。
配列の配列ですでに書いてある奴をクラスに直したいなと思ったもので。

682:デフォルトの名無しさん
10/02/20 21:51:45
> Railist
むしろレースウェイズと呼びたくなるファミスタ脳。

683:デフォルトの名無しさん
10/02/20 22:28:14
Railsint(笑)
ポッポ屋でいいだろw

684:682
10/02/20 22:37:43
今さら誤字に気付いた。レイルウェイズだな。
オリックスと近鉄が合併するって時にゲームファンの誰もが口にしたっけ。

685:デフォルトの名無しさん
10/02/22 02:19:19
こんなコードを書きまんた
----------------------------------------
# test.rb
class Foo
 def initialize(&func)
  @func = lambda(&func)
 end
 def bar(x)
  @func.call(x)
 end
end
foo = Foo.new{ |x| return x**2 }
p foo.bar(2)
----------------------------------------

いごきました
$ ruby -v
ruby 1.8.7 (2009-06-12 patchlevel 174) [i686-darwin10]
$ ruby test.rb
4

いごきませんでした
$ ruby1.9 -v
ruby 1.9.1p376 (2009-12-07 revision 26041) [i386-darwin10]
$ ruby1.9 test.rb
test.rb:11:in `block in <main>': unexpected return (LocalJumpError)
from test.rb:6:in `call'
from test.rb:6:in `bar'
from test.rb:13:in `<main>'

どうして?


686:デフォルトの名無しさん
10/02/22 03:16:26
>> 685
難いww
とりあえず、lambdaとprocの違いはreturnの挙動の違いだよな。
そのreturnの挙動を決めるタイミングが1.8と1.9で違うんじゃね?

687:デフォルトの名無しさん
10/02/22 08:22:09
URLリンク(blade.nagaokaut.ac.jp)
ここらへんのか

688:デフォルトの名無しさん
10/02/22 10:53:49
んじゃ1.8と1.9両方で美味しく動作する
foo = Foo.new{ |x| return x**2 }
p foo.bar(2)
を実装するにはどうしたらいいんだべ?

foo = Foo.new(lambda{ |x| return x**2 }
p foo.bar(2)
なら作れたけどラムダラムダ五月蝿い感がある。

689:デフォルトの名無しさん
10/02/22 11:03:02
ブロックの中で最後に評価された式の値が暗黙で返るのを利用するのがエレガントだと思う

690:デフォルトの名無しさん
10/02/22 11:27:33
仕事でlambda使うケースなんて滅多にないけどな

691:デフォルトの名無しさん
10/02/22 11:32:27
class Foo
 def initialize
  @func = lambda
 end
 def bar(x)
  @func.call(x)
 end
end
foo = Foo.new{ |x| return x**2 }
p foo.bar(2)

イケルがなぜか
-:3: warning: tried to create Proc object without a block
と出る

692:デフォルトの名無しさん
10/02/22 11:52:51
なぜかもなにもそのまんまの理由だと思うが

693:デフォルトの名無しさん
10/02/22 12:33:42
>>692

class Foo
 def initialize
  @func = proc
 end
 def bar(x)
  @func.call(x)
 end
end
foo = Foo.new{ |x| x**2 }
p foo.bar(2)

だと警告がでないのはなんで?

694:デフォルトの名無しさん
10/02/22 12:36:28
lambdaとproc(とProc.new)は処理が違う

695:デフォルトの名無しさん
10/02/22 12:38:29
Rubyのめんどくさいとこベスト3に入るところだな
きちんとした解説ページとかないものか

696:デフォルトの名無しさん
10/02/22 15:12:28
# ruby 1.8.7 (2010-01-10 patchlevel 249) [i386-mswin32]
p lambda{return 0}.call #=> 0
p lambda(&lambda{return 0}).call #=> 0
p lambda(&proc{return 0}).call #=> 0

# ruby 1.9.1p378 (2010-01-10 revision 26273) [i386-mswin32]
p lambda{return 0}.call #=> 0
p lambda(&lambda{return 0}).call #=> 0
p lambda(&proc{return 0}).lambda? #=> false
p lambda(&proc{return 0}).call #=> unexpected return (LocalJumpError)

1.9だとKernel.#lambdaにprocを渡すとprocが帰ってくるんだな
仕様なのかBUGなのか

697:デフォルトの名無しさん
10/02/22 15:14:30
&lambdaは&lambdaの誤りね

698:デフォルトの名無しさん
10/02/22 16:44:02
自分は組込みの仕事なのでCを使っているんだけど、
Rails以外で仕事でRubyを使う場合、どんなものを
作っているの?

699:デフォルトの名無しさん
10/02/22 17:13:17
自分の効率アップ用途以外には使わない俺スクリプト
仕事に使う中間物の生成プログラム
社内オンリーの更新頻度が高い内製プログラム

Rubyソースコードを商品にすることはほぼ確実にない
Rubyスクリプトが作り出したものを売ったり配ったりすることも少ないかと

なくても無論なんとかなるしプロダクト自体には全く影響しないが、能率ががくっと落ちる
もちろん本質的にはRubyでなくてもよい
PerlやPython、JavaやC++(えー)で超速く安定に作れるならむしろそっちのほうがよい

700:デフォルトの名無しさん
10/02/22 17:23:18
>>699
なるほど、製品レベルとなるにはまだ先のことですかね。
自分にとって現時点ではRubyは業務とは無縁の存在だけど
勉強はしておこう。

701:デフォルトの名無しさん
10/02/22 17:25:26
プログラマーズベストフレンドという文言がそのまんまだな

言語オフィシャルレベルでこれを標榜してる傲ま…いや野心的なところは見たことがない
配布ライブラリなんかで言ってるところは少なくないんだけど
URLリンク(www.google.com)

702:デフォルトの名無しさん
10/02/22 17:30:15
> 製品レベルとなるにはまだ先のことですかね
永遠にないんじゃないかなあ、と最近思ってる
そういう方向には進化してない気がするし、製品を作ろうとしないほうがうまくコード書ける気がする
Eclipseがなくても製品は作れるが、ないと死ぬ、そんな位置にRubyが入り込むんじゃないかと

703:デフォルトの名無しさん
10/02/22 21:33:03
matzもRubyは同僚に差をつける秘密兵器として使ってほしいとか
なんとか昔言ってたしな。

704:デフォルトの名無しさん
10/02/22 21:43:16
Rubyに関わったせいで同僚と差がついてしまいましたorz

705:デフォルトの名無しさん
10/02/22 21:53:08
Rubyでプログラミングしてると「何とかして面白いコードは書けないか」と、そこに注力して仕事が進まないんだが。
どうしてくれる!Matzは責任とれ!

706:デフォルトの名無しさん
10/02/22 21:53:35
他社に差をつける秘密兵器だと思ってた時期がおれにもありました

707:デフォルトの名無しさん
10/02/22 21:58:44
>>706
間違いじゃないけどね
全員がRuby相当のものを修めてる会社は強いはずだ

708:デフォルトの名無しさん
10/02/22 22:00:55
しかしつまらんスレだな

709:デフォルトの名無しさん
10/02/22 22:03:43
ま、ここはRubyの開発者が名無しで書き込むスレだからな。

710:デフォルトの名無しさん
10/02/22 22:13:20
何かこうエロい話題は無い物か。

711:デフォルトの名無しさん
10/02/22 22:16:47
おっぱいクラスとか作れば?

712:デフォルトの名無しさん
10/02/22 22:43:44
>>710
このスレに何を求めてるんだw

713:デフォルトの名無しさん
10/02/22 22:45:02
Rubyのアイコンが亀甲縛りに見えるぐらいしか思いつかない

714:デフォルトの名無しさん
10/02/23 01:33:59
>>711
おまえのエロの限界はおっぱいまでなのか?
しかも虚構のおっぱいクラス

715:デフォルトの名無しさん
10/02/23 02:22:29
エロい話題のところすみません
半年ほど前は普通にgem installできていたはずなのですが、つい最近gemを新たにupdate、installしようとすると以下のようなエラーが出るようになりました
$ sudo gem install hogehoge
ERROR: While executing gem ... (Errno::EEXIST)
File exists - /opt/local/bin/gem

環境はMac OS X(10.4.11)で、
RubyGems Environment:
- RUBYGEMS VERSION: 1.3.5
- RUBY VERSION: 1.8.7 (2010-01-10 patchlevel 249) [i686-darwin8]
- INSTALLATION DIRECTORY: /opt/local/bin/gem/:
- RUBY EXECUTABLE: /opt/local/bin/ruby
- EXECUTABLE DIRECTORY: /opt/local/bin/gem/:/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86-darwin-8
- GEM PATHS:
- /opt/local/bin/gem/:
- /Users/******/.gem/ruby/1.8
- /opt/local/lib/ruby/gems/1.8
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- :sources => ["URLリンク(gems.rubyforge.org)", "URLリンク(gems.github.com)<)
- URLリンク(gems.github.com)
です


716:デフォルトの名無しさん
10/02/23 02:28:35
エラーが出るようになったのはわかった。で?

717:デフォルトの名無しさん
10/02/23 02:37:30
/opt/local/bin/gem か /opt/local/bin/gem/ の権限がおかしいように見える

718:デフォルトの名無しさん
10/02/23 02:53:53
>>717
opt/local/bin以下をls -lしたところgemは
-rwxrwxr-x 2 root admin 548 Feb 15 15:18 gem
となっていますがrootではなくユーザー権限の方がいいのでしょうか

719:デフォルトの名無しさん
10/02/23 04:06:02
権限をユーザ名にしてみたり-rwxrwxrwxにしてみたりしましたがやはり状況は変わりませんでした
なんとなく
- INSTALLATION DIRECTORY: /opt/local/bin/gem/:
の部分が
/opt/local/lib/ruby/gems/1.8
になるべきなんじゃないかという気がしてきたので今後はそちらから攻めてみようと思います
/opt/local/bin/gemは実行ファイルなのでDIRECTORYっておかしいですよね…

720:715
10/02/23 04:53:36
連投すみません
GEM_HOME変えたら直りました
昔入れたrailsとかも全部こっちに入ってたのでいつの間にか変更されてたみたいです
ご協力ありがとうございました

721:デフォルトの名無しさん
10/02/23 15:00:19
オッパイクラス マダー?

722:デフォルトの名無しさん
10/02/23 22:20:30
Ruby2.0まで待て


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch