[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 05/09 23:56 / Filesize : 233 KB / Number-of Response : 880
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Ruby 初心者スレッド Part 33



1 名前:デフォルトの名無しさん mailto:sage [2009/12/05(土) 14:21:25 ]
プログラミング言語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つをすること。ここで回答を待つよりそのほうが早い。
 ・モジュール名やエラーメッセージでググる
 ・マニュアルで引っかかったクラスの記述を探す www.ruby-lang.org/ja/man/
 ・FAQを一応読む www.ruby-lang.org/ja/man/?cmd=view;name=Ruby+FAQ
質問には以下を書くこと。へたくそな質問は再提出を要求される。
 ・詳しい内容(「動きません」「うまくできません」では回答しようがない)
 ・エラーメッセージ(自力で訳さずなるべくそのままで)
 ・実行環境(OS名、Rubyのバージョン(ruby -v でわかる))
 ・最終的にやりたいこと(もっとよい方法がある場合が多いので)
回答してくれた人には「ありがとう」のひとことをいってあげて。

■回答する人へ
相手は初心者、根気よく育てるつもりで。質問がへたくそなのも大目にみてあげる。
それができないならこないこと(だって初心者スレだもん)。
 ・既出な質問やFAQは「XXXを読め」でいいので、叩かない&怖がらせない。
 ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。
 ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。

237 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 02:03:40 ]
数値積分や微分できるような関数電卓を持っていたら、それを使う。
でなければ、カシオの計算センターとか。
自前のコードからコールしたいなら、ついでにそっちも自分で書いてしまう。
てのは、いかがでしょう。

238 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 06:35:31 ]
>>219
> ファイルには出したくないBenchmarkとかで計測した結果も表示したくなって

標準ライブラリの Logger を使ってみるというのは?
jp.rubyist.net/magazine/?0008-BundledLibraries

239 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 09:20:54 ]
いわゆる数値計算には向かないよね、Ruby

240 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 09:53:38 ]
しかし、「5分で作って5秒で実行させる」ような、「計算機なんだから計算できてもいいんじゃね」という
カジュアルなデータ計算をさせることが期待されるプログラミング言語のトップグループにいることは間違いない
専門数値計算ソフトやC(やJava)を持ち出さなくてもいい程度の計算なら、もっと気楽にできてもいい
高校や大学1年教養の宿題をうっかり解けてしまうような、そんな用途があってもいいはず

241 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 10:06:28 ]
そういう用途ならあるげぶらーじゃね

242 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 10:09:15 ]
Rでもいいしますまてぃか覚えるのでもいいしいっそExcelでも充分使える範囲である可能性も高いな

243 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 10:20:55 ]
カタカナでおk

244 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 10:28:35 ]
アールやエクセルってなんか変だろ

245 名前:221 mailto:sage [2009/12/15(火) 15:52:28 ]
>>238
ああ、その手もありました!その名のとおりログのこりますしLoggerいいですねw



246 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 15:56:00 ]
数値計算したいんなら構文的にPython+numpyのほうがいいよ。Rubyには不向き。

247 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 18:38:35 ]
>>221
ワンライナーで時間の計算をする時に24時間以内なら
ruby -rtime -e "a=Time.parse('09:08:20')-Time.parse('01:40:02');puts Time.at(a).utc.strftime('%H:%M:%S')"
とかしたりしますな


248 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 18:47:01 ]
ていうか、やろうと思えば結構できるんだよ
でも自己責任の域を出れない

249 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 18:54:35 ]
name=gets
puts "私は#{name}です"

nameに日本語を入力するとエラーが出てしまいます
C:/My Documents/g/Ruby/test.rb:4:in `<main>': incompatible character encodings: ASCII-8BIT and
Windows-31J (Encoding::CompatibilityError)
これはどういったエラーなんでしょうか?

250 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 19:03:50 ]
>>249
初心者は Ruby1.9 使うなってこれだけ言われてるのになんでわからんのだエラー

251 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 19:08:17 ]
それってスクリプトつーか内部文字列がWindows-31Jで標準入力がASCII-8BITってこと?
Windows-31Jがロードできたら標準入力もそっち使うようになってなかったっけ
どういうときにそんなことになりえるのか知りたい、誰か教えて

252 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 19:08:20 ]
スレタイに【1.9】 【使うな】っていれとけよ

253 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 19:21:35 ]
【Windows】【使うな】とか


254 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 19:36:02 ]
順番からいって標準入力がWindows-31Jか、なんでスクリプトがASCII-8BITになったんだろう?
とりあえず>>249は1.9使い続ける気ならマジックコメントを使えるようになるべき

255 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 19:38:08 ]
MCって一番やっちゃいけないタイプの変更だよな



256 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 19:50:04 ]
スレチだが微積やってくれて感動した
www.wolframalpha.com/

257 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 19:52:31 ]
>>252
>>1

258 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 20:10:57 ]
>>255
じゃあファイルごとに違う文字エンコーディングをインタプリタに知らせる方法を考えてくれ

259 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 20:18:58 ]
いいこと考えた、ファイルは全部ASCII-8BIT相当にするってのはどう

260 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 20:25:36 ]
これでますますPythonへの移行が加速しちゃうな。
マイナー環境に媚びすぎるあまり全員が等しくLoseしちゃうなんてあまりにも悲しい。

261 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 20:27:49 ]
>>259
それ 1.8 じゃん…

262 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 20:29:51 ]
やっぱ今からでもせめてデフォルトUTF-8に

263 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 20:32:17 ]
>>262
マッキン使えマッキン

264 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 20:36:27 ]
UTF-8-MACはUTF-8じゃありませんっていうか今すぐ滅びてくださいお願いします

265 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 22:35:13 ]
>>264
Pythonはもろそれにぶつかったな。よくそれではまったよ。

あのさ、require 'foo' したときの、foo.rb または foo.so の在処をしるにはどうしたらいいんだっけ。
よく聞かれる質問だと思うけど、だれか教えて。



266 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 22:44:32 ]
1.8.6と1.8.7の違いってどこかにまとめられてますか?

267 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 22:47:55 ]
>>265
前スレでみたのは
gem which foo

268 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 22:57:27 ]
$" または $LOADED_FEATURES

269 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 23:04:43 ]
>>267
それは求めるものじゃないなー

>>268
それはファイル名だけだよね。ディレクトリ名も含めたパスが欲しい。


270 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 23:10:31 ]
それは提供されてない

271 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 23:10:37 ]
>>265
結局こうしました
$ ruby -r nkf -e 'puts $:.map {|x| Dir.glob("#{x}/nkf*") }.flatten'
/usr/local/lib/ruby/1.8/i686-darwin10.0.0/nkf.bundle



272 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 23:45:36 ]
>>266
svn.ruby-lang.org/repos/ruby/tags/v1_8_7/NEWS

273 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 23:59:23 ]
>>272
Thanks.

わーおEnglishじゃん!開発者は日本人が多いのに、ぷんぷん!

274 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 00:05:46 ]
>>272
ていうか、これ読んで分かるの開発陣だけだから。
Ruby利用者がよんでもわけわからん。

275 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 00:12:20 ]
これを元にした噛み砕いたユーザー向け解説というのを誰か第三者が作ってきちんとフォローすべきなんだ
でも、Ruby(特に日本の)ではそういうのが特にないんだよね
商売っけがないというか、目立ちたがり屋がいないというか

ちなみにオフィシャルの仕事ではないのでこれ以上は望んじゃ駄目よ
取り巻きの役目



276 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 00:15:59 ]
user visible feature changes と書いてあるんだが…


277 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 00:18:07 ]
これとRubyリファレンスマニュアルを併用すればきっと・・!

278 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 00:18:17 ]
るびきち氏の日記に載ってたのはリリース当時欲紹介されてた気がする。
ttp://d.hatena.ne.jp/rubikitch/20080508/ruby187

279 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 00:31:54 ]
>>278
神いわゆるゴッド

280 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 01:55:08 ]
>>275
>ちなみにオフィシャルの仕事ではないのでこれ以上は望んじゃ駄目よ

なんで?

ちなみにPythonはα版でもこれだけの出来。
ttp://docs.python.org/dev/whatsnew/2.7.html

これだけの差がありながら、「Rubyはドキュメントが揃ってる」とぬかす古参上級者がほんとジャマ。



281 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 02:03:55 ]
Andrew Kuchlingは取り巻きどころかPythonの主要開発者だな
Python3.0のWhat's newはGuido書き下ろしだし
ドキュメントは取り巻きに任せろってのはガンかもしれないね

でもこれ本スレでやったらいいよ
初心者にはいい迷惑だ

282 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 02:11:24 ]
>>280
人材が究極的に少ないから
現状に加えて一般向けにドキュメント揃えろなんて言ったらどんどんリリースが遅くなる
当事者だからという理由だけでできない人に無理やりやらせる理由はない
得意な人に任せておけばいい

まあ初心者スレ向けでないのとドキュメント揃ってるほうだと言ってる人間が障害になってるのには同意

283 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 10:33:28 ]
rubyの勉強をしろと言われ、perlのプログラムを渡された
雰囲気は似てるからrubyに書き換えて動作させてみろという
perlもrubyもほとんど触ったことない俺にどうしろっていうんですか…
書き換え方にコツとかあるんでしょうか?元のperlプログラムにはサブルーチンにハッシュやら配列やらが結構混ざって泣きそう

284 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 10:43:08 ]
>>283
とりあえず元のプログラムが何をするものなのか理解しないことには
始まらないと思われ

285 名前:221 mailto:sage [2009/12/16(水) 11:02:32 ]
>>247
ありがとう。24時間は超えてしまうのでTimeはやはり使わない方向でいきます



286 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 11:06:02 ]
質問です。
Rubyで簡単なGUIアプリを作ろうとしているのですが、現在何がオススメでしょうか?
環境は、Ruby 1.8.7、Windowsです。

できれば、あくまでできればですが、実行環境では追加のリソース(ランタイム)が必要ないものがよいのですが…
例えばexeに固めれば単体で実行できる、もしくはRubyとそのライブラリがあれば動くと言ったようなものです。

下記サイトでは、shose(why氏とともにサイト死んでる?)、Ruby-GNOME2、wxRubyがよく使われているとありますが、
みなさんは何を使われてますか?
Ruby GUI調査2008
www.pressure.to/ruby_gui_survey/index-ja.html

287 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 11:14:52 ]
>>286
> Rubyで簡単なGUIアプリを作ろうとしているのですが、現在何がオススメでしょうか?
RubyではGUIアプリケーションは作らない

288 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 11:15:28 ]
Windowsで1.8でexe単体なら自分だったらvruby+Exerb+UPX
でも上の縛りがなければwxRuby+Ocra
あとやったことないけどWebアプリ+RubyStationも面白そう

289 名前:286 mailto:sage [2009/12/16(水) 11:24:17 ]
shoesはgithubにありましたけど、Javaのprocessingみたいな感じなんですね。ちょっと用途が違うとおもた
samples at master from shoes's shoes - GitHub
github.com/shoes/shoes/tree/master/samples/


>>287
(´;ω;`)ブワッ
昔Delphi使ってたんでそっちでもいいんですが、できれば最近なれたRubyでGUI作れたらなとか思うわけですよ…

>>288
必ずしもexe単体でなくてもいいです。

webアプリは面白そうなんですが、とりあえず、vrubyとwxRuby試してみます

290 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 11:26:15 ]
たぶん、GUIというイベントドリブンな概念とRubyの記法が合わないんだと思う

291 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 11:28:25 ]
イベントハンドラにprocオブジェクトを登録することがごく自然に出来るわけで。


292 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 11:31:44 ]
実装の便利度に差がありすぎるんだよな
中にはHSPからシェル経由でスクリプト呼んで引数連携させたほうがマシといゲフンゲフン

293 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 11:43:07 ]
>>271
パスに{}[]が含まれると良くない

294 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 11:51:03 ]
>>293
一般に使ってもらうならともかく、自分の用が果たせたならそれでいいんじゃないか?


295 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 13:56:13 ]
wxRubyをgemで入れてみたのですが、wxruby-2.0.1-x86-mswin32-60がインストールされたのですが、
これて古くないんでしょうか?wxWidgetの0.6.0だったりしませんか?

ruby -v #=> ruby 1.8.7 (2008-06-20 patchlevel 22) [i386-mswin32] 古いな…



296 名前:uy ◆e6.oHu1j.o mailto:sage [2009/12/16(水) 17:55:27 ]
純粋にrubyのレベルをあげたいです
小さなツールとWebアプリケーションとGUIゲームくらいならrubyで作れるようになったんですが
ルビリストと呼ばれるようになる為の次のステップ教えてください

297 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 18:05:30 ]
いろいろな言語を使う。
とくにRubyのバックグラウンドを育んだLispやSmalltalkを。


298 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 18:09:09 ]
Lispやれ(EmacsLisp以外ならなんでもいい)
PerlがまだならPerlも齧れ
オブジェクト指向の関係でJavaもできるといいんだが

299 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 18:12:54 ]
>>296
もの凄い勢いでRuby初心者スレ/本スレ/ruby-list等
あらゆるサイトの質問にコテハンで答えまくる
質の高い回答が数千溜まるとGoogleに雇ってもらえる

300 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 18:14:14 ]
ルビリストってなんですか?

301 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 18:27:26 ]
googleって実際優秀な人材だけってわけじゃないんだよねぇ
広告塔の人間もたくさんいるし

302 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 18:47:10 ]
>>296
>ルビリストと呼ばれるようになる為の次のステップ教えてください

るびまの添削記事を読むのがいいと思う。
ttp://jp.rubyist.net/magazine/?0010-CodeReview
ttp://jp.rubyist.net/magazine/?0011-CodeReview
ttp://jp.rubyist.net/magazine/?0013-CodeReview
ttp://jp.rubyist.net/magazine/?0015-CodeReview
ttp://jp.rubyist.net/magazine/?0017-CodeReview


303 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 18:51:14 ]
>>282
>人材が究極的に少ないから
>現状に加えて一般向けにドキュメント揃えろなんて言ったらどんどんリリースが遅くなる
>当事者だからという理由だけでできない人に無理やりやらせる理由はない
>得意な人に任せておけばいい

ばかをいえ、ChangeLogやNEW FEATURESなんて、開発当事者ぐらいしか詳しくは知らないんだから
開発当事者が書くべきだろ。
こんなことすらも嫌がる開発陣ってなんなの?

どうせ開発リソースが増えたところで、ドキュメントに回すつもりないんだろ。

304 名前:283 mailto:sage [2009/12/16(水) 19:00:12 ]
昼間は無事だったのに規制が…
283です。
>>284
jcorrectとかいうやつだったかな
プログラムを実行して文章を入力すると、cabochaの解析結果と一緒に文章の校正を促すメッセージが出た
これを実行するためにcabochaとかいろいろ入れてた
プログラムを読んでいると、サブルーチンから値を順に渡していたり$foo->{$var}->とか見たことないのがいっぱいでなんかもうキーーーーってなったんだ…

305 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 19:06:54 ]
>>303
言ってること自体には賛同できるけどそういうのは本スレでどうぞ



306 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 23:36:21 ]
質問です。
実行環境:Xubuntu9.10、Ruby1.9.1
使用ライブラリ:tk、pty、expect
やりたいことは、外部プログラム(対話型のCUIプログラム)をRubyスクリプト内から実行する際に、
外部プログラムの実行結果(標準出力。エラーが発生して終了したならその時のエラー出力)
を取得したいのですが、何か方法はあるでしょうか。
ネットを見るとsshやtelnetのサンプルが転がってますが、
sshやtelnetが出力するメッセージ自体やエラー文(はあるのかな?)を処理するようなものがなく、
どうするんだーと悩んでます。

307 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 23:43:41 ]
シェルからパイプでつなぐ
` ... ` (バッククォート)でコマンド実行して出力取る
手の込んだことがしたければ require 'open3'

308 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 00:23:55 ]
wxRubyとかGUIアプリの話がでたついでに聞きたいんですけど、
↓みたいにマニフェストをruby/bin/において、Windows XP移行のLuna(?)風のUIにする方法があるんですが、
Ruby on Windows: Windows XP Visual Style Controls with wxRuby
rubyonwindows.blogspot.com/2007/10/windows-xp-visual-style-controls-with.html

…うまくいきません。
古いルックアンドフィールのままになります。
上記サイトのxmlをファイルをruby.exe.manifestとrubyw.exe.manifestに新規作成してコピペして、
ruby/binに放りこめばいいんですよね?

309 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 00:38:30 ]
>>307
ありがとうございます。
標準出力と標準エラー出力に違いがあるのを知らなかったですorz
open3は標準入力・出力・エラー出力のみ対応という形だったので、
except実行→出力結果を一時ファイルに出力→実行元プログラムでopen
という形で無事結果を得られるようになりました。

PTYがttyを別個に作ってそっちで実行させるっぽいのでバッククォート使えない(のかなぁ……)

310 名前:245 mailto:sage [2009/12/17(木) 11:43:14 ]
logger使ってみているのですが、
Benchmarkの出力結果が余計な改行が入るのですが、これってこんなもん?

time = Benchmark.measure do
:(略)
end
logger.debug Benchmark::CAPTION
logger.debug time.to_s

311 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 12:21:56 ]
そんなの logger は与り知らんよ
logger は対象のオブジェクトを to_s しての末尾に改行つけて書き出してるに過ぎない
何か問題あるならそのオブジェクトの to_s 調べれ

312 名前:245 mailto:sage [2009/12/17(木) 13:01:09 ]
>>311
舌足らずでごめんなさい。
puts Benchmark::CAPTION
puts time.to_s
だと改行の問題ないんです。気味が悪いんですが、何でなんでしょ

313 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 13:10:17 ]
>>312
改行が問題になるときの検証に puts 使ったら駄目
puts は文字列末尾に改行があったら自前で改行をつけない

というかこれはそのまんまで

irb> require 'benchmark'
irb> p Benchmark::CAPTION
" user system total real\n"

そもそも改行が末尾に入ってる
気になるなら Benchmark::CAPTION.chomp を logger に渡す

314 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 18:13:47 ]
> puts は文字列末尾に改行があったら自前で改行をつけない
漏れは大変なことを知ってしまった
近いうちに消されるかもしれない

315 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 18:18:58 ]
xpathって難しい。もっと簡単にできるか?
id('Layer3')//td[
following-sibling::td//a[contains(@href,
'money.www.infoseek.co.jp/MnStock')]]/b//font[@color]



316 名前:sage [2009/12/17(木) 21:38:37 ]
>>228
trunk には Date::Delta ってのが入ってるよ

317 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 22:32:29 ]
RSpecの用語について質問。
describe ... や it .... で書いたひとまとまりを、なんて呼ぶの?
たとえば Test::Unit なら
class FooTestCase < Test::Unit::TestCase ← これはテストクラス
 def test_equal       ← これはテストケース
  assert_equal(2, 1+1)
 end
end
のような呼び方をしてると思うんですけど、RSpecの場合は何と呼ぶのかわからないので、教えてください。


318 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 23:36:33 ]
現在β版のRSpec本によれば、
We use the describe( ) method to define an example group.
The it( ) method defines a code example.

なお、
describe(および別名のcontext)メソッドが作るのは
Spec::Example::ExampleGroupのサブクラス
it(および別名のexample)メソッドが作るのは
それのインスタンスメソッド
になる


319 名前:デフォルトの名無しさん mailto:sage [2009/12/18(金) 06:03:22 ]
質問です。
001
002
のような、3桁の連番を表示したいんですが、どうやればいいんですか。
for i in 001..100
だと
1
2
になるんですが。

320 名前:デフォルトの名無しさん mailto:sage [2009/12/18(金) 06:18:23 ]
Rubyらしい書き方ではないかもだが

for i in 1..100
 p '%03d' % i
end

数字の頭に0がつくとRubyでは8進数って意味になるので注意

321 名前:デフォルトの名無しさん [2009/12/18(金) 06:23:07 ]
('001'..'100').each{|s| puts s}

322 名前:デフォルトの名無しさん mailto:sage [2009/12/18(金) 06:25:56 ]
>>320
見事にできました。
素早い回答どうもありがとうございました。

323 名前:デフォルトの名無しさん mailto:sage [2009/12/18(金) 10:03:11 ]
WEBrickで、
・Basic認証またはDigest認証
・IPアドレスによるアクセス制限
を実現したいのですが、サンプルとか参考になるページがあれば教えてください。
「WEBrick IPアドレス 制限」とかでぐぐったけど、それらしいのはヒットしませんでした。

324 名前:デフォルトの名無しさん mailto:sage [2009/12/18(金) 10:32:21 ]
追記。
ちなみに、今使っているサンプルはこんなのです。
require 'webrick'
server = WEBrick::HTTPServer.new({
:DocumentRoot => '.',
#:BindAddress => '127.0.0.1',
:Port => 3000,
})
Signal.trap('INT') { server.shutdown }
Signal.trap('TERM'){ server.shutdown }
server.start

325 名前:デフォルトの名無しさん mailto:sage [2009/12/18(金) 11:10:43 ]
認証
WEBrick::HTTPAuth::BasicAuth
WEBrick::HTTPAuth::DigestAuth

IPアドレスでの制御は HTTPRequest#addr あたりを見て403を返せばいいんじゃない?





326 名前:デフォルトの名無しさん mailto:sage [2009/12/19(土) 12:18:34 ]
{1=>[2]}となる事を期待したけど、この方法では駄目みたいですね。

% irb1.9.1
irb(main):001:0> h=Hash.new([])
=> {}
irb(main):002:0> h
=> {}
irb(main):003:0> h[1]
=> []
irb(main):004:0> h[3]
=> []
irb(main):005:0> h[1] << 2
=> [2]
irb(main):006:0> h
=> {}
irb(main):007:0> h[1]
=> [2]
irb(main):008:0> h[3]
=> [2]


327 名前:デフォルトの名無しさん mailto:sage [2009/12/19(土) 12:29:26 ]
>>326
www.ruby-lang.org/ja/man/html/trap_Hash.html

ぶっちゃけRubyの怪しげな機能は使わないほうがいいと思う

328 名前:デフォルトの名無しさん mailto:sage [2009/12/19(土) 12:32:18 ]
>>326
そりゃArrayやHashの初期値つきnewは毎回初期値のオブジェクトを生成するからな

irb> p h[2].object_id == h[2].object_id
false

irb> h=Hash.new([])
{}
irb> h[1]=[2]
[2]
irb> h
{1=>[2]}

329 名前:デフォルトの名無しさん mailto:sage [2009/12/19(土) 12:39:22 ]
>>328
> p h[2].object_id == h[2].object_id
これうち(1.8.7cygwin)でやるとtrueになるんだが1.9で変わったとか?

330 名前:デフォルトの名無しさん mailto:sage [2009/12/19(土) 12:42:53 ]
>>326
それだとh[1]の参照先(初期値オブジェクト[])に2を入れてることにしかならない

h[1] = ほげほげ
としない限り
{1=>ほげほげ}にはならない

331 名前:デフォルトの名無しさん mailto:sage [2009/12/19(土) 13:35:34 ]
$ rvm use system
<i> Now using system ruby. </i>
$ irb --prompt simple
>> RUBY_DESCRIPTION
=> "ruby 1.8.7 (2008-08-11 patchlevel 72) [universal-darwin10.0]"
>> h = Hash.new([])
=> {}
>> [h.default, h[0], h[1]].map(&:object_id)
=> [2156963800, 2156963800, 2156963800]

$ rvm use 1.9.1-head
<i> Now using ruby 1.9.1 head </i>
$ irb --prompt simple
>> RUBY_DESCRIPTION
=> "ruby 1.9.2dev (2009-12-11 trunk 26067) [x86_64-darwin10.2.0]"
ruby-1.9.1-head > h = Hash.new([])
=> {}
>> [h.default, h[0], h[1]].map(&:object_id)
=> [2151892720, 2151892720, 2151892720]


332 名前:デフォルトの名無しさん mailto:sage [2009/12/19(土) 15:45:53 ]
>>331みたいな人ってソース中のコメントもほぼかかなそうだよな

333 名前:デフォルトの名無しさん mailto:sage [2009/12/19(土) 16:35:24 ]
>>332は初心者

334 名前:デフォルトの名無しさん mailto:sage [2009/12/19(土) 16:59:49 ]
まあ初心者スレだしな

335 名前:デフォルトの名無しさん mailto:sage [2009/12/19(土) 17:53:52 ]
結局>>328は間違ってるということかい?



336 名前:デフォルトの名無しさん mailto:sage [2009/12/19(土) 18:26:49 ]
new(初期値)で生成されたハッシュに存在しないキーでアクセスした場合の挙動は、
同じオブジェクトが返るというのが正しく、
毎回異なるオブジェクトが返るというのは誤り。


337 名前:デフォルトの名無しさん mailto:sage [2009/12/19(土) 18:37:34 ]
質問するならリファレンスマニュアルくらい読んでからこい






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<233KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef