Ruby 初心者スレッド Part 40
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2010/12/11(土) 15:46:15★注意★ Ruby 1.9.2 は初心者には若干時期早尚です。初心者には Ruby 1.8.7 を強くお勧めします。
文字エンコーディング等の外部基礎知識が必要な上、不完全対応の第三者ライブラリでの問題の切り分けが手間です。
迷う点の少ない1.8.7に習熟→おもむろに1.9.2の変更点のみ重点学習、とすればスムーズに移行できるでしょう。
関連スレや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を読め」でいいので、叩かない&怖がらせない。
・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。
・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。
0002レシピブックを第3版に
2010/12/11(土) 15:47:23Q:
いちからRubyを始める初心者向けのRuby入門書は何がありますか?
A:
プログラム作成自体の初心者なら
・「たのしいRuby 第3版 Rubyではじめる気軽なプログラミング」
http://www.amazon.co.jp/gp/product/4797357401/
文法は理解済み(orリファレンスで乗り切る既言語習得者)の場合のRuby様式を知る必携2冊目
・「初めてのRuby」
http://www.amazon.co.jp/dp/4873113679/
以下は外れが少ないとされている本です。必ず立ち読みした上で自分の目的とレベルに応じて購入してください。
・「Rubyレシピブック 第3版 303の技」(初心者向け、1.9対応)
http://www.amazon.co.jp/dp/4797359986/
・「プログラミングRuby 第2版 言語編」(初心者向け参考書)
http://www.amazon.co.jp/dp/4274066428/
・「Ruby Way 第2版」(脱初心者向け)
http://www.amazon.co.jp/dp/4798115339/
・ 「Rubyクックブック ―エキスパートのための応用レシピ集」(脱初心者向け)
http://www.amazon.co.jp/dp/4873113245/
以下の本は言語作者が書いた最新本ですがとりあえず初学者向けではありません。
・「プログラミング言語 Ruby」(言語として深く知りたい人向け)
http://www.amazon.co.jp/dp/4873113946/
0003非更新
2010/12/11(土) 15:48:12・Ruby Home Page 【公式、お役立ち度が微妙】
http://www.ruby-lang.org/ja/
・Rubyリファレンスマニュアル 【検索機能休止中、Googleなどの併用を】
http://www.ruby-lang.org/ja/man/
http://www.ruby-doc.org/ 【詳しい英語版】
・HTMLヘルプ版リファレンスマニュアル配布さん 【Windowsで便利、検索も無論可能】
http://elbereth-hp.hp.infoseek.co.jp/ruby.html
・Programming Ruby - The Pragmatic Programmer's Guide 【好評書籍の初版がネットで、ただし英語】
http://www.ruby-doc.org/docs/ProgrammingRuby/
・Rubyist Magazine - るびま 【ライブラリ紹介などの読み物、過去のコードレビューは一読の価値あり】
http://jp.rubyist.net/magazine/
・逆引きRuby 【やりたいことから探すWiki、最近元気ないので編集者募集】
http://www.namaraii.com/rubytips/
・はてなキーワード > Ruby 【うっかりどっさりまとまったリンク集、説明なし】
http://d.hatena.ne.jp/keyword/Ruby
・RubyForge 【○○をやりたい管理されたライブラリを探すならここ、英語】
http://www.rubyforge.org/
・GitHub 【○○をやりたいコードをとにかく探すならここ、英語】
http://github.com/
・日本Rubyの会 【最近はオフライン勉強会の寄り合い場と化しているので近くで勉強会があれば】
http://jp.rubyist.net/
0004最新スレに更新
2010/12/11(土) 15:49:12【RoR】Rubyについて Part 41【CPAN vs RubyGems】
http://hibari.2ch.net/test/read.cgi/tech/1281473294/
●Railsスレ
【RoR】Ruby on Rails Part11
http://hibari.2ch.net/test/read.cgi/php/1292032736/
●アンチスレ
Rubyについて(アンチ専用) Part004
http://pc12.2ch.net/test/read.cgi/tech/1249737531/
●Windows用スレ
【ActiveScript】RubyをWindowsで使うスレ【GUI】
http://pc12.2ch.net/test/read.cgi/tech/1155031689/
●GUIの使えなさを堪能するスレ
Ruby で GUI するスレ
http://pc12.2ch.net/test/read.cgi/tech/1269609576/
●ぶん投げスレ
Rubyの宿題教えてください。2限目
http://pc12.2ch.net/test/read.cgi/tech/1200175247/
●前スレ
Ruby 初心者スレッド Part 39
http://hibari.2ch.net/test/read.cgi/tech/1287623173/
Ruby 初心者スレッド Part 38
http://hibari.2ch.net/test/read.cgi/tech/1282781922/
Ruby 初心者スレッド Part 37
http://hibari.2ch.net/test/read.cgi/tech/1274121477/
0005デフォルトの名無しさん
2010/12/11(土) 15:50:300006まとめて短く、ASRのURL更新
2010/12/11(土) 15:51:15Ruby 1.8.5(非安定板)→ Ruby 1.8.6(旧安定版、長期政権)→ Ruby 1.8.7(超お勧め)
Ruby 1.9.0(旧開発版)→ Ruby 1.9.1(旧1.9系列安定版)→ Ruby 1.9.2(1.9系最新安定版)
実のところ、よくできた教科書またはトラブル時に聞き倒せる師匠がいるなら 1.9.2 から入っても特に問題はない
1.9.2ユーザーの場合は「1.9.2使ってます」と断った上で質問してほしい由
【Windows版に関するよくある疑問】
初心者の人はとりあえず ActiveScriptRuby の 1.8.7 使っておけば間違いない(mswin32)
ttp://www.artonx.org/data/asr/
の題字のでかい 「ActiveScriptRuby 1.8.7(pなんとか) with-winsock2 tcl-stub」
マニュアルはWebで見ることもできるが手元にあると便利、1.8.7 の HTML ヘルプ版が
ttp://www.ruby-lang.org/ja/documentation/
の「Rubyリファレンスマニュアル刷新計画 chm版 1.8.7用」
夢のお告げ等、何かの間違いで Ruby の知識がない初心者時代から 1.9.2 を使いたいマゾい人は
ttp://www.artonx.org/data/asr/ の「Ruby-1.9.2-p数字 Microsoft Installter Package」
「Windows版Ruby」として紹介されることのある以下の「RubyInstaller」は
これ特有のトラブルの修復知識が必要なので今のところは初心者には勧めない(mingw32)
ttp://rubyinstaller.org/
このトラブルを回避できるようになったら初級者脱出かも
0007デフォルトの名無しさん
2010/12/11(土) 15:52:230008デフォルトの名無しさん
2010/12/11(土) 18:54:45言語訓練のために立てたものです。
アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。
京都大学霊長類研究所
0009デフォルトの名無しさん
2010/12/11(土) 20:45:54rubyはweb開発に使われていると聞きます。
出力や入力、関数などについては分かったのですが
どうやったらrubyとweb開発を繋げることができるのか分かりません。
rubyとweb開発を繋げて考えるには何をするべきなのですか?
0010デフォルトの名無しさん
2010/12/11(土) 20:46:340011デフォルトの名無しさん
2010/12/11(土) 20:55:14どうやってあそこにRubyで書くの?
0012デフォルトの名無しさん
2010/12/11(土) 20:56:580013デフォルトの名無しさん
2010/12/11(土) 20:58:14まずは「ruby web開発」でググるところから始めてみては?
いや煽りじゃなく真面目に
0014デフォルトの名無しさん
2010/12/11(土) 21:01:35JavaScriptはクライアントで動くものです。
RubyでWebアプリケーション開発、という場合にRubyを使うのはサーバ側です。
0015デフォルトの名無しさん
2010/12/11(土) 21:01:44http://jp.rubyist.net/magazine/?0011-CGIProgrammingForRubyBeginners
0016デフォルトの名無しさん
2010/12/11(土) 21:08:03ttp://www.nicovideo.jp/watch/sm5630363
0017デフォルトの名無しさん
2010/12/11(土) 21:16:19そういうことやるための環境が整備されてない言語では無理。
Java FXかAdobe FlexかMicrosoft Silverlight(かMono Moonlight)でやんなさい。
0018デフォルトの名無しさん
2010/12/11(土) 21:16:53Webブラウザ === Webサーバ (Apacheなど) === Ruby
1. Web ブラウザが Web サーバにドキュメントを要求する。
2. Web サーバはリクエストされたドキュメントを Web ブラウザに返す。
このとき返すドキュメントは既に用意されていた静的なものでもいいし
Ruby にその場で作らせた動的なものでもいい。
CGI の場合は Web サーバと Ruby は別個のプロセスであり
標準入出力と環境変数で情報をやりとりする。
それだと遅いので Web サーバに Ruby を組み込むこともある。
で、ここまで書いてから Wikipedia の CGI の記事がよさげってことに気づいたってオチ
http://ja.wikipedia.org/wiki/Common_Gateway_Interface
001918
2010/12/11(土) 21:18:080020デフォルトの名無しさん
2010/12/12(日) 00:09:38gem入れるときにコンパイル必要なものがこける
linuxだとそういうのを入れるためのコンパイル環境は簡単に入れられる。
(ubuntuならapt-get install buildeessentialとかそういうの)
Windowsだと、mingw32版ならdevkitいれればいいよね?
mswin32版の場合どうすんの?
コンパイル済みのものが別途用意されてる場合もあるけど、
なら最初からgemにプラットフォーム指定していれとけやっていつも思うんだけど
0021デフォルトの名無しさん
2010/12/12(日) 00:12:300022デフォルトの名無しさん
2010/12/12(日) 00:20:32それってWebアプリなのか・・・
Adobe AIRみたいなものだよな?
JavaFX相当のことはJRubyじゃできないんだっけ?
どうしてもRubyでやりたいというのは「Rubyに慣れてきて何でもRubyでやりたい」という意味以外ない気がするんだが、
AIRのようなRIAなフレームワークならTitanium Desktopというのがある
まだ使われているのは殆ど見ないが
0023デフォルトの名無しさん
2010/12/12(日) 00:24:14自分のマシンのコンパイラが走るようになってる
gem パッケージ作者がバイナリパッケージを提供していなくて、
自分の使用している Ruby が mswin で、
自分のマシンに VC 6 がインストールされてない場合、その gem パッケージは使用できないだろうね
それでもどーしても使いたい場合は
コンパイル環境を用意した上で、それでコンパイルされた Ruby をインストールしてないと駄目
実質的に mingw ruby + devkit (または mingw コンパイラ一式別途導入)しか選択肢がないけど…
コンパイラがインストールされてない安全に倒した Linux サーバとかでも同じ問題が実は起こる
そういう場合、Linux のソフトウェアパッケージで gem パッケージ相当が用意されてたりもする
0024デフォルトの名無しさん
2010/12/12(日) 00:36:58うむ、すごいそれっぽい
0025デフォルトの名無しさん
2010/12/12(日) 00:59:39migw32 向けに適切にコンパイルされた拡張バイナリは、mswin32 でも使用できる…ということになっている
VC6 がないなら MinGW というか GCC でコンパイルしてしまえばいい
rubygem は作者が登録しているバイナリパッケージしか探さないので
作者がmswin32名義のバイナリパッケージ(中身はmingw32製)を用意し忘れてた場合
gem install hogehoge という書き方ではインストールできないことがある
mswin32 名義のバイナリパッケージ入れてーとgem作者にメールでもするのが一番早い
002620
2010/12/12(日) 01:12:35http://hibari.2ch.net/test/read.cgi/tech/1281473294/693-695
693 名前:デフォルトの名無しさん[sage] 投稿日:2010/12/11(土) 12:25:29
windows用のバイナリがいろいろ出てるけど
それぞれの特徴とか利点欠点教えて
Ruby Install Guide::Microsoft Windows版のビルト環境による違い
に書いてあること以外で
694 名前:デフォルトの名無しさん[sage] 投稿日:2010/12/11(土) 14:46:28
>>693
mswin … ttp://www.artonx.org/data/asr/
VC6 でコンパイルされたもの、ActiveScriptRuby、メイドインヒゲのオヤジ、配布パッケージは豪華で便利
昔から「Windows版」として扱われてたので、どんな gem でも tips でも Windows 環境だと思ってくれる(mswin32)
VC6 が基本入手不可なので緩やかに終了して mingw にバトンタッチされる予定だったのだが延命中、初心者向け
mingw … ttp://rubyinstaller.org/
MinGW でコンパイルされたもの、RubyInstaller、世界の選択、配布パッケージは Ruby 本体のみ
数年前から「Windows版」として認知され始めたもの、名前は mingw や mingw32 を返す
RUBY_PLATFORM =~ /mswin/ という古い「Windows環境チェック」記述では false になるという初心者トラップ発生器
devkit で gem ソースを自前コンパイルしたり Windows チェック処理を自力書き換えしたりする必要がまだ時々ある
mswin よりはファイル IO とかが普通速度らしいので上記のライブラリ使用時の障害を自力克服できる中級者向け
cygwin … cygwin 環境でコンパイルされたもの、cygwin 常用者向けのマニアック Ruby
なんでも自分でできる人向けの選択、外野がどうこう言うことではないのでおまえらも文句言うな的な似非上級者向け
002720
2010/12/12(日) 01:15:38さすがにVC6はww
Ubuntuでもインストール直後はコンパイルできませんね
>>25
バイナリ互換性はあるんですね
mswin32名義でも中身はmingw32なんですかw
0028デフォルトの名無しさん
2010/12/12(日) 11:17:35gem install --source なんとか でなんとかの部分に mingw32 のを書いても代わりに持ってきてくれるはず
0029デフォルトの名無しさん
2010/12/12(日) 15:11:170030デフォルトの名無しさん
2010/12/12(日) 15:28:25x=232
def f(func)
...
end
p f(x)
=> "x"
0031デフォルトの名無しさん
2010/12/12(日) 15:54:34その f って、たとえば f(1) のように呼び出したら何を返すの?
0032デフォルトの名無しさん
2010/12/12(日) 15:57:25foo=232
def f(bar)
...
end
p f(foo)
=> "foo"
f(1)は未定義ということで。
0033デフォルトの名無しさん
2010/12/12(日) 16:00:25"1234"と返ってきたほうがまだ使い道ありそうだけど、どういう使い方が想定されてます?
0034デフォルトの名無しさん
2010/12/12(日) 16:02:08barには232が渡されるだけだから変数名なんて知らないか・・・。
単に
foo=232
という定義済みの変数があったとき、
後で
"foo"
という文字列を取り出したいだけなんですが・・・。
0035デフォルトの名無しさん
2010/12/12(日) 16:07:510036デフォルトの名無しさん
2010/12/12(日) 16:20:11それいただきました。
しかしわりと面倒ですね・・・。
0037デフォルトの名無しさん
2010/12/12(日) 16:24:001..4がRangeだし、俺はto_sで1..4でいいんじゃね?って思うし開発者の意図と一致したけど
何で"1234"がいいと思った?
"1234"が得たいだけなら [*1..4].to_s ででるけど、結果的だしな
0038デフォルトの名無しさん
2010/12/12(日) 16:36:50それを言うなら、何で[1,2,3,4].to_sは”1234”になるんだよ、"1,2,3,4"じゃないんだよって話にもなる
0039デフォルトの名無しさん
2010/12/12(日) 18:13:08=> "[1, 2, 3, 4]"
(´・ω・`)
004033
2010/12/12(日) 18:16:18得たいだけなら、(1..4).to_a.to_sする
0041デフォルトの名無しさん
2010/12/12(日) 18:23:00(1..1_000_000_000_000_000_000).to_s とかしてぎっしり詰まったのが返って
きたら泣く。
まぁそれだけならArrayとかも巨大だとそうなるんだけどさ、Rangeは両端
しか保持してないんだし、両端だけが文字列に表れるのは妥当だと思うよ。
0042デフォルトの名無しさん
2010/12/12(日) 18:24:17eval したら to_s のレシーバが復元できるからじゃまいか
Ruby の場合他のクラスもそうなのかは知らない
0043デフォルトの名無しさん
2010/12/12(日) 19:05:05それは String#dump の「表示されても人間が読めないコントロールコードなどを数値で表示する」機能だな
まあ文字列オブジェクトではないものを display するとはそもそもなんぞやという話はあって、
Ruby では「文字列形式への変換」を to_s が、「人間が読める形式への変換」を inspect が司ってる
んで関数的メソッド puts や print は to_s を、関数的メソッド p は inspect を呼ぶ
そのクラスの製作者が「このクラスのオブジェクトの文字列的表現は○○だ!」と決めたのがto_sで返る
つまりRangeを作った人が考えるところの「Rangeオブジェクトの文字列的表現」が "(初端..終端)" なのだろ
これは inspect も同じだ(p で表示するのもこの形式で充分だと思ったのだろう)
あと Range オブジェクトは>>41の言うように両端しか持ってないので、
「途中を具現化」したものはRangeオブジェクトじゃない別のものになるよ
[1,2,3, 5,6, 8] という配列を puts して [1-3, 5, 6, 8] って勝手に省略されてたらムキーだろ
「中身」が欲しい場合はユーザーが手作業で行う
0044デフォルトの名無しさん
2010/12/12(日) 19:07:550045デフォルトの名無しさん
2010/12/13(月) 06:08:53Railsを参考に仕様としましたが、activerecordだったりactive_recordだったりしてよくわかりませんでした。
■ このスレッドは過去ログ倉庫に格納されています