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を読め」でいいので、叩かない&怖がらせない。
・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。
・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。
0002デフォルトの名無しさん
2009/08/08(土) 08:24:14Q:
いちからRubyを始める初心者向けのRuby入門書は何がありますか?
A:
プログラム作成自体の初心者なら
・「たのしいRuby 第2版 Rubyではじめる気軽なプログラミング」
http://www.amazon.co.jp/dp/4797336617/
文法は理解済み(orリファレンスで乗り切る既言語習得者)の場合のRuby様式を知る必携2冊目
・「初めてのRuby」
http://www.amazon.co.jp/dp/4873113679/
以下は外れが少ないとされている本です。必ず立ち読みした上で自分の目的とレベルに応じて購入してください
・「Rubyレシピブック 第2版 268の技」(初心者向け)
http://www.amazon.co.jp/dp/4797340045/
・「プログラミング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デフォルトの名無しさん
2009/08/08(土) 08:25:37・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デフォルトの名無しさん
2009/08/08(土) 08:27:14・Rubyについて Part 36
http://pc12.2ch.net/test/read.cgi/tech/1246174168/
アンチスレ
・Rubyについて(アンチ専用) Part003
http://pc11.2ch.net/test/read.cgi/tech/1207233348/
Railsスレ
・【Ruby】Ruby on Rails Part7
http://pc11.2ch.net/test/read.cgi/php/1241100447/
Windows用スレ
・【ActiveScript】RubyをWindowsで使うスレ【GUI】
http://pc11.2ch.net/test/read.cgi/tech/1155031689/
Ruby 1.9 系列スレ
・魁け! Ruby 1.9.X
http://pc11.2ch.net/test/read.cgi/tech/1201603546/
0005デフォルトの名無しさん
2009/08/08(土) 08:29:01・Ruby 初心者スレッド Part 29
http://pc12.2ch.net/test/read.cgi/tech/1246593305/
・Ruby 初心者スレッド Part 28
http://pc12.2ch.net/test/read.cgi/tech/1242436010/
0006デフォルトの名無しさん
2009/08/08(土) 09:55:42るびまが403で見れない
0007デフォルトの名無しさん
2009/08/08(土) 10:12:19はやくなおせゴルァ
0008デフォルトの名無しさん
2009/08/08(土) 11:40:46http://pc12.2ch.net/test/read.cgi/tech/1246593305/1000
ローグライクな気がするんだが気になる
0009デフォルトの名無しさん
2009/08/08(土) 11:42:56Ruby 1.8.5 … レンタルサーバ等にいまだに残ってる古いバージョン
1.8.6 にすらなってない理由はたぶん管理の手抜きなので怒ってよい
Ruby 1.8.6 … 過去の長期政権と数の暴力で一大勢力圏を維持中
公開スクリプトはこれでも動作するべきではあるんだがそろそろ 1.8.7 に譲ってくれ
Ruby 1.8.7 … 1.9 シリーズとのハイブリッドなバージョン、初学者にこそお勧め
1.9 系から輸入された機能は 1.8.6 では動かないが「1.8.6が許されるのは(AA略」と煽ってよい
Ruby 1.9.0 … 不安定にして先鋭機能が超満載の開発版バージョンだったもの
1.9.x は本来全てが開発版の呼称だったのだが、事情が変わって(ここ笑うところ)1.9.1 は安定板に
Ruby 1.9.1 … 満を持して登場の 1.9 系列安定板(本体は 1.8.6 程度には使えるということになっている)
本体と添付ライブラリの動作は問題がないのだが外部第三者ライブラリが全く追いついていない
初心者を脱した人が外部ライブラリの開発コミュニティに参加してくれたりすることを期待中
おまけ
Rubygem 0.x … 極悪動作をすることで有名なRuby外部ライブラリ利用サポートプログラム群のバージョン
このバージョンしかパッケージが存在しないUNIX系ディストリビューションがあって結構問題に
しかも「rubygem本体の自己更新機能は殺してるのでパッケージから入れてね」とかほざきやがる
パッケージがバージョン 1 より前のものしかない場合はソースからインストールするとよい
0010デフォルトの名無しさん
2009/08/08(土) 11:49:28なんでも屋という表現が不安だが、投資のシステムから言ってたぶん Elona だろうと思われる
*band の見た目をちょっと綺麗にして非戦闘メインの生活もできるように作ってみたら
*band にハマるような人によってはヤバい依存度になる可能性があるものができたという話
ちなみに HSP 製だが、ファイル構成を見ないと HSP で作ったようには見えない
あと、回答は前者の「商品ページが増えて安い杖から高い杖までずらっと並ぶ(可能性がある)」だ
0011デフォルトの名無しさん
2009/08/08(土) 11:59:47次スレからテンプレだな
0012デフォルトの名無しさん
2009/08/08(土) 12:23:45Ruby 1.9の新機能の中であまりにも便利だから、とても自然な機能だから、と言われていたものを
Ruby 1.8.6に追加(フィードバック)したバージョン
0013デフォルトの名無しさん
2009/08/08(土) 12:33:39> Rubygem 0.x
これって、パッケージで入れた後、gem update --systemでアプデトして使ってるんだけどマズイ?
0014デフォルトの名無しさん
2009/08/08(土) 12:35:21サンクス Elonaか。昔、延々徹夜でお使いやってて、俺何やってんだろ、と思ったゲームだw
またやってみたくなったわ
スレ違いスマソ
0015デフォルトの名無しさん
2009/08/08(土) 12:43:47gem --version できちんと最新版なら問題ない
apt を利用してると「apt 経由以外でプログラムを更新するのはやめてください」と言われるというだけ
主張はまったく正しいんだが、そう思うならパッケージの rubygem のバージョンとっとと上げろ(w
・ apt は勝手にプログラムが更新されることを許可しない
・ rubygem は自力更新がポリシー違反になるシステムを考慮してない
という結果だ
0016デフォルトの名無しさん
2009/08/08(土) 13:31:49ttp://doc.okkez.net/
でもほぼ同じものが見られますよ。
0017デフォルトの名無しさん
2009/08/08(土) 18:09:04なるほど、そういうことかサンクス
> パッケージの rubygem のバージョンとっとと上げろ(w
そうだわなww
0018デフォルトの名無しさん
2009/08/08(土) 21:04:57こういう場合野良ビルドもやむなしだわな
0019デフォルトの名無しさん
2009/08/08(土) 21:30:14この辺が一番多いのかな。
0020デフォルトの名無しさん
2009/08/08(土) 23:00:31\1, \2とかの後方参照を埋め込むことってできませんか?
例えば以下のような文字列strがあって、
str = "2foofoo"
2回fooが繰り返すということを意味しているときに、
str =~ /(\d)(foo){\1}/
というような書き方が0を返すようなことがしたいです。
後方参照の\1を数値の2と解釈させるような書き方ってありますか?
0021デフォルトの名無しさん
2009/08/08(土) 23:19:59数値をマッチさせてそれから正規表現を新規に作るしかあんめえ
0022デフォルトの名無しさん
2009/08/08(土) 23:22:43str =~ /(\d)/
str =~ /\d(foo){#{$1}}/
=>0
2行に分ければできるけど、1行でできるのかな?
0024デフォルトの名無しさん
2009/08/09(日) 00:24:59仮に出来たとしても本来の意味の正規表現の能力を逸脱しすぎてて
逆に気持ち悪い機能だな
0025デフォルトの名無しさん
2009/08/09(日) 01:23:120026デフォルトの名無しさん
2009/08/09(日) 01:51:29/1(foo){1}|2(foo){2}|3(foo){3}|4(foo){4}|5(foo){5}|6(foo){6}|7(foo){7}|8(foo){8}|9(foo){9}/
でいける(マテ
0027デフォルトの名無しさん
2009/08/09(日) 01:59:090028デフォルトの名無しさん
2009/08/09(日) 05:02:53別に構わないよ
Rubyでスレ違いになる可能性があるのはRailsの機能を使った場合だけ
それにしたって「Railsスレで聞けバカ」という誘導兼ツッコミが入るだろうし
質問一発目くらいは誰でも大目に見るだろ
002925
2009/08/09(日) 05:09:10じゃあ早速ですがfromのボタンを押すのは
agent = WWW::Mechanize.new
agent.get(uri).form_with(nameとかactionとか){入力する物}.click_button
って形ですよねこのとき、nameが無くてactionも同じformがある場合はどうすれば良いんでしょうか?
0030デフォルトの名無しさん
2009/08/09(日) 05:23:08ブロックつきメソッドが動作しないのでメソッドチェーンできないことにだけ注意
Ruby 1.9.1 および 1.8.7 の Object#tap を使えば可能なはずだが、 tap はそういう用途に使うもんじゃねー
# 従来(抽出条件記述が難しい)
agent.page.form_with(抽出条件){|f|
f.入力指示
}.click_button
# 配列版(出現順だけ考える)
f = agent.page.forms[2]
f.入力指示
f.click_button
# 配列要素を tap
agent.page.forms[2].tap{|f|
f.入力指示
}.click_button
Page#forms は、Form オブジェクトを含む配列を HTML 上での <form> の出現順に返す
あくまで配列なので、agent.page.forms[2] は HTML 上での 3 番目のフォームになるぞ
003125
2009/08/09(日) 05:31:34やってみます。
0032デフォルトの名無しさん
2009/08/09(日) 18:48:000033デフォルトの名無しさん
2009/08/09(日) 18:51:06個人的だが著者的に逆引きレシピをオススメしておく。
0034デフォルトの名無しさん
2009/08/09(日) 19:01:47逆引きのほうでいいんじゃねえの
0035デフォルトの名無しさん
2009/08/09(日) 19:17:400036デフォルトの名無しさん
2009/08/09(日) 19:30:51ttp://d.hatena.ne.jp/kimuraw/20090724/p1
0037デフォルトの名無しさん
2009/08/09(日) 19:51:26ワロタw
003832
2009/08/09(日) 22:06:05>>36
ありがとうございます。
36さんに紹介していただいたブログを読むと、
どっちも買って損はなさそうなので、両方買うことにしました。
0039デフォルトの名無しさん
2009/08/10(月) 00:21:00当たり前すぎるが、pp。データ構造を見やすく出力。
0040デフォルトの名無しさん
2009/08/10(月) 00:28:25rakeの使い方
sortよりsort_byの方が劇的に速い
0041デフォルトの名無しさん
2009/08/10(月) 01:08:06Module1::Module0::Class0 を作るにはどうすれば?
どうしても無理ならクラス・モジュールの名前変えます。
ダメ元で試したコード:
module Module0
class Class0
end
end
module Module1
module Module0
class Class0 < Module0::Class0
end
end
end
エラー:
NameError: uninitialized constant Module1::Module0::Class0
from (irb):7
from :0
環境:
OS: Ubuntu 5.0
Kernel: 2.6.28-14-generic
ruby: 1.8.7
irb: 0.9.5
0042デフォルトの名無しさん
2009/08/10(月) 01:46:15名前変えた方がいいと思うけど
class Class0 < ::Module0::Class0
0043デフォルトの名無しさん
2009/08/10(月) 02:54:21> sortよりsort_byの方が劇的に速い
「sortが遅い場合は」な
0044デフォルトの名無しさん
2009/08/10(月) 08:46:23hashやstructを構造体みたいな使い方で大量に使う時の注意点
速度: Hash(キーがsymbol) > Struct > Hash(キーがstring) >>>(超えられない壁)>>> OpenStruct
0045デフォルトの名無しさん
2009/08/10(月) 10:32:18rubyでのgui開発で、
タブによって選択肢を選んだり、数値を代入して、
それをある形式で複数のテキストファイルに出力することはできますでしょうか。
いままでfortranしか触ったことがないのですが、
guiを作る必要がでてきまして、どのプログラムがいいか選んでいる状態
なのですが、もしよろしければ教えていただけると幸いです。
0046デフォルトの名無しさん
2009/08/10(月) 10:40:35>どのプログラムが・・・
言語から選んでるってこと?
自分が使うだけ(もしくは使う人みんなRuby使い)ならRuby+何かGUIでもいいけど
そうでないならコンパイルして実行形式にする言語を個人的には勧める
0047デフォルトの名無しさん
2009/08/10(月) 11:06:09ありがとうございます。そういうのはどれでもできるんですね
実行形式できる言語というのをちょっと勉強してみます
0048デフォルトの名無しさん
2009/08/10(月) 11:08:24http://jp.rubyist.net/magazine/?0001-RubyGUI
を読め
0049デフォルトの名無しさん
2009/08/10(月) 11:25:450050デフォルトの名無しさん
2009/08/10(月) 11:30:18初心者がRubyでGUIやるのはただのバカ
0051デフォルトの名無しさん
2009/08/10(月) 11:49:28何か最後のひとつ以外を学んだら死ぬ、という呪いをかけられていてこそ
プログラミング初心者
老害は立ち去れ
0052デフォルトの名無しさん
2009/08/10(月) 12:02:35今の人たちはRubyに見ているのだよ
0053デフォルトの名無しさん
2009/08/10(月) 12:28:22もはや「全部Ruby」で問題ないレベルまでは来てるんだけどな
最後に残った二つの関門が大きい
>>45
とにかく動けばいいと言うのなら、VisualBasicあたりをオススメする
後のことを考えてRubyでやりたいのなら
VisualuRuby+FormDesigner、WxRubyあたりを使うのがオススメ
0054デフォルトの名無しさん
2009/08/10(月) 12:33:36winの話なの?それにしてもC#のほうがいいと思う
0055デフォルトの名無しさん
2009/08/10(月) 12:39:29その知識を利用してRubyからAPIを直に呼ぶ
というのが基本だと思う
0056デフォルトの名無しさん
2009/08/10(月) 17:18:45ウィンドウプロシージャをWindowsからどう呼ばせるかという最大の問題がある。
0057デフォルトの名無しさん
2009/08/11(火) 07:22:00で xxx に何入れても代入できる仕組みってできますか?
property_missingで検索したらGroovyしかヒットしない…
0058デフォルトの名無しさん
2009/08/11(火) 07:27:33あくまで「遠目に見ればそのように見えるかもしれない動作」を
単なるインスタンスメソッドで代用しているに過ぎない
>>57
設計思想自体に何か重大な誤りがあるようにしか見えないが、
とりあえずは foo の属するクラス定義の method_missing の中で分岐書くしかないな
0059デフォルトの名無しさん
2009/08/11(火) 08:02:55というような質問は年に何回か見るな
動的言語を名乗ってる以上できても面白そうだが、現行では残念ながらできない
クラス設計者が @foo = 100 とする代わりに毎回 instance_variable_initialize(:foo, 100) と書くようにする、みたいな
予防法的なめんどくさい手順しか思いつかん
あ、 instance_variable_initialize は自作してね
0060デフォルトの名無しさん
2009/08/11(火) 09:13:070061デフォルトの名無しさん
2009/08/11(火) 09:16:51> foo.xxx = foo.xxx + 123
を実現するということがどんだけ重要で取替不可かによるな
これの実現のためにどんだけの不便を強いる覚悟があるかみたいな
0062デフォルトの名無しさん
2009/08/11(火) 10:01:180063デフォルトの名無しさん
2009/08/11(火) 10:58:56デフォルトの値が0っぽいから…
fooのクラスがFooとすると
class Foo
def initialize
@vals=Hash.new(0)
end
def method_missing(name,*args)
x=name.to_s
if name[-1..-1]=='=' then
@vals[name[0..-2]]=args[0]
else
@vals[name]
end
end
end
これでよかろうか(引数の数の検証は自分で書いてちょ)
0064デフォルトの名無しさん
2009/08/11(火) 12:16:11def initialize(*) super; @table.default = 0; end
end
foo = ZeroStruct.new
0065デフォルトの名無しさん
2009/08/11(火) 14:03:30それともメジャー?
オススメってある?
0066デフォルトの名無しさん
2009/08/11(火) 14:05:220067デフォルトの名無しさん
2009/08/11(火) 14:26:38Rubyのためだけに新規操作を覚えるとかマジキチ
0068デフォルトの名無しさん
2009/08/11(火) 14:34:15┏┳┳┓ ハイ. ┏┳┳┓
┏┫┃┃┃ .エディタの話は ┃┃┃┣┓
┃┃┃┃┣┓ ここまで ┏┫┃┃┃┃
┃ ┃┃┏━━━┓┃┃ ┃
┃スレチ ┣┫ . ・∀・ ┣┫. STOP!┃
┗━━━━┛┗┳━┳┛┗━━━━┛
┏┻┓┃
┏━┛ ┣┻┓
┗━━━┫ ┗━┓
. ┗━━━┛
0069デフォルトの名無しさん
2009/08/11(火) 14:34:500070デフォルトの名無しさん
2009/08/11(火) 14:38:00■ このスレッドは過去ログ倉庫に格納されています