Ruby 初心者スレッド Part 30
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2009/08/08(土) 08:21:23★注意★ 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を読め」でいいので、叩かない&怖がらせない。
・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。
・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。
0694デフォルトの名無しさん
2009/09/06(日) 18:44:10>>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このBlog書いてるの誰?
0696デフォルトの名無しさん
2009/09/06(日) 19:11:53批判とかツッコミはやめたほうがいいよ。スルー推奨。
過去の記事を読めばわかるけど、実は極度に打たれ弱い。
0697デフォルトの名無しさん
2009/09/06(日) 19:24:49叩き甲斐があるってもんじゃないか
0698デフォルトの名無しさん
2009/09/06(日) 19:26:10オモチャが極端に少ない生活してるんだな
0699デフォルトの名無しさん
2009/09/06(日) 19:26:43> 叩き甲斐があるってもんじゃないか
叩き甲斐とは、叩かれ強い人を精神病院送りにした時感じるもの。
0700デフォルトの名無しさん
2009/09/06(日) 20:06:46本人乙
0701デフォルトの名無しさん
2009/09/06(日) 20:12:450702デフォルトの名無しさん
2009/09/06(日) 20:13:410703デフォルトの名無しさん
2009/09/06(日) 20:45:320704デフォルトの名無しさん
2009/09/06(日) 20:49:45,.、 .,r.、
,! ヽ ,:' ゙;.
! ゙, | }
゙; i_i ,/
,r' `ヽ、
| ,.、 ,r.、 ,i" _, ._ ゙;
| ,! ヽ,:' ゙;. !. ・ ・ ,!
| ! ,! } ヽ、 x _,r''
|二゙; i二二二(⌒ノ"''`''''''''''''"´`ヽ.
| ,r' `ヽ、 ´ヾ、 l l
,i" _, _ ゙; ! i___|
!. ・ ・,! | t,ノ
|ゝ_ x _::' !、、、、、、、、、、!
|,/"`''''''''''''''"´';, | | |
(,;! !) | | |
|゙''::r--、::--;r' |____|_____|
|―゙'ー-‐゙ー-゙'―┐ (,,,__(,,,____)
0706デフォルトの名無しさん
2009/09/06(日) 21:03:290707デフォルトの名無しさん
2009/09/06(日) 21:08:400708デフォルトの名無しさん
2009/09/06(日) 21:17:000709デフォルトの名無しさん
2009/09/06(日) 22:08:160710デフォルトの名無しさん
2009/09/06(日) 23:38:46逆にPython上でRubyを走らせる実装ってありますか?
BlenderでRubyを使いたいです・・・
0711デフォルトの名無しさん
2009/09/06(日) 23:42:50ルートのMakefileのCFLAGから-O2を外してmakeすれば良いみたい。testとtest-all通った。
ruby-1.8.7-p174はtestは通ったがtest-allするとtestが全然始まらない。重いだけかな?
0712デフォルトの名無しさん
2009/09/07(月) 00:09:02MoonWolf
0713デフォルトの名無しさん
2009/09/07(月) 02:25:130714デフォルトの名無しさん
2009/09/07(月) 07:32:470715デフォルトの名無しさん
2009/09/07(月) 08:58:22突っ込みたい人はここでどうぞ。好きなだけ突っ込んであげて。
0716デフォルトの名無しさん
2009/09/07(月) 09:03:05p = Proc.new {|x|
print(x)
if (x == 2)
return
end
print(', ')
}
0717デフォルトの名無しさん
2009/09/07(月) 09:18:350718デフォルトの名無しさん
2009/09/07(月) 09:34:31エントリ更新するたびに出てくるようになるぞ
0719デフォルトの名無しさん
2009/09/07(月) 10:36:340720デフォルトの名無しさん
2009/09/07(月) 10:47:11http://blog.headius.com/2009/08/introducing-surinx.html
JRubyの人が新しい言語作るってよ。
Duby = Rubyの見た目+Javaの型システム+静的型、型推論
Surinx = Rubyの見た目+Javaの型システム+動的言語
0721デフォルトの名無しさん
2009/09/07(月) 10:55:43スレ違い
0722デフォルトの名無しさん
2009/09/07(月) 10:57:090723デフォルトの名無しさん
2009/09/07(月) 10:59:43http://golf.shinh.org/p.rb?hello+world#Ruby
おいいいいい、RubyでHello worldが12バイトとかどうやんだよ。解説よろ
0724デフォルトの名無しさん
2009/09/07(月) 12:17:18juby on jails
0725デフォルトの名無しさん
2009/09/07(月) 12:31:000726デフォルトの名無しさん
2009/09/07(月) 12:32:17そういえば夏も終わりだねぇ
0727デフォルトの名無しさん
2009/09/07(月) 13:14:560728デフォルトの名無しさん
2009/09/07(月) 13:30:200729デフォルトの名無しさん
2009/09/07(月) 15:11:26ありきたり過ぎてあくびが出る
0730デフォルトの名無しさん
2009/09/07(月) 15:51:32さっぱりわからん。頑張っても14Bしか出来んかった
0731デフォルトの名無しさん
2009/09/07(月) 17:11:34gorubyじゃないよね……?
0732デフォルトの名無しさん
2009/09/07(月) 17:18:53PHP なら 11 バイト可能だけどw
0733デフォルトの名無しさん
2009/09/07(月) 17:29:33お題がこれだから13byteでPHPでも無理
0734デフォルトの名無しさん
2009/09/07(月) 17:30:34なにかしらの圧縮かけてんだろうけど・・・
0735デフォルトの名無しさん
2009/09/07(月) 17:37:240736デフォルトの名無しさん
2009/09/07(月) 17:45:07gorubyはむしろhだけだった記憶がw
0737デフォルトの名無しさん
2009/09/07(月) 18:17:400738デフォルトの名無しさん
2009/09/07(月) 19:34:17r = "[hoge]piyo"
if s =~ /#{r}piyo/
puts $&
end
今日こんな感じのコード書いてマッチしねえってことで
しばらくはまってた
0739デフォルトの名無しさん
2009/09/07(月) 19:54:27気持ちは分かるw
p /#{r}piyo/ #=> /[hoge]piyopiyo/
p /#{Regexp.escape r}piyo/ #=> /\[hoge\]piyopiyo/
0740デフォルトの名無しさん
2009/09/07(月) 19:59:260741デフォルトの名無しさん
2009/09/07(月) 20:15:220742デフォルトの名無しさん
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:120747デフォルトの名無しさん
2009/09/07(月) 22:13:240748デフォルトの名無しさん
2009/09/07(月) 22:26:460749デフォルトの名無しさん
2009/09/07(月) 22:56:440750デフォルトの名無しさん
2009/09/07(月) 23:12:59メソッドの戻り値も変数に格納しない
0751デフォルトの名無しさん
2009/09/08(火) 00:11:010752デフォルトの名無しさん
2009/09/08(火) 00:12:52あ、1.9.1だった。スマン。
0753デフォルトの名無しさん
2009/09/08(火) 05:40:43よくはないが、別にそんなクリティカルな用途で使うわけでもないだろうし別にいいんじゃね
0754デフォルトの名無しさん
2009/09/08(火) 07:59:59--- Perl ---
sub func { print 'func' }
$func_ref = \&func;
$func_ref->();
--- Ruby ---
def method
print 'method'
end
method_ref = ????
method_ref.call??
こうするしかないのかな?
method_ref = proc { method }
method_ref.call
0755デフォルトの名無しさん
2009/09/08(火) 08:24:37Kernel#__send__(文字列 or シンボル, 引数...)
Method#call(引数...)
UnboundMethodをbindして#call(引数...)
など。
0756デフォルトの名無しさん
2009/09/08(火) 08:40:35Object#method # >>755の真ん中の奴
def func ; puts 'func' ; end
func_ref = method(:func)
func_ref.call
0757デフォルトの名無しさん
2009/09/08(火) 09:07:43サンクス
0758デフォルトの名無しさん
2009/09/08(火) 09:33:53--disable-pthreadでconfigureするかどうかってこと?
意味ないからどっちでも同じ結果になるよ。
0759デフォルトの名無しさん
2009/09/08(火) 12:04:10サンクス
そうするとstruct timespecが二重定義って怒られるのはどうしよう
0760デフォルトの名無しさん
2009/09/08(火) 15:12:36redmineで報告すればいいんじゃないかな。
0761デフォルトの名無しさん
2009/09/09(水) 13:16:210762デフォルトの名無しさん
2009/09/09(水) 13:41:05いきなり書いた一行の文って、どう考えればいいの?
Cで言うmain関数みたいなのに暗黙のうちになってるとか、
Javaで言うmainメソッドみたいなのに暗黙のうちになってるとか、
・・・どう解釈したらいいのだ?
0763デフォルトの名無しさん
2009/09/09(水) 13:51:50$ jeweler --rspec hogeeee
create .gitignore
create Rakefile
create LICENSE
create README.rdoc
create .document
create lib
create lib/hogeeee.rb
create spec
create spec/spec_helper.rb
create spec/hogeeee_spec.rb
Jeweler has prepared your gem in hogeeee
$ ls hogeeee/
LICENSE README.rdoc Rakefile lib spec
0764デフォルトの名無しさん
2009/09/09(水) 13:59:55http://i.loveruby.net/ja/rhg/book/minimum.html
コンテキストとしてのself とか main とか
0765デフォルトの名無しさん
2009/09/09(水) 14:01:25トップレベルにも self として参照できるオブジェクトがある。
ほとんど単に Object.new したものだが、文字列化すると main
と返すようになっている点だけちょっと違う。
puts self
#=> main
p self
#=> main
puts self.class
#=> Object
0766デフォルトの名無しさん
2009/09/09(水) 14:07:31これ知ったとき、spec_helper をどっかの rubygem からコピペして
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
を全ファイルの先頭に自力で書いてた俺超涙目
0767デフォルトの名無しさん
2009/09/09(水) 15:20:22rspec でチェックすることはできませんか?
0768デフォルトの名無しさん
2009/09/09(水) 15:36:33putsを呼ぶ時点のselfにspecからアクセスできるなら
ソレ.should_receive(:puts).with(出力)
などで可能だと思う。
0769デフォルトの名無しさん
2009/09/09(水) 15:38:36$stdout = StringIO.new
で溜め込むとか
0770デフォルトの名無しさん
2009/09/09(水) 16:12:05「メソッド内部」と断ってるし普通アクセスできないと思う
0771デフォルトの名無しさん
2009/09/09(水) 16:43:30class Greeter
def hello(name)
puts "hello, #{name}"
end
end
このような位置のputsはspecで
@greeter.should_receive(:puts).with('guest')
でテストできるけど、さらに奥深くだと無理だろうってことね。
0772デフォルトの名無しさん
2009/09/09(水) 17:01:10汎用的なのは$stdoutねじ曲げる>>769か
これ使ったことあるけど、なんかrspecで書いてる気がしないんだよな
stdout マッチャとか display マッチャとか作るべき
0773デフォルトの名無しさん
2009/09/09(水) 17:18:540774デフォルトの名無しさん
2009/09/09(水) 17:21:07こんな感じ?
Proc オブジェクト使うのはこれはこれで微妙に不評なんだよね
0775デフォルトの名無しさん
2009/09/09(水) 17:51:58ジュエラーか。ジュエリストのほうがかっこいいな。
最近ご無沙汰なんだが、hoeとかnewgemはもう古いの?
0776デフォルトの名無しさん
2009/09/09(水) 18:10:420777デフォルトの名無しさん
2009/09/09(水) 18:55:17配布物を使う人には無用のものだと思っていたのだけど、
なんで依存しているgemがあるんだろう、という疑問。
0778777
2009/09/09(水) 18:59:06作者がadd_development_dependencyを知らないだけなのかな。
0779デフォルトの名無しさん
2009/09/09(水) 22:29:32たとえば 'abcdef' を2文字ずつに分解して ["ab", "cd", "ef"] のようにします。
よろしくお願いします。
0780デフォルトの名無しさん
2009/09/09(水) 22:37:38'abcdef'.scan(Regexp.new('.{%d}' % N))
0781デフォルトの名無しさん
2009/09/09(水) 23:44:39公式HPを見ましたが、Rubyの文法を簡単に説明しているだけで、標準ライブラリの細かい仕様を調べたい時などには役に立たないと感じました。
たとえばgemにインストールしたライブラリであればgem serverコマンドでRDocリファレンスが見れますが、標準ライブラリのRDocのようなものは無いのでしょうか?
バージョンは1.8でも1.9でも構いません。よろしくお願いします。
0782デフォルトの名無しさん
2009/09/09(水) 23:55:43http://www.ruby-lang.org/ja/documentation/
とそのリンク先は見た?
0783781
2009/09/10(木) 00:50:23ありがとうございます。
そのドキュメントは見ましたが、文法の解説という感じなので自分が求めてるものと少し違いました。
言語が違いますがたとえばhttp://java.sun.com/j2se/1.5.0/ja/docs/ja/api/のように、
各クラスにどんなメソッドとフィールドがあって各メソッドの引数は何か、というのが一目で分かるようなAPI的なものを探しています。
0784デフォルトの名無しさん
2009/09/10(木) 00:55:42ttp://www.ruby-lang.org/ja/man/html/_C1C8A4DFB9FEA4DFA5AFA5E9A5B9A1BFA5E2A5B8A5E5A1BCA5EBA1BFCEE3B3B0A5AFA5E9A5B9.html
ttp://www.ruby-lang.org/ja/man/html/_C5BAC9D5A5E9A5A4A5D6A5E9A5EA.html
0785デフォルトの名無しさん
2009/09/10(木) 01:02:58何を言ってるんだおまえは
http://doc.okkez.net/static/187/library/_builtin.html
0786デフォルトの名無しさん
2009/09/10(木) 01:05:470787デフォルトの名無しさん
2009/09/10(木) 01:18:470788デフォルトの名無しさん
2009/09/10(木) 02:03:14配列とハッシュしかみあたらないのですが。。。
0789デフォルトの名無しさん
2009/09/10(木) 02:05:35体裁が gem の rdoc に一番近いのはここの Core API のところかなあ
http://www.ruby-doc.org/
書籍だと内容的にはちと古いがピッケル本のライブラリ編とか
0790デフォルトの名無しさん
2009/09/10(木) 02:15:16Arrayでおk
0791デフォルトの名無しさん
2009/09/10(木) 02:30:57連結リストを何に使うの?
キューやスタックなら配列で十分だぞ(#shift, #unshift, #push, #pop)
Lispの処理系を作るとかいう話なら自分で作るべき
0792デフォルトの名無しさん
2009/09/10(木) 04:25:14str.scan(/../n)
Nが毎回可変なら>>780
0793デフォルトの名無しさん
2009/09/10(木) 06:01:015文字を2文字ずつとかしたとき余った文字って捨てていいの
0794デフォルトの名無しさん
2009/09/10(木) 07:05:14/../n の、n オプションって何?調べたけど見つからない
>>793
str.scan(/..?/)
Nが正の整数で可変なら、
r = '.' + ('.?' * (N-1))
str.scan(Regexp.new(r))
でいける?
うーん。正規表現よくわからん。
■ このスレッドは過去ログ倉庫に格納されています