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

Ruby 初心者スレッド Part 34

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2010/01/28(木) 08:39:14
プログラミング言語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を読め」でいいので、叩かない&怖がらせない。
 ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。
 ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。
0951デフォルトの名無しさん2010/03/03(水) 20:49:38
>>950
>>698-
0952デフォルトの名無しさん2010/03/03(水) 20:59:38
なるほど 方向性が違うな
0953デフォルトの名無しさん2010/03/03(水) 21:39:57
rubyを始めようかpythonを始めようかと思っているのですが
具体的にrubyはこれが得意、これが不得意ってあるのでしょうか?
0954デフォルトの名無しさん2010/03/03(水) 21:41:47
>>953
>>834-
0955デフォルトの名無しさん2010/03/03(水) 21:49:44
ruby は Windows が苦手
0956デフォルトの名無しさん2010/03/03(水) 22:11:13
HTMLのテキストボックスへの文字の自動入力って
rubyじゃ無理?
0957デフォルトの名無しさん2010/03/03(水) 22:19:29
どういうときに入力したい? 入力したあとどうしたい?

どっかのサーバから取得したHTMLに、ブラウザ的に文字を「入力」して、そのデータを送信する?
それとも、自分がCGIなどで吐き出すフォームに、ユーザーからの入力を保持したまま再度返す?
0958デフォルトの名無しさん2010/03/03(水) 23:23:20
mechanize つかえ
0959デフォルトの名無しさん2010/03/03(水) 23:30:07
>>953
Windowsメインで使うならPython、そうでないならRubyでいいんじゃないかな、ここRubyスレだし。
あとはMacならRubyとか。

俺自身はRubyをWindowsでも使ってるけど、Rails回りは本当いろいろアレなので諦めたw coLinux入れてそっち動かしてる
0960デフォルトの名無しさん2010/03/03(水) 23:45:26
MacでもPythonの方がよさそう
0961デフォルトの名無しさん2010/03/04(木) 00:12:29
中の人って嫌windows厨なのかい?
それとも力不足?
0962デフォルトの名無しさん2010/03/04(木) 00:19:07
コミュニティの人材不足
Windows専門といえる人がそれほど多くない

言語開発者が複数のOSの知識をふんだんに持ってることは稀(たいてい1個)
移植の面からがっちりサポートするという人がたいていまわりにいるもんなんだが、
Rubyは歴史的にその辺が薄いのだ
Windowsプログラミングはなんかもうばっちりで移植の経験も豊富、という人がいればぜひ
0963デフォルトの名無しさん2010/03/04(木) 00:53:49
テキストファイルとファイルシステム周りだけでも何とかしてもらいたいもんだがなあ
0964デフォルトの名無しさん2010/03/04(木) 00:58:46
とりあえず File.read にバイナリスイッチを…
0965デフォルトの名無しさん2010/03/04(木) 01:05:09
windowsのサポートが充実しても面倒なユーザーが増えるだけであんまりいいことが無い件
0966デフォルトの名無しさん2010/03/04(木) 01:06:52
ドキュメントを英訳したときもそう思ったはず
つまり実際問題として多勢に影響はない
0967デフォルトの名無しさん2010/03/04(木) 01:09:31
たしかRubyってひろゆきが作ったんだっけ
0968デフォルトの名無しさん2010/03/04(木) 01:18:32
西村ひろゆきが作ったらしいな
0969デフォルトの名無しさん2010/03/04(木) 01:22:53
>>964
つ File.binread

という話ではないんだろうな。
0970デフォルトの名無しさん2010/03/04(木) 01:22:56
うんよく言われる
けっこう混じってる
0971デフォルトの名無しさん2010/03/04(木) 08:18:59
C++嫌い
Windows嫌い
ガキですかw
0972デフォルトの名無しさん2010/03/04(木) 08:27:42
嫌いというよりノウハウが無いだけだろ
何でガキになるんだよ
Railsのせいで意図せず広まってしまった言語だから
他のメジャーな言語のようにコアな技術者が集まってるわけでもない
0973デフォルトの名無しさん2010/03/04(木) 08:46:17
めんどくさい上に声だけはでかくて、メリットないしのう。
0974デフォルトの名無しさん2010/03/04(木) 09:26:23
突然ですがPraggerって今でもメンテされているんでしょうか?
今後Rubyのバージョンアップについていかないようだったら、
別の物を考えようと思っているので、ご回答お願いします。
0975デフォルトの名無しさん2010/03/04(木) 10:29:30
作者に聞けよ
0976デフォルトの名無しさん2010/03/04(木) 10:30:24
教祖がウィンドウズ使ってないと言う大衆布教に致命的な弱点が有るからねえ。

pyのほうが世界的にはユーザ多いしな。
railsのpy版でもあればいいだけだろうし。

マカは相手にするだけ無駄だと思う。objcとかruby以上にマイナーな言語を至極として喜んで使ってる連中だし。メモリリークかクラッシュ上等みたいだし。
0977デフォルトの名無しさん2010/03/04(木) 10:36:13
突然ですがCGI.rbって今でもメンテされているんでしょうか?
今後Rubyのバージョンアップについていかないようだったら、
別の物を考えようと思っているので、ご回答お願いします。
0978デフォルトの名無しさん2010/03/04(木) 10:37:09
>railsのpy版でもあればいいだけだろうし。

django とかほとんどそうだよ
0979デフォルトの名無しさん2010/03/04(木) 10:47:33
バカが伝染るから触っちゃいけません
0980デフォルトの名無しさん2010/03/04(木) 10:56:00
ああああ、980踏んだめんどい

>>977
そういうことする前に1.9.1のlibディレクトリ見ておけ恥ずかしいから
現在のcgi.rbは実質3行だ

require 'cgi/core'
require 'cgi/cookie'
require 'cgi/util'
0981デフォルトの名無しさん2010/03/04(木) 11:06:32
Sinatraでもつかっとけ。
0982デフォルトの名無しさん2010/03/04(木) 11:14:48
新スレ

Ruby 初心者スレッド Part 35
http://pc12.2ch.net/test/read.cgi/tech/1267668057/
0983デフォルトの名無しさん2010/03/04(木) 11:32:13
乙
0984デフォルトの名無しさん2010/03/04(木) 12:10:17
> Railsのせいで意図せず広まってしまった言語だから

これは激しく同意せざるを得ない
0985デフォルトの名無しさん2010/03/04(木) 13:03:23
rspec使ってるです

プログラム作るの自体を間違えて例外が起きてしまっている場合、
テストではなくスクリプト本体の何行目で例外が起きたかを表示させる方法はありませんか

$ spec -fs -b -c spec/hoge_spec.rb
1)
ArgumentError in 'Hoge#hoge'
wrong number of arguments (1 for 0)
./spec/hogehoge/hoge_spec.rb:4:in `hoge'
./spec/hogehoge/hoge_spec.rb:4:
.gem/ruby/1.8/gems/rspec-1.3.0/lib/spec/example/example_methods.rb:40:in `instance_eval'
.gem/ruby/1.8/gems/rspec-1.3.0/lib/spec/example/example_methods.rb:40:in `execute'
/usr/local/lib/ruby/1.8/timeout.rb:53:in `timeout'
.gem/ruby/1.8/gems/rspec-1.3.0/lib/spec/example/example_methods.rb:37:in `execute'
.gem/ruby/1.8/gems/rspec-1.3.0/lib/spec/example/example_group_methods.rb:214:in `run_examples'
.gem/ruby/1.8/gems/rspec-1.3.0/lib/spec/example/example_group_methods.rb:212:in `each'
.gem/ruby/1.8/gems/rspec-1.3.0/lib/spec/example/example_group_methods.rb:212:in `run_examples'
.gem/ruby/1.8/gems/rspec-1.3.0/lib/spec/example/example_group_methods.rb:103:in `run'
.gem/ruby/1.8/gems/rspec-1.3.0/lib/spec/runner/example_group_runner.rb:23:in `run'
.gem/ruby/1.8/gems/rspec-1.3.0/lib/spec/runner/example_group_runner.rb:22:in `each'
.gem/ruby/1.8/gems/rspec-1.3.0/lib/spec/runner/example_group_runner.rb:22:in `run'
.gem/ruby/1.8/gems/rspec-1.3.0/lib/spec/runner/options.rb:152:in `run_examples'
.gem/ruby/1.8/gems/rspec-1.3.0/lib/spec/runner/command_line.rb:9:in `run'
.gem/ruby/1.8/gems/rspec-1.3.0/bin/spec:5:
/usr/bin/spec:19:in `load'
/usr/bin/spec:19:

spec_hoge.rb での行数ではなく、hoge.rb の何行目で例外が起きたかを知りたいんです
0986デフォルトの名無しさん2010/03/04(木) 13:10:52
うん、このへんわかりにくいよね

>>985
wrong number of arguments (1 for 0)
と
./spec/hogehoge/hoge_spec.rb:4:in `hoge'

の間にスクリプト本体でのエラー記述が何もないということは、エラー出してるのはspecファイルだ
rspecとして記述ミスがあるから探せ
ArgumentErrorだからきっとshouldが抜けてる個所がある
0987デフォルトの名無しさん2010/03/04(木) 16:01:44
module AAA
end

module AAA::BBB
end

とした場合、
BBBはAAA内のモジュールかクラスのどちらになるんですか?
0988デフォルトの名無しさん2010/03/04(木) 16:17:50
いやそのへんは見たまんまだ
module って自分で書いてるんだからモジュール
「途中」がナニかというのには影響しない

irb> module AAA; end
irb> p AAA.class
Module
irb> module AAA::BBB; end
irb> p AAA::BBB.class
Module
irb> class AAA::CCC; end
irb> p AAA::CCC.class
Class
0989デフォルトの名無しさん2010/03/04(木) 16:27:49
クラスの中にモジュール追加は、たとえば

module String::EmojiUtilities
end
とか

class String
  module EmojiUtilities
  end
end
とか書けるわけだ。
0990デフォルトの名無しさん2010/03/04(木) 16:28:17
rubyの特徴としてプログラミングが楽しいということが上げられていましたが、
パイソンなんかと比べてもやはりそうですか?
0991デフォルトの名無しさん2010/03/04(木) 16:30:04
その人のこれまでのバックグラウンドによるんじゃないかね。
0992デフォルトの名無しさん2010/03/04(木) 16:37:07
>>990
パイソンをやってみてどうでしたか?
0993デフォルトの名無しさん2010/03/04(木) 16:42:14
>>992
名前空間の仕組みがRubyとくらべてすっきりしているし
help()も使いやすくプログラミングしていてとてもたのしかったです
関数をファーストクラスとして扱いやすいのもいいですね
0994デフォルトの名無しさん2010/03/04(木) 16:57:01
riと
Rubyリファレンスマニュアル(ttp://www.ruby-lang.org/ja/man/)と
るりまって何が違うですか?

どれが一番正確(頼りになる/一次ソースになる)ですか?教えて、えらい人!!
09959872010/03/04(木) 17:42:23
>>988-989
module AAA::BBB
↑このmoduleは、AAA内のモジュールBBBという意味なんですね

.classでオブジェクトの種類が参照できるのも勉強になりました

ところで、
class AAA
end
class BBB < AAA
end
のようなクラスの継承とは違うのですか?
0996デフォルトの名無しさん2010/03/04(木) 17:47:25
module AAA::BBB は

module AAA
  module BBB
  end
end
0997デフォルトの名無しさん2010/03/04(木) 17:52:48
うーん、クラスとモジュールの違いってことか。
0998デフォルトの名無しさん2010/03/04(木) 18:00:42
>>994
一番正確なのはソースにかかれている実装。(バグも完全に記述されている by matz)
riで出てくるのはソース内にrdocで書かれたドキュメンテーションコメント。
RubyリファレンスマニュアルはもともとWikiだったので誰でも書き換えることが出来た。
るりまはボランティアのプロジェクトで実装を調べながらゆっくり作成中。

まー、実用上は、るりまでいいけど、まだ完全ではないので、必要に応じてriやソースかな。

0999デフォルトの名無しさん2010/03/04(木) 18:10:30
>>998
ありがとうございます。
エディタから引きやすいのでriをメインに使うことにします。
1000デフォルトの名無しさん2010/03/04(木) 18:26:22



                たのしいにちようび
                ┼ヽ  -|r‐、. レ |
                 d⌒) ./| _ノ  __ノ
                _______
                企画・製作 NHK
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。