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

Ruby 初心者スレッド Part 16

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2007/12/08(土) 22:36:20
プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。
関連スレやURLは>>2-10あたりを見てください。Ruby on Railsの質問はWebProg板の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デフォルトの名無しさん2007/12/08(土) 22:40:03
■前スレ
Ruby 初心者スレッド Part 15
http://pc11.2ch.net/test/read.cgi/tech/1193298175/

■関連スレ
Rubyについて Part 29
http://pc11.2ch.net/test/read.cgi/tech/1193668038/

RUBYの宿題教えてください。
http://pc11.2ch.net/test/read.cgi/tech/1106572657/

【ActiveScript】RubyをWindowsで使うスレ【GUI】
http://pc11.2ch.net/test/read.cgi/tech/1155031689/

Ruby on Rails
http://pc11.2ch.net/test/read.cgi/tech/1191381506/

【Ruby】Ruby on Rails Part3
http://pc11.2ch.net/test/read.cgi/php/1170760209/
0003デフォルトの名無しさん2007/12/08(土) 22:41:35
= 公式/非公式関連リンク

== Rubyを知る
Ruby Home Page
http://www.ruby-lang.org/ja/

== Ruby使用時の調べもの
Rubyリファレンス
http://www.ruby-lang.org/ja/man/
http://www.ruby-doc.org/ (英語)

リファレンスのHTMLヘルプ版配布
http://elbereth-hp.hp.infoseek.co.jp/ruby.html
# Windowsで便利

Ruby FAQ
http://ruby-lang.org/ja/man/?cmd=view;name=Ruby+FAQ

Programming Ruby - The Pragmatic Programmer's Guide
http://www.ruby-doc.org/docs/ProgrammingRuby/
# 好評書籍をWebで公開中、ただし英語

逆引きRuby
http://www.namaraii.com/rubytips/
0004デフォルトの名無しさん2007/12/08(土) 22:42:10
== Ruby使用時の探し物
RAA - Ruby Application Archive
http://raa.ruby-lang.org/

RubyForge
http://www.rubyforge.org/
# 共にRubyのアプリやライブラリが検索できる

== Ruby関連のニュースや読み物
日本Rubyの会 公式Wiki - 日本Rubyの会Wiki
http://jp.rubyist.net/

Rubyist Magazine - るびま
http://jp.rubyist.net/magazine/
# コードレビューが好評

== いろいろRubyサイト
Matzにっき … Ruby作者の日記
http://www.rubyist.net/〜matz/

Ruby hotlinks 五月雨版 … Ruby関連の日記やblog
http://www.rubyist.net/〜kazu/samidare/

Rubyの本一覧
http://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=Ruby%A4%CB%B4%D8%A4%B9%A4%EB%BD%F1%C0%D2

<rubyXML/>
http://www.rubyxml.com/

Ruby Weekly News @ Ruby Garden
http://www.rubygarden.org/rurl/html/
0005デフォルトの名無しさん2007/12/08(土) 22:43:05
Rubyリファレンスマニュアル刷新計画
ttp://doc.loveruby.net/
ライブラリ一覧
ttp://doc.loveruby.net/refm/api/
RubyExtensionProgrammingGuide
ttp://i.loveruby.net/w/RubyExtensionProgrammingGuide.html
Ruby Hacking Guide
ttp://i.loveruby.net/ja/rhg/
Symbol < Stringも止める。
ttp://www.rubyist.net/~matz/20061107.html#p03
クラスローカルインスタンス変数
ttp://www.rubyist.net/~matz/20061117.html#p02
クラス変数
ttp://www.rubyist.net/~matz/20070104.html#p03
ローカル変数
ttp://www.rubyist.net/~matz/20070112.html#p04
可視性メモ
ttp://www.rubyist.net/~matz/20070208.html#p04
ttp://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/30107
ttp://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/30275
YARV without 1.9
ttp://www.rubyist.net/~matz/20070215.html#p01
ttp://www.atdot.net/~ko1/diary/200702.html#d22
ttp://i.loveruby.net/d/20070223.html#p01
JSON
ttp://json.rubyforge.org/
ttp://webos-goodies.jp/archives/51019710.html
ttp://webos-goodies.jp/archives/51071565.html
YAML
ttp://www.ruby-lang.org/ja/man/?cmd=view;name=YAML
ttp://jp.rubyist.net/magazine/?0009-YAML
ttp://www.namikilab.tuat.ac.jp/~sasada/prog/yaml.html
0006デフォルトの名無しさん2007/12/08(土) 22:45:47
■最近できたWiki
Ruby 初心者スレッド Hiki
http://starlet.s145.xrea.com/ruby/hiki/

Ruby Portal
http://ruby.morphball.net/portal/
0007デフォルトの名無しさん2007/12/08(土) 22:48:23
気が付いたら1000行ってたので、適当に立ててみた
テンプレのリンク先とかあんまり吟味してないけど、こんな感じでいい?
前スレ802のMoonwolf Wikiは使われてないようなので外した
0008デフォルトの名無しさん2007/12/08(土) 22:49:41
Q: Rubyの勉強をはじめようと思うのですけども、
  一からRubyをはじめる初心者向けのRuby入門書は何がお薦めでしょうか?

A: プログラ自体の初心者だったら「たのしいRuby 第2版 Rubyではじめる気軽なプログラミング」
  他の言語経験があるんだったら「プログラミングRuby 第2版 言語編」
0009デフォルトの名無しさん2007/12/08(土) 22:57:47
初心者でWin XPで使用しています。
コマンドプロンプトに日本語を表示させるとエラーが出るのでchcp 65001したのですが、
今度はエラーは出なくなったのですが文字が表示されません。何が悪いのでしょうか?
フォントはMSゴシックにしています。
0010デフォルトの名無しさん2007/12/08(土) 23:00:23
>>9
質問の仕方
0011デフォルトの名無しさん2007/12/08(土) 23:05:21
さすがにどんなエラーが出たのか
どんなコードを実行したのかがナイトね〜
0012デフォルトの名無しさん2007/12/08(土) 23:36:48
>>1おつ
>>7 オッケーイ(AA略
0013デフォルトの名無しさん2007/12/09(日) 02:48:48
>>1
乙!
0014デフォルトの名無しさん2007/12/09(日) 03:26:42
>>前スレ989
ありがとうございます。

24行と25行を以下のように書き換えて、次のif文をこう変えたら良いのでしょうか?

res_and_or = msql.query("select name,price from test_table where price #{zyoken} '#{Mysql::quote f_price}' and name='#{Mysql::quote f_name}'")

if res_and_or.num_rows == 0
serched_out = "見つかりませんでした"
else
gokei = res_and_or.num_rows
serched_out = "#{gokei}件見つかりました"
end
0015デフォルトの名無しさん2007/12/09(日) 12:11:07
>>9-10
すみません。入門のページに良くある

puts '日本語を表示します'

というのからはじめました。ファイル名はja.rb
これの日本語がSJISだと怒られるので

$KCODE = 'UTF8'
require 'kconv'
puts '日本語を表示します'.tosjis

とすれば日本語表示できました。

日本語表示が出来たので、今度はRSpecを使って日本語表示もやってみました。
その後試行錯誤した結果、どうもRSpecでもそれぞれtosjisを使わないとダメみたいでした。
でも記述量が多くてスマートじゃないので他にも方法がありそうだと思いました。
それでコンソールをchcp 65001してutf-8を書き出す方法を試してみることにしました。
ところが全く文字が書き出されないので困ってしまいました。英語の文字列すら書き出してくれません。
それで>>9を書き込みしました。エラーも全く出ていません。表示のみの問題です。
0016デフォルトの名無しさん2007/12/09(日) 12:50:27
Windowsよーわからんが、$KCODE='s' (uじゃなく)はだめなの?
0017デフォルトの名無しさん2007/12/09(日) 13:02:23
>>15
>>11で指摘されてるのにもかかわらず、どういうエラーに
なったのかを書いてないのは、本気でどうかと思うんだけど。
「これの日本語がSJISだと怒られる」とか不明瞭すぎ。

まあソースコードをShijft_JISで記述した場合は
c:\> ruby -Ks ja.rb
0018デフォルトの名無しさん2007/12/09(日) 15:59:17
rubyで初めて本格的な開発をしようと思うのですが、
おすすめのエディタやIDEがあれば教えてください。
以前はEmacs使ってたのですが、windowsに環境も変わりいっそ新しい環境を使おうと思いました。
コード補完機能が使えるような環境があればうれしいです。
0019デフォルトの名無しさん2007/12/09(日) 16:09:39
>>18
Windows限定でいいならRDE
0020デフォルトの名無しさん2007/12/09(日) 16:33:16
>>19
ありがとうございます。ちょっくら試してきます。
0021デフォルトの名無しさん2007/12/09(日) 16:35:12
SciTE Editorはどうよ
使ったことないけど^^;
0022デフォルトの名無しさん2007/12/09(日) 16:39:36
>>17
だからエラーは出てないの。
0023デフォルトの名無しさん2007/12/09(日) 16:44:39
>>18
Emacs使いならMeadowがいいんじゃないの?emacs-railsとか入れて使うとRDEより便利。
0024デフォルトの名無しさん2007/12/09(日) 16:44:45
>>21
Rails関係したエディタ?なんですかね。
RDEと比較して使いやすい方を選ぼうと思います。
0025デフォルトの名無しさん2007/12/09(日) 16:59:51
>>23
いやー、meadowも考えてたんですが、一から設定書き直すの面倒だなーと思って、
それならいっそ新しい環境でやろうかなと思ったんです。
ですが、RDEより便利なんだったらそっちのほうがいいかもですね。
ちょっとemacs-railsについて調べてきます。
0026デフォルトの名無しさん2007/12/09(日) 17:09:04
>>25
この辺を読んでMeadowに放り込んでみればいいと思う。

emacs-railsのまとめページ
http://www.ark-web.jp/sandbox/wiki/index.php?Ruby%20on%20Rails%2Femacs-rails%A4%CE%A5%A4%A5%F3%A5%B9%A5%C8%A1%BC%A5%EB

ECBのページ
http://ecb.sourceforge.net/

Snippetsについての情報
http://rubyist.g.hatena.ne.jp/yamaz/20060902

sql-modeについて
http://www.sixnine.net/roadside/sqlmode.html
0027デフォルトの名無しさん2007/12/09(日) 17:20:33
emacs-rails
http://rubyforge.org/projects/emacs-rails/
0028デフォルトの名無しさん2007/12/09(日) 17:38:55
今日、Rubyをはじめてみようと思ってチュートリアルみてがんばったんだけど、1.xと2.xって書き方か何か変わってるの?
エラーがでて実行できなくて、半日費やして、2日前に新しいバージョンになったばっかだと知ったむなしさ orz
0029デフォルトの名無しさん2007/12/09(日) 17:41:46
>>15
Rspecでgettext使えばいいんでないの
0030デフォルトの名無しさん2007/12/09(日) 17:41:59
>>28
どこかで等価演算なんかの値が変わったとは見たけど(すげーマニアックな場所)
実際書いたプログラム見せてみ?
0031デフォルトの名無しさん2007/12/09(日) 17:49:47
そもそも2.xなんてないぞ。
railsと混ざってないか?
0032302007/12/09(日) 17:51:25
ごめん、1.8->1.9の変更と勘違いしてたわ。
0033デフォルトの名無しさん2007/12/09(日) 19:24:08
"20071111"という文字列を、"2007-11-11"という文字列にしたいと
思ってます。ParseDateを使う方法で書いているのですが、多量に
変換するので、一々ParseDateを呼び出すよりももっと別のやり方は
ないかとおもってます。(特に "#{hogehoge}"みたいに文字列の中で
できれば、、、)
どなたか、助けてください。
0034デフォルトの名無しさん2007/12/09(日) 19:34:56
文字列クラスを拡張してこんな感じとかどうよ
#動作確認はしてない
class String
 def hoge
  return "#{self[0..3]}-#{self[4..5]}-#{self[6..7]}"
 end
end

p "20071111".hoge #=> "2007-11-11"
0035デフォルトの名無しさん2007/12/09(日) 19:36:53
>>33
input="20071111"
output = "#{input[0,4]}-#{input[4,2]}-#{input[6,2]}"
puts output
0036デフォルトの名無しさん2007/12/09(日) 19:37:10
日付として正しいかどうかを考慮しないなら、parsedateするまでもなく、
ただ4文字、2文字、2文字で区切ればいいというわけだ。
0037デフォルトの名無しさん2007/12/09(日) 20:06:57
String#[] にシンボルを渡してもエラーにならないのは仕様ですか?

irb(main):001:0> s="abcdefg"
"abcdefg"
irb(main):002:0> s[:abc]
nil


Hash を期待するとこに間違ってStringを渡してしまったけど、一見普通に動いているように
見えて少しはまりました。
なんか使い道があるんですかこれ?
0038デフォルトの名無しさん2007/12/09(日) 20:14:16
>>34
>>35
>>36
ありがとうございました。
勉強になりました。一応35さんのやり方でやってみました。
34さんのやり方も動くことは確認しました。
0039デフォルトの名無しさん2007/12/09(日) 20:18:48
string.cのrb_str_arefの定義を見ると、
添え字がFixnum、Regexp、String、Range以外の場合は数値化して
から使うようだ。
0040デフォルトの名無しさん2007/12/09(日) 21:25:54
オンラインの日本語で記されたピッケル本が読みたいが
置いてくれてたとしてもURI、場所がわかんねえ…
0041デフォルトの名無しさん2007/12/09(日) 22:15:17
a=Object1.new ってした後に
a=Object2.new ってするとどうなりますか?最初のほうは無視されますか?
0042デフォルトの名無しさん2007/12/09(日) 22:49:03
>>41
無視というか、「どの変数からも参照されていない」状態になる
0043デフォルトの名無しさん2007/12/09(日) 23:23:13
>>41
無視される、というかその記述はプログラマ(=>>41)が無視してるというような意味の
記述になるんじゃね?

>>42が言うようにどっからも参照されてないからじきGCされる。
0044デフォルトの名無しさん2007/12/10(月) 01:08:40
rubyが走るポケコンが欲しいなぁ・・・と思った今日この頃
0045デフォルトの名無しさん2007/12/10(月) 01:16:23
>>25-27
xyzzyの方がutf-8nで保存できるから便利だヨン。
Meadowのutf-8ではまらないようにね。
0046デフォルトの名無しさん2007/12/10(月) 01:25:44
>>44
ディスプレイにどの程度の仕様を求める?
さすがに 5x7 で 16 文字だと Ruby は辛いし (笑)
0047デフォルトの名無しさん2007/12/10(月) 01:34:58
俺もW-ZERO/3でrubyを走らせたい。
ちょっとした計算なんかを卓上で出来て便利だと思う。
しかし、金がない・・・orz
0048デフォルトの名無しさん2007/12/10(月) 08:25:02
>>44
最近の製品しらないけどLinuxザウルスにインストールとか
できるんだろうか?
0049デフォルトの名無しさん2007/12/10(月) 09:48:31
>>48
以前 Rails スレで、りなざうで RoR の開発をしてる香具師がいたような。
まありなざうをポケコンと呼べるかはともかくとして。
0050デフォルトの名無しさん2007/12/10(月) 12:34:23
Ruby/Tkって何か廃れてるように見えるんですが、実際の所どうなんでしょうか。
RubyでGUIプログラミングするなら今は何でやるべきですかね。
0051デフォルトの名無しさん2007/12/10(月) 14:02:31
scaffoldで作ったviewから別のテーブルのデータを参照したい時は、
どのように記述すればいいのでしょうか?
0052デフォルトの名無しさん2007/12/10(月) 14:20:50
あるクラスがインスタンス変数として別のクラスをもつことは可能ですか?
0053デフォルトの名無しさん2007/12/10(月) 14:25:22
>>51
Rails版へ。とりあえず2chに聞くのはどうかと思うよ。
0054デフォルトの名無しさん2007/12/10(月) 14:26:55
>>53
すいません どうしても分からないもので。
Rails板で聞いてみます。 
0055デフォルトの名無しさん2007/12/10(月) 14:39:43
>>52

Klass = Class.new
Klass.instance_eval{
 @other_class = String
}
0056デフォルトの名無しさん2007/12/10(月) 15:53:30
gem install cgialt
ERROR: While executing gem ... (OpenURI::HTTPError)
404 Not Found
0057デフォルトの名無しさん2007/12/10(月) 22:24:28
a=b.clone
とした後にaのインスタンス変数をいじって、また
a=b.clone 
ってすると、どうなりますか?
aは最初にa=b.cloneとしたときと同じ状態ですか?それとも、いじった後と同じですか?
0058デフォルトの名無しさん2007/12/10(月) 22:27:00
>>57
其処まで書いてなんで試さないの?
0059デフォルトの名無しさん2007/12/10(月) 22:30:46
同じ状態
0060デフォルトの名無しさん2007/12/10(月) 22:34:25
同じ状態ってのは正しい表現ではないな。
同じものを指している。
0061デフォルトの名無しさん2007/12/10(月) 22:51:23
b = Hoge.new # Hogeクラスのインスタンス1を生成し、インスタンス変数bで参照できるようにする
b───>[インスタンス1]←生成

a = b.clone # インスタンス1のクローン1を生成し、インスタンス変数aで参照できるようにする
a───>[インスタンス1のクローン1]←生成
b───>[インスタンス1]

a.foo #インスタンス変数aが参照するインスタンスのメソッドfooを実行する
a───>[インスタンス1のクローン1].foo
b───>[オブジェクト1]

a = b.clone # インスタンス変数bが参照するインスタンスのクローン2を生成して、インスタンス変数aで参照できるようにする
a───>[オブジェクト1のクローン2]←生成
      [オブジェクト1のクローン1のfooメソッド実行]←誰からも参照されなくなったのでガベージコレクトされる
b───>[オブジェクト1]

こんな感じ?
0062デフォルトの名無しさん2007/12/10(月) 23:03:47
代入(=)したりclone(dup)したりするたびに、a.object_idやb.object_idを
プリントしてみると理解の助けになるかもね。

0063デフォルトの名無しさん2007/12/10(月) 23:28:16
Kernel#catch( :hoge ) とかするときに、:hoge がどこで throw されたかを簡単に知る方法ってあるでしょうか?
たとえば、スタックトレースが取れればうれしいです。
0064デフォルトの名無しさん2007/12/10(月) 23:41:49
俺リナザウルスにRuby入れて走らしてたよ
0065デフォルトの名無しさん2007/12/10(月) 23:44:25
throwの第二引数(省略時はnil)がcatch全体の返値として得られるよ。
0066デフォルトの名無しさん2007/12/10(月) 23:53:59
ipod touchでRubyが走るなら即ポチクリするんだけどなぁ
0067デフォルトの名無しさん2007/12/10(月) 23:56:27
ポチクリって何?
0068デフォルトの名無しさん2007/12/10(月) 23:57:36
プチクリっとネットで買うことだべ
0069デフォルトの名無しさん2007/12/11(火) 00:28:17
>>56
直ってるね。
rubyforgeはちょくちょく不調になるんだよなー。
0070デフォルトの名無しさん2007/12/11(火) 01:04:08
rubyを勉強したいと思ってるんですが、
どうやってrubyを使えるようにするのか良く分かりません。
とりあえず、テンプレのほとんどが見れないんですけど、どうすればいいんですか?

OSはXP、rubyのホームページからファイルをダウンロードしたんですが、
それからどうすればいいのか分からない状態です。
0071デフォルトの名無しさん2007/12/11(火) 01:07:48
何処のなんのファイルをダウンしたんだ?
そのファイルを実行はしたのか?
0072デフォルトの名無しさん2007/12/11(火) 01:39:41
>>70
ttp://jp.rubyist.net/magazine/?FirstStepRuby

テンプレ整理したほうがよさそうだね。
0073デフォルトの名無しさん2007/12/11(火) 02:22:31
>>71
ttp://www.ruby-lang.org/ja/
のダウンロードの項目から落としました。


>>72
ありがとうございます。
見てみます。
0074デフォルトの名無しさん2007/12/11(火) 03:53:03
>>73
Windowsなら>>72に書いてあるActiveScriptRubyがお勧め
http://www.geocities.co.jp/SiliconValley-PaloAlto/9251/ruby/
インストールしてメニューから「ruby console」を実行。
RDEも入れておくと吉
http://homepage2.nifty.com/sakazuki/rde/
0075デフォルトの名無しさん2007/12/11(火) 06:56:23
>>73
自分はワンクリックインストーラをお勧めするなぁ
デフォルトのインストール先が好みじゃないし(Windowsの流儀ではここが適当なんだろうけど
専用コンソールを使うってのも嫌だ

One-Click Ruby Installer for Windows
ttp://rubyinstaller.rubyforge.org/wiki/wiki.pl
0076デフォルトの名無しさん2007/12/11(火) 10:08:37
>>75
専用コンソールってなに?
ruby console ってのはあるけど、これPATHを通してからコマンド
プロンプト呼んでるだけにしかみえないんだけど。
大仰な言い方するから、思わず調べに行ってしまったじゃないか。

これをどうしても使う必要があるわけでもないし、
一体何が不満なのかさっぱりわからん。
0077デフォルトの名無しさん2007/12/11(火) 10:16:59
>>73
俺はmswin32版rubyの手動インストールをお奨めする
http://www.garbagecollect.jp/ruby/mswin32/ja/
0078デフォルトの名無しさん2007/12/11(火) 13:19:57
無理にみんなでバラバラのものを勧めなくてもいいから…

俺はmingw版の手動インス(ry
0079デフォルトの名無しさん2007/12/11(火) 14:22:37
全部入れたらいいさ
0080デフォルトの名無しさん2007/12/11(火) 14:47:07
折角だから、俺はこの赤いアイコンをインストールするぜ。
0081デフォルトの名無しさん2007/12/11(火) 16:04:31
amazonで評判が良いようだったので「達人プログラマーガイド プログラミングRuby」
(兎の表紙のやつ)を買ったんですが、なんか読みにくい。。。
コード例にはまだ説明されてない文法がバンバン出てくるし、
「なんか新しい用語(xxxページからの説明を参照)」とかも多い(xxxページはずっと先のページ)
まだページにして3割ぐらいしか読んでないんだけど、コード例の間違いもちらほら見つけた。。。
失敗したかなぁ、、、RubyWayも一緒に買ったんだけどこっち読み進めたほうがいいかな。。。
0082デフォルトの名無しさん2007/12/11(火) 16:26:01
古い本買っちゃダメ
0083デフォルトの名無しさん2007/12/11(火) 17:53:04
>>81
プログラミングRubyが読みにくいなら
Ruby Wayはもっと理解不能だと思う
0084デフォルトの名無しさん2007/12/11(火) 18:23:05
RubyWayは初心者用じゃないくね?
0085812007/12/11(火) 18:48:28
>>82
ですよね。。。後から「プログラミングRuby」が後継の本らしい、と知りました。
表紙かなり違うんだもんなぁ。

>>83-84
すみません、いちおうJavaとPerlが分かるのでRubyWayでもいいかなーと。
先にRubyWayを触りだけ読んでたんですが(兎本は後から届いた)、そんなに悪い気は
しなかったです。情熱的。

とにかく兎本は「これは後で説明する」とか、一切説明してない用法をいきなり使って
断りなし、とか、そんなのが多すぎて疲れました。

先にこのスレで質問すればよかったなぁ…
0086デフォルトの名無しさん2007/12/11(火) 19:53:31
ttp://rubyde.sourceforge.net/hiki/ja/japanese_setting.html
{{attach_view('rde_translation.jpg')}}とか表示してくれえ
wikiでもバージョンアップしたんかなあ
0087デフォルトの名無しさん2007/12/11(火) 20:01:34
>>85
確かにRuby Wayの情熱はすごいw
図書館であの本を手に取ったのが、俺のRubyとの出会いだったな
0088デフォルトの名無しさん2007/12/12(水) 03:02:21
質問させてください。
以下のスクリプトを実行しました。
$KCODE = 'u'
require 'pp'
class ScrapedItem
def initialize(e)
@name = e[0],
@age = e[1],
@hight = e[2],
@weight = e[3],
@blood = e[4]
end
attr_reader :name, :age, :hight, :weight, :blood
end
class Scraper
def initialize(array)
@a = array
end
def scrape()
row = []
@a.each { |g|
row << ScrapedItem.new(g)
}
return row
end
end
ary = []
ary << ['papa', '50', '175', '65', 'O']
ary << ['mama', '48', '158', '50', 'A']
hoge = Scraper.new(ary).scrape()
pp hoge
0089882007/12/12(水) 03:03:12
僕の期待する”hoge”の出力は
#<ScrapedItem:0x7ce98
@age="50",
@blood="O",
@hight="175",
@name="papa”,
@weight="65">,
#<ScrapedItem:0x7cdd0
@age="48",
@blood="A",
@hight="158",
@name="mama",
@weight="50">,
なのですが実際は

#<ScrapedItem:0x7ce98
@age="50",
@blood="O",
@hight="175",
@name=["papa", "50", "175", "65", "O"],
@weight="65">,
#<ScrapedItem:0x7cdd0
@age="48",
@blood="A",
@hight="158",
@name=["mama", "48", "158", "50", "A"],
@weight="50">, 
なってしまいます。
0090882007/12/12(水) 03:04:47
どう修正すれば期待する結果がえられるのでしょうか?
ご教授ください。
当方の環境
ruby 1.8.6 (2007-06-07 patchlevel 36) [universal-darwin9.0]
OS mac leopard 10.5.1
0091デフォルトの名無しさん2007/12/12(水) 03:13:04
JavaとかC++使ってた自分がわかりやすいRuby入門サイトありますか?
Javaとの比較なんかがまとめられたページがあるとありがたいんですけど。
0092デフォルトの名無しさん2007/12/12(水) 03:16:57
>>91
「java Ruby」でググレば腐るほど出てくるだろ・・・
0093デフォルトの名無しさん2007/12/12(水) 03:18:48
>>88
initialize() でインスタンス変数に代入してる箇所の行末のカンマを取ってみれ
0094デフォルトの名無しさん2007/12/12(水) 03:21:18
>>92
なかなかまとまったサイトが見つからなかったので、そういうのを集約したサイトがないかと思ったのですが、
もうちょっと根性入れて探してきます。
0095デフォルトの名無しさん2007/12/12(水) 03:28:06
>>94
つーかさ、経験者ならrubymanjp.chmで十分じゃね?
0096デフォルトの名無しさん2007/12/12(水) 03:34:06
>>95
実はかなり前に一度本を読んでまして、しばらくすれば感覚が掴めると思うんですが、
一からマニュアルや本を読むよりJavaとの差異がまとめてあれば一目瞭然かと思い・・・。
とりあえずマニュアルでも流し読みして思い出すことにします。
0097デフォルトの名無しさん2007/12/12(水) 03:41:43
>>96
ttp://onestepback.org/articles/10things/
ttp://jimweirich.tadalist.com/lists/public/14055
どこかに和訳もあるかも
0098デフォルトの名無しさん2007/12/12(水) 12:48:11
Xの子クラスYが定義しているメソッドpiyoを呼び出すと(piyoの中でhogeを呼び出さなくても)
自動でX#hogeが実行されるような方法はありますか?

class X
 def hoge
  ・・・・
 end
end
class Y < X
 def piyo
  ・・・・
 end
end
0099デフォルトの名無しさん2007/12/12(水) 14:50:18
テキストファイルや変数に正規表現を書いて
それに基づいて評価させる場合、どんな式を書いたら良いのですか?
0100デフォルトの名無しさん2007/12/12(水) 15:45:42
Rubyでは正規表現オブジェクトというものがあります
raddr = "^(\d+)\.(\d+)\.(\d+)\.(\d+)$"
regexp = Regrexp.new(raddr)
if regexp =~ "192.168.0.1"
puts "まっち"
end

リファレンス: google ruby regexp(本家が503エラーの時はキャッシュをみてくれ)
http://www.google.com/search?hl=ja&client=opera&rls=ja&hs=GDL&q=ruby+regexp

標準添付ライブラリ紹介 【第 12 回】 正規表現 (1)
http://jp.rubyist.net/magazine/?0019-BundledLibraries
#以下引用
| Regexp.new("\\n")
| Regexp.new('\n')
| Regexp.new('\\n')
| などです。 この 3 つは文字列リテラルの書き方の違いだけで、
| 「Regexp.new」の引数に渡るオブジェクトの内容は同じです。
0101デフォルトの名無しさん2007/12/12(水) 16:16:08
>>100
コード晒すのはいいが、せめてテストしてからにしてくれ。初心者相手ならなおさら。

raddr = "^(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)$"
regexp = Regexp.new(raddr)
if regexp =~ "192.168.0.1"
puts "まっち"
end
■ このスレッドは過去ログ倉庫に格納されています