トップページ⇒tech
1001コメント342KB

Ruby 初心者スレッド Part 30

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2009/08/08(土) 08:21:23
プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。

★注意★ Ruby 1.9.1 は初心者には時期早尚です。初心者には Ruby 1.8.7 を強くお勧めします。
   (理由:現時点では多くの有名ライブラリやアプリが 1.9.1 に未対応であるためです。)
 なお 1.8.7 でも 1.9 系に導入された新機能のいくつかが利用可能なため、1.8.7 で勉強すれば将来スムーズに 1.9 系に移行できるでしょう。

関連スレやURLは>>2-5あたりを見てください。Ruby on Rails の質問は Webプログラミング板の Rails スレへ。

■質問する人へ
質問する前に次の3つをすること。ここで回答を待つよりそのほうが早い。
 ・モジュール名やエラーメッセージでググる
 ・マニュアルで引っかかったクラスの記述を探す http://www.ruby-lang.org/ja/man/
 ・FAQを一応読む http://www.ruby-lang.org/ja/man/?cmd=view;name=Ruby+FAQ
質問には以下を書くこと。へたくそな質問は再提出を要求される。
 ・詳しい内容(「動きません」「うまくできません」では回答しようがない)
 ・エラーメッセージ(自力で訳さずなるべくそのままで)
 ・実行環境(OS名、Rubyのバージョン(ruby -v でわかる))
 ・最終的にやりたいこと(もっとよい方法がある場合が多いので)
回答してくれた人には「ありがとう」のひとことをいってあげて。

■回答する人へ
相手は初心者、根気よく育てるつもりで。質問がへたくそなのも大目にみてあげる。
それができないならこないこと(だって初心者スレだもん)。
 ・既出な質問やFAQは「XXXを読め」でいいので、叩かない&怖がらせない。
 ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。
 ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。
0648デフォルトの名無しさん2009/09/05(土) 19:58:33
>>647
それは著者がarton氏+初心者にRoRを進めるというギャグ

まずは一冊目をじっくり勉強してみたらいいんじゃないか
それから1.8前提の既存サイトで勉強しても全く問題ないよ
0649デフォルトの名無しさん2009/09/05(土) 20:14:55
>>616
http://redmine.ruby-lang.org/issues/show/2036 と同じ話か?
0650デフォルトの名無しさん2009/09/05(土) 22:24:07
>>610は「初めてのRuby」(オライリー)を買っておけ。
あれ一冊読んでおけば今回のようなつまらないことで迷うことはない。
0651デフォルトの名無しさん2009/09/05(土) 22:32:29
yugui本か。
公式の愛称はキリン本らしいけど……

他の言語の経験があれば、よい本。
0652デフォルトの名無しさん2009/09/05(土) 23:03:03
>>649
サンクス。
こっちでした。GCC4.4.0の最適化はダメってことかな。
http://redmine.ruby-lang.org/issues/show/1735
06536192009/09/05(土) 23:10:49
>>627
ありがとうございます。
アドバイス頂いたとおりsudoコマンドでインストールしてみましたが、 それでも$HOME/.gem/ruby/1.8以下に入ってしまうようです。
sudoではなく、suコマンドでrootになってからgem install vim-rubyとすると、/usr/lib/ruby/gems/1.8/gems以下にvim-rubyディレクトリが作成されました。

一般ユーザーでgem installすると$HOME/.gem以下にパッケージが配置されるだけで、uninstallコマンドも効かず自力でディレクトリ削除するしか無いようですが、これが一般的な方法なのでしょうか?
0654デフォルトの名無しさん2009/09/06(日) 00:11:20
データ書き込み用にカレントディレクトリに temp.txt を作成する。すでに有るなら失敗する。
という処理をアトミックに書く方法を教えてください。
openじゃ無理ですか?

ruby 1.8.7 (2008-08-11 patchlevel 72) [i386-mswin32]
0655デフォルトの名無しさん2009/09/06(日) 00:26:34
unix系ならこれで行けるけどWindowsはわからんなあ
open('temp.txt',File::EXCL|File::CREAT|File::RDWR)
0656デフォルトの名無しさん2009/09/06(日) 00:41:20
…
一発1行で書きたいなら>>655がそのまんまだが、これはちとわかりにくい
普通に長々と条件分岐させたほうが得策かもしれない
0657デフォルトの名無しさん2009/09/06(日) 00:46:31
……
0658デフォルトの名無しさん2009/09/06(日) 00:46:50
アトミックが要求される場面で長々とは書けないんじゃ?
0659デフォルトの名無しさん2009/09/06(日) 00:51:47
アトミックとかもう初心者スレの話題じゃないだろう
0660デフォルトの名無しさん2009/09/06(日) 00:53:04
わかりにくい以前に
File::EXCL|File::CREAT|File::RDWR
の意味を調べる術がないという
0661デフォルトの名無しさん2009/09/06(日) 01:05:03
>>654
ロック処理をきちんと書くべきだと思う
もしくは、ロック処理をやってくれるライブラリを探すか

適当でいい(とりあえず動けばいい)ならflockでOK
0662デフォルトの名無しさん2009/09/06(日) 01:14:49
>>660
ただの数字だぞ
0663デフォルトの名無しさん2009/09/06(日) 01:15:15
>>659
このスレで扱う「初心者」がRubyなのかプログラミングなのかだなw
0664デフォルトの名無しさん2009/09/06(日) 01:15:41
いや、やりたいことからしたら>>655しかないだろ
初心者スレだからって何をとんちんかんなことばかり
0665デフォルトの名無しさん2009/09/06(日) 06:51:57
↓ここでお手本になるような排他制御のサンプルを一つ
0666デフォルトの名無しさん2009/09/06(日) 08:04:06
シンプルに、追記でopenして読み込んでからの分岐だけではいかんのか?
目的がわからんのでなんとも言えんが。
0667デフォルトの名無しさん2009/09/06(日) 08:56:43
……
0668デフォルトの名無しさん2009/09/06(日) 09:05:35
>>664
ヒント:リファレンスにFile::EXCLの意味が載ってない
0669デフォルトの名無しさん2009/09/06(日) 09:06:54
RubyとPythonはどっちが強いですか?
0670デフォルトの名無しさん2009/09/06(日) 09:07:08
Rubyのドキュメンテーションのダメさは異常
0671デフォルトの名無しさん2009/09/06(日) 09:31:43
ハイレベルPythonユーザーのアプリケーション製作能力は異常
が、その下の層が薄い印象

Rubyはハイレベルユーザーの数が多くない代わり、中級ユーザー層が厚い感じ

Python自体は凄いんだが、高次に使いこなすための敷居があまりに高すぎる
0672デフォルトの名無しさん2009/09/06(日) 10:34:50
Pythonは具体的にどうすごいんだ?全く知らんのだが
0673デフォルトの名無しさん2009/09/06(日) 10:37:58
endを書かないことで最大1.5倍程度ソース密度が高まる
0674デフォルトの名無しさん2009/09/06(日) 10:47:24
それで敷居が高いのかw
0675デフォルトの名無しさん2009/09/06(日) 10:59:16
Pythonにはギッチリよりスカスカをよしとする哲学と78文字制があってだな
0676デフォルトの名無しさん2009/09/06(日) 10:59:49
CentOS release 5.3 (Final)
ruby 1.8.7 (2009-06-12 patchlevel 174) [i686-linux]

gem install hpricotで、hpricotをインストールしようとしているのですが、
ビルドエラーが出てインストール出来ません。
どのようにしたらインストールできるでしょうか。
よろしくお願いします。

Building native extensions. This could take a while...
ERROR: Error installing hpricot:
ERROR: Failed to build gem native extension.

/usr/local/bin/ruby extconf.rb
checking for main() in -lc... yes
creating Makefile

make
gcc -I. -I. -I/usr/local/lib/ruby/1.8/i686-linux -I. -D_FILE_OFFSET_BITS=64 -fPIC -g -O2 -c hpricot_css.c
hpricot_css.c: In function ‘hpricot_css’:
hpricot_css.c:3399: warning: comparison between pointer and integer
gcc -I. -I. -I/usr/local/lib/ruby/1.8/i686-linux -I. -D_FILE_OFFSET_BITS=64 -fPIC -g -O2 -c hpricot_scan.c

cc1: out of memory allocating 481668 bytes after a total of 13987840 bytes
make: *** [hpricot_scan.o] Error 1


Gem files will remain installed in /usr/local/lib/ruby/gems/1.8/gems/hpricot-0.8.1 for inspection.
Results logged to /usr/local/lib/ruby/gems/1.8/gems/hpricot-0.8.1/ext/hpricot_scan/gem_make.out


0677デフォルトの名無しさん2009/09/06(日) 11:09:41
>>670
Perlのドキュメントのなさほどひどくはない
0678デフォルトの名無しさん2009/09/06(日) 11:14:59
>>677
なにいってんだか
0679デフォルトの名無しさん2009/09/06(日) 11:17:33
これわひどい

ウェブ
検索ツールを閉じる検索ツールを表示

excl ruby に一致する日本語のページ 約 1,180,000 件中 1 - 50 件目 (0.44 秒)

もしかして: excel ruby
検索結果

1.
Rubyist Magazine - Win32OLE 活用法 【第 2 回】 Excel
2.
Rubyist Magazine - RegionalRubyKaigi レポート (01) 東京 Ruby 会議 01
3.
Take it easy!: Ruby とエクセル
4.
はてなブックマーク - { B!} - excel - Ruby on Rails
5.
はてなブックマーク - kedmブクマ - excel - ruby
6.
RubyでExcel - Ruby/Rails・Web系プログラム情報まとめ
0680デフォルトの名無しさん2009/09/06(日) 11:24:08
ごめんなさい。再起動したらいけました。
0681デフォルトの名無しさん2009/09/06(日) 11:31:14
>>679
excl ruby -excel
0682デフォルトの名無しさん2009/09/06(日) 11:41:38
>>668
See man open(2) for more information.
0683デフォルトの名無しさん2009/09/06(日) 11:44:08
ここに書く暇あったらwiki直せよw
0684デフォルトの名無しさん2009/09/06(日) 11:47:55
rdocで定数の説明ってどこに書くんだっけ
0685デフォルトの名無しさん2009/09/06(日) 11:49:28
これでR**yを殲滅できるぞ!
ttp://d.hatena.ne.jp/wasisan/20090905
0686デフォルトの名無しさん2009/09/06(日) 12:02:47
こっちには一通り載ってるんだな
http://doc.okkez.net/192/view/class/File=Constants
0687デフォルトの名無しさん2009/09/06(日) 12:32:04
>>685
この方、あんまり、物事を嫌い嫌い言うのって敵作るだけだから止めた方がいいと思うんだけどね。
webに不満をぶちまけること自体はかまわんと思うが。

しかし、schemeが日の目を見ないって嘆いているのが、現実を見れていないようなのだし、
前述の件もあるからあまり関わるのはよしたほうがよさそうw
0688デフォルトの名無しさん2009/09/06(日) 12:37:05
まあでも世の中はどう転ぶかわかんないから
なにそれおいしいのだったOOPも今や知ってて当たり前だし
0689デフォルトの名無しさん2009/09/06(日) 12:38:13
>>670
っていうか、明らかに「日本人のドキュメンテーションのダメさは異常」なんだよな。
日本人のタッチするところ、ドキュメントの無い世界が広がるってなもんで。
0690デフォルトの名無しさん2009/09/06(日) 14:12:10
それは、外国人の書いたもので日本で使われるようなものは、
ドキュメントがあるものだけだからな。視野に入ってないだけ。
0691デフォルトの名無しさん2009/09/06(日) 15:26:00
>>687
いや、個人の好き嫌いを述べるのは別に構わんと思うが。

「海外のブログでは批判記事も目にする(そして、その筆者も知らないのに叩く
なと逆に叩かれる)ことが結構あるのに、日本ではこれが非常に少ない。」
と書いてる通り、叩かれることも自ら望んでるんだろうし。
0692デフォルトの名無しさん2009/09/06(日) 15:32:24
そろそろ隔離スレ行こうね
0693デフォルトの名無しさん2009/09/06(日) 18:42:30
>>690
I got it!
0694デフォルトの名無しさん2009/09/06(日) 18:44:10
913 nobodyさん [sage] Date:2009/09/06(日) 14:23:30  ID:??? Be:
    >>905-907
    本当だ。なんだこれ?

    mswin32版のRuby 1.8.7-p160が遅すぎる件 - 那由多屋 開発日誌
    http://d.hatena.ne.jp/nayutaya/20090601/1243848756

    L'eclat des jours(2009-04-22)
    http://www.artonx.org/diary/20090422.html

    (コメ欄)
0695デフォルトの名無しさん2009/09/06(日) 19:00:23
>>691
このBlog書いてるの誰?
0696デフォルトの名無しさん2009/09/06(日) 19:11:53
>>691
批判とかツッコミはやめたほうがいいよ。スルー推奨。
過去の記事を読めばわかるけど、実は極度に打たれ弱い。
0697デフォルトの名無しさん2009/09/06(日) 19:24:49
> 実は極度に打たれ弱い。
叩き甲斐があるってもんじゃないか
0698デフォルトの名無しさん2009/09/06(日) 19:26:10
いや全然
オモチャが極端に少ない生活してるんだな
0699デフォルトの名無しさん2009/09/06(日) 19:26:43
>>697
> 叩き甲斐があるってもんじゃないか

叩き甲斐とは、叩かれ強い人を精神病院送りにした時感じるもの。
0700デフォルトの名無しさん2009/09/06(日) 20:06:46
>>696
本人乙
0701デフォルトの名無しさん2009/09/06(日) 20:12:45
うざい
0702デフォルトの名無しさん2009/09/06(日) 20:13:41
マジで本人乙
0703デフォルトの名無しさん2009/09/06(日) 20:45:32
うざい
0704デフォルトの名無しさん2009/09/06(日) 20:49:45

             ,.、   .,r.、
            ,! ヽ ,:'  ゙;.
            !  ゙, |   }
            ゙;  i_i  ,/
             ,r'     `ヽ、
|  ,.、  ,r.、    ,i" _,    ._   ゙;
| ,! ヽ,:'  ゙;.     !. ・     ・  ,!
| !   ,!  }     ヽ、 x    _,r''
|二゙;  i二二二(⌒ノ"''`''''''''''''"´`ヽ.
| ,r'      `ヽ、 ´ヾ、      l  l
,i"   _,   _ ゙;    !      i___|
!.  ・     ・,!   |       t,ノ
|ゝ_    x _::'    !、、、、、、、、、、!
|,/"`''''''''''''''"´';,     |   |    |
(,;!         !)       |   |   |
|゙''::r--、::--;r'        |____|_____|
|―゙'ー-‐゙ー-゙'―┐   (,,,__(,,,____)
07056972009/09/06(日) 20:54:13
>>699
うん、オモチャで遊ぶときは今のオモチャを壊してから次のオモチャで遊ぶもんでね
一つのオモチャで2回遊んだことないんだ。
0706デフォルトの名無しさん2009/09/06(日) 21:03:29
ほんとに基地外スレ・・・
0707デフォルトの名無しさん2009/09/06(日) 21:08:40
そんなにほめてくれなくても(赤面)
0708デフォルトの名無しさん2009/09/06(日) 21:17:00
なにそれこわい
0709デフォルトの名無しさん2009/09/06(日) 22:08:16
MoonGiftだっけ?
0710デフォルトの名無しさん2009/09/06(日) 23:38:46
Ruby上でPythonを走らせる実装にRuby/Pythonがありますが
逆にPython上でRubyを走らせる実装ってありますか?

BlenderでRubyを使いたいです・・・
0711デフォルトの名無しさん2009/09/06(日) 23:42:50
ruby-1.8.6-p383をgcc4.4.0のmingwでビルドする場合は、
ルートのMakefileのCFLAGから-O2を外してmakeすれば良いみたい。testとtest-all通った。

ruby-1.8.7-p174はtestは通ったがtest-allするとtestが全然始まらない。重いだけかな?
0712デフォルトの名無しさん2009/09/07(月) 00:09:02
>>709
MoonWolf
0713デフォルトの名無しさん2009/09/07(月) 02:25:13
確かな匂い
0714デフォルトの名無しさん2009/09/07(月) 07:32:47
次のエントリもひどいな。これは、もはや才能。
0715デフォルトの名無しさん2009/09/07(月) 08:58:22
本人のブログに突撃するのはかわいそうだからやめようね。
突っ込みたい人はここでどうぞ。好きなだけ突っ込んであげて。
0716デフォルトの名無しさん2009/09/07(月) 09:03:05
RubyのeachへProc渡し
p = Proc.new {|x|
  print(x)
  if (x == 2)
    return
  end
  print(', ')
}
0717デフォルトの名無しさん2009/09/07(月) 09:18:35
本人はココに常駐してるのかw
0718デフォルトの名無しさん2009/09/07(月) 09:34:31
もう触れるなよ
エントリ更新するたびに出てくるようになるぞ
0719デフォルトの名無しさん2009/09/07(月) 10:36:34
MoonwolfってRubyistだったと思ってたけど、いつの間にRubyぎらいになったんだ
0720デフォルトの名無しさん2009/09/07(月) 10:47:11
Headius: Introducing Surinx
http://blog.headius.com/2009/08/introducing-surinx.html


JRubyの人が新しい言語作るってよ。

Duby = Rubyの見た目+Javaの型システム+静的型、型推論
Surinx = Rubyの見た目+Javaの型システム+動的言語
0721デフォルトの名無しさん2009/09/07(月) 10:55:43
>>720
スレ違い
0722デフォルトの名無しさん2009/09/07(月) 10:57:09
dailsとか出てくるのかな
0723デフォルトの名無しさん2009/09/07(月) 10:59:43
anarchy golf - hello world
http://golf.shinh.org/p.rb?hello+world#Ruby

おいいいいい、RubyでHello worldが12バイトとかどうやんだよ。解説よろ
0724デフォルトの名無しさん2009/09/07(月) 12:17:18
>>722
juby on jails
0725デフォルトの名無しさん2009/09/07(月) 12:31:00
Hello world
0726デフォルトの名無しさん2009/09/07(月) 12:32:17
変なのが消えて、また過疎スレ化するのかな・・・
そういえば夏も終わりだねぇ
0727デフォルトの名無しさん2009/09/07(月) 13:14:56
実は自分がその「変なの」だったっていうオチって怖くね?
0728デフォルトの名無しさん2009/09/07(月) 13:30:20
何その林先生案件
0729デフォルトの名無しさん2009/09/07(月) 15:11:26
>>727
ありきたり過ぎてあくびが出る
0730デフォルトの名無しさん2009/09/07(月) 15:51:32
>>723
さっぱりわからん。頑張っても14Bしか出来んかった
0731デフォルトの名無しさん2009/09/07(月) 17:11:34
>>723
gorubyじゃないよね……?
0732デフォルトの名無しさん2009/09/07(月) 17:18:53
Hello world だけで 11 バイトだからなぁ。
PHP なら 11 バイト可能だけどw
0733デフォルトの名無しさん2009/09/07(月) 17:29:33
Hello, world!
お題がこれだから13byteでPHPでも無理
0734デフォルトの名無しさん2009/09/07(月) 17:30:34
「単純なやり方では」無理、だ
なにかしらの圧縮かけてんだろうけど・・・
0735デフォルトの名無しさん2009/09/07(月) 17:37:24
短縮系golfは初心者の得るものはないので他スレでやっとくれ
0736デフォルトの名無しさん2009/09/07(月) 17:45:07
>>731
gorubyはむしろhだけだった記憶がw
0737デフォルトの名無しさん2009/09/07(月) 18:17:40
exec禁止じゃないから、gorubyを呼び出してるんじゃないかと思うが。
0738デフォルトの名無しさん2009/09/07(月) 19:34:17
s = "aaaaaaaaa[hoge]piyopiyo"
r = "[hoge]piyo"

if s =~ /#{r}piyo/
 puts $&
end

今日こんな感じのコード書いてマッチしねえってことで
しばらくはまってた
0739デフォルトの名無しさん2009/09/07(月) 19:54:27
>>738
気持ちは分かるw

p /#{r}piyo/ #=> /[hoge]piyopiyo/
p /#{Regexp.escape r}piyo/ #=> /\[hoge\]piyopiyo/
0740デフォルトの名無しさん2009/09/07(月) 19:59:26
putsとかpとかprint以外のメソッドに括弧をつけない男の人って
0741デフォルトの名無しさん2009/09/07(月) 20:15:22
自作メソッドにしか付けねーよ
0742デフォルトの名無しさん2009/09/07(月) 20:44:24
括弧は出来るだけ付けるのがナウいんですか?
今までその逆をしてました・・・ごめんなさい
0743デフォルトの名無しさん2009/09/07(月) 21:33:39
カッコがない場合は「わざと」外してる
それは p だったり puts だったり DSL っぽく書く意図だったり
カッコの有無で動作が変わることを経験した人はカッコつけるのを基本にすると思う
0744デフォルトの名無しさん2009/09/07(月) 21:35:00
引数無しメソッドでもつけるのが最近のマイブーム
ああ、これ関数だなって一発でわかるし
0745デフォルトの名無しさん2009/09/07(月) 21:39:13
普段はまあどっちでも好きなようにしろ、が回答
紛らわしいときに ( ) が使われているのなら普段が ( ) ありでもなしでも構わない

問題は、普段からカッコつけない奴の多くは「紛らわしいとき」を全く意識しないということ
たまたま動いてるのを普通にスルーしやがる

普通逆だろ、カッコ常につけまくってる奴のほうがカッコの有無に無頓着であるべきだろ
0746デフォルトの名無しさん2009/09/07(月) 21:47:12
kimoi
0747デフォルトの名無しさん2009/09/07(月) 22:13:24
obj.method arg とか死ぬほどキモイな
■ このスレッドは過去ログ倉庫に格納されています