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


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

Ruby 初心者スレッド Part 22



1 名前:730 [2008/09/15(月) 17:25:21 ]
プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。

   【Ruby1.9 は不安定な開発版であり初心者には全く向きません】
   【最新安定版の Ruby1.8.7 の使用をお勧めします】
    ※1.8.7 は1.8 と 1.9 の橋渡しをするためのリリースです。
      1.9 の新機能の一部が利用可能なので初学者にお勧めです。
    ※ただし十分安定しているとは言えないので
      プロダクション環境での利用にはお勧めしません。

関連スレやURLは>>2-8あたりを見てください。Ruby on Railsの質問は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を読め」でいいので、叩かない&怖がらせない。
 ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。
 ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。

477 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 13:48:55 ]
PerlとPHPは真っ先に除外できるな

478 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 13:53:31 ]
>>477は何もわかってない
キャッチセールに真っ先に引っかかるタイプ

479 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 13:59:54 ]
アレな方々が流入してくるとすぐスレがおかしくなるな

480 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 14:02:47 ]
PerlやPHPを知らないっていうのは一番悲惨なパターンのRubyユーザーなのでは…

481 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 16:01:00 ]
PerlやPHPを生半可に知ってる方が、変にRubyに入れ込んじゃって不幸になる気もする。

482 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 16:29:26 ]
Rubyって何に適してる言語なの?

483 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 16:53:30 ]
>>482
オブジェクト指向テキスト操作ネット通信言語です

484 名前:デフォルトの名無しさん [2008/10/09(木) 17:09:03 ]
>>470
もっともなご意見です。
周りがみんな騒ぐので、こっそりRailsを触って見たが、
scaffoldまでは良かったがIDEが無いのでこつこつとコーディング
をしなければ行けず、こんなんで生産性がいいか?
と思っちゃいましたね。あと遅いし。

会社ではJavaで開発しているが、Eclipseを使った開発は超快適、
Ctl+スペースを打てば自動的にコードを挿入してくれるし、自動的に関数のヘルプも出るしね。
したい事を実現するためのライブラリはほぼ間違いなくのあるし、その数も桁違いに多いし。

Rubyに比べれば見た目のコーディング量は多いが、ほとんどはIDEが自動的に挿入したものだから、
実質は同じ量か下手すれば少ないだろう。

Railsは、一時の流行じゃないかなと思うね。
結局、ビジネスを企んでいるいるやつらに、うまく乗せられたんだよ。
「うそも100回言えば真実となる。」と誰かが言ったが、これが当てはまる気がする。生産性に関して言えば。


>>458
に一部賛同
PHP or Python:小規模
Java:大規模
でしょう。

どうもRails + Macで、私は先端を行くというような事を見せ付けているような感じが嫌いだ。
所詮、他の方の意見どおりwinでまともに使えなければこれ以上流行はしないだろう。


485 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 17:14:11 ]
RailsはRubyのヘビーユーザーが適当に活用して小ぶりなアプリケーションを連続生産するのに向いている
RailsのためにRubyを学ぶような人や、Railsのソースを読んでも何してるかさっぱりわからんような人が使ってもどうにもならんな

という魔術師(志向)の人向けのフレームワークだったはずなんだが、当初からそのはずだったんだが、誰が捻じ曲げたのやら…



486 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 17:14:19 ]
すごい初歩的な質問していい?
ゲーム作ってみたいと思って、つい最近Ruby始めたんだけど。
講座HPみたいなところで、Ruby/SDLでつくったスクリプトをexeファイルにしても、
Ruby/SDLのdllファイルが全部同じディレクトリにはいってないと動作しないって書いてあったんだけど、
てことは作ったゲーム配布するときはdllファイルも全部つけて配布しなきゃいけないってこと?

487 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 17:19:27 ]
>>484
MacOSXでRubyを使うことに決めた人は、もともとPC-UNIX上でRuby使い倒してたような人が多い
そういう人の使うRoRは、その人のプロダクト作成に非常に役立つものになると思うよ

>>486
Exerbでひとつにまとめることが…DLLはできないのかな
というか、DLLは普通実行ファイルと一緒に配布するもんなんじゃね

あとRubyでゲーム作るのはマゾさんのすることなんだけど、あなたはマゾですか?

488 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 17:22:03 ]
>>484
Railsを擁護する気は全くないけれど
一応、IDEを使ってRailsの開発することはできるよ(EclipseとAptana)

>>486
その通り

>>487
俺は自分のことをSだと思ってたが、本当はMだったのか

489 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 17:41:03 ]
www.domo2.net/search/search.cgi?word=ruby&tnum=50&sort=res+desc

490 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 17:45:19 ]
>>487
>>488
回答ありがとうございますm(__)m
一緒に配布するんですか〜。16個くらいあったんでまとめられれば見栄えがいいんだけど。

Rubyはゲームに向いてないですか;
大学の講義でRubyを軽く使うらしいから、ついでにと思って始めたんだけど・・
Rubyはわかりやすいって評判ですけど、Rubyでプログラミングに慣れてからC言語勉強した場合、
共通点が多くてサクサク覚えられますか?それとも違いが大きくて効率悪いですか?

491 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 17:49:36 ]
>>490
人によるんじゃないかな
共通してる部分も確かにあるけど
片方をしっかり身に着けない内に他に手を出すと
ごっちゃになって混乱しそう

492 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 17:49:46 ]
C言語を使って便利な機能を便利な概念でまとめたのがRubyだ

493 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 17:54:36 ]
>>491
>>492
回答ありがとうございます。
ある程度身につくまでRubyで頑張ってみて、限界感じたらC言語勉強することにします〜

494 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 18:02:07 ]
C→Rubyは曖昧さを感じて戸惑う
Ruby→Cは堅苦しさ、面倒くささを感じる

495 名前:デフォルトの名無しさん [2008/10/09(木) 18:07:31 ]
>>490 >>491 >>492 >>493
CとRubyはまったく用途が違うだろう。無理に使う事ができるけどね。
Cを勉強するならC++じゃないか。
Rubyでゲームか? 話にならない。
ゲーム開発している人間に聞いてみな。笑われるだけだ。

後々の資産として、C++を先に勉強したほうが得だと思うよ。




496 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 18:24:53 ]
またC++厨が…
C++を学ぶのとCを学ぶのでは意義が違うと何度言えば

497 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 18:26:11 ]
そろそろスレタイ嫁

498 名前:デフォルトの名無しさん [2008/10/09(木) 18:30:38 ]
>>496
説明してみぞ




499 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 18:34:39 ]
うぜぇ

500 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 18:37:16 ]
こういう香ばしい人って、なんでみんなageるんだろうね

501 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 18:45:48 ]
>>484,488
業務でAptana使ってるが、コード補完はやはりイマイチ。
候補が無駄に多いうえに欲しいのが出てこなかったりする。
特に、ハッシュで引数与える関数は全滅だ。
この辺はNetBeansも大差ない。
abbrevのあるemacs系の方がまだ使える。

Eclipse + JDT で幸せなJava開発環境を味わってる人には物足りないだろう。

502 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 19:29:58 ]
Rubyと共に使うなら純Cだろうね。
C++はそれ単体で使うもの。
ゲーム作りならC++オンリーがパフォーマンス的に一番だろうなあ。
ただ、Rubyでも処理速度がさほど求められないならゲームに一応使えると思うが
ゲーム用のライブラリはCかC++だろうしなあ。
一応、RPGツクールはRuby使えるのもある。

503 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 20:03:58 ]
>>502
Ruby/SDLでだいたい満足してたから、他のゲーム用ライブラリ触ったことないんだが
CやC++にはそんなに良いライブラリがあるのか?

504 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 21:45:12 ]
とりあえず、SDLはC/C++でも普通に使える。

505 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 10:57:55 ]
>>503
SDL



506 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 18:18:11 ]
わざわざCからSDL使わなくても、Ruby/SDLでよくね
性能が要求されるなら直接DirectX使うべきだし

507 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 18:27:06 ]
ゲームってのはけっこうハイレベルな感じに常時性能が要求されるもんだと思ってたが違うのか?

508 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 18:29:11 ]
ゲームによるよ
3Dでエフェクトも激しいアクションゲームなんかは大変だけど
そうじゃないゲームもたくさんある

509 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 18:36:43 ]
専用スレがあるんだからそっちでやればよくね?

510 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 18:47:04 ]
>>508
マジレスするとそうでもない
画像表示してブラーかけてるだけのADVなのにDirect9c対応グラフィックボード要求するとかもうアホかと

511 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 18:55:54 ]
「DirectGraphicsの初期化に失敗しました」は昨今けっこう有名なメッセージだと思う

512 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 19:29:48 ]
誘導:
【Ruby/SDL他】Rubyでゲーム制作・総合スレッド
pc11.2ch.net/test/read.cgi/gamedev/1207069887/

513 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 20:31:46 ]
>>510
それはその例がそういうゲームってだけだろ

514 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 10:27:03 ]
玉金破裂ゲーム

515 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 15:25:43 ]
Arrayを継承したクラスのオブジェクト.find_all{|e| e.cond?}

がArrayを継承したクラスのオブジェクトに自動でならないことにほんのりがっかりした



516 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 15:30:32 ]
>>515
gem のライブラリで時々見るな、そういう中途半端実装
そこはレシーバのコレクションクラスのオブジェクトを作って返せと…なんのための独自配列なのかと…

517 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 16:00:49 ]
>>515
find_all は Array じゃなくて Enumerable のメソッドだから
実際のところ自分のクラスは関係ない


518 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 21:09:09 ]
Arrayは継承するな…とcompositionを使えと

519 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 21:59:40 ]
Arrayを継承するってどういうシチュエーションなんだ??


520 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 22:08:31 ]
なんで継承を毛嫌いするかね

521 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 22:09:37 ]
いらんメソッドが付いてくるから

522 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 22:13:23 ]
アホすぎて笑えない

523 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 22:13:39 ]
継承は怖い

524 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 22:18:59 ]
>>520
作るのは簡単だが使うときに面倒
あと作り直すときにも面倒

525 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 22:20:50 ]
すごいとこまできてるねRubyistはw



526 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 22:21:13 ]
>>515
ハッシュからハッシュを返すselectやmapはたまに欲しくなる

527 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 22:22:01 ]
カンペキに活用した継承は非常に強力だが、ほとんどの継承はそうではない
っていうか、組み込みクラスは継承しないで委譲しろ、継承は自作クラス間でどんどんやれ

528 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 22:23:05 ]
本当にアホばかりで嫌になる

529 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 22:24:49 ]
ライブラリを書くくらいに使ってる人がいないってだけ

530 名前:デフォルトの名無しさん [2008/10/12(日) 10:56:19 ]
Integerのaとbのobject_idを常に同じにする方法ってありますか?
a.object_id = b.object_id
みたいなことがやりたいんですが

531 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 11:51:41 ]
>>530
object_id を同じにしたい理由が良くわからんが…
普通に代入すれば同じになるでしょ。

今の実装では Fixnum の場合は即値だから必ず同じ値になるんじゃないかな。



532 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 12:05:34 ]
>>530
できませんという答が妥当な気がする

>>531の言うように、Ruby の整数の数値の値とオブジェクトIDは紐付けられてる
整数の 1 のオブジェクト ID は常に一定だ

533 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 13:33:03 ]
>530
多分参照を扱いたいんだと思うが
そういう場合は配列やオブジェクトにくるんで受け渡しするのがベスト。

534 名前:デフォルトの名無しさん [2008/10/12(日) 13:57:54 ]
>>531,532,533
ありがとうございます
そのままでは無理でしたか

ちなみに、何故やりたかったかというと(railsの話になりますが)
class A; attr_accessor id; end
class B; attr_accessor a_id; end
と二つclassがあり、AのidとBのa_idを同じにしたかったのです。
今までは

A.transaction do
@a.save!(ここで、a.idに代入される)
@b.a_id = @a.id
@b.save!
end

としていましたが、

@b.a_id.object_id = @a.id.object_id(みたいなことができれば。。)
A.transaction do
@a.save!
@b.save!
end

とできると、updateでもcreateでもtransaction内が共通になるため、2つのclassをまとめたclassが定義しやすいなと

535 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 15:39:09 ]
>>534
なぜそうなってしまうのかわからない。
スキーマはどうなってるの?




536 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 16:27:25 ]
>>534
ごめん
その話聞いても,idとa_idを同じオブジェクトIDにしたい理由がわかんないわ
それにそもそも代入やFixnumみたいなやつ以外で同じオブジェクトIDになることない気がする

なにか勘違いしてるんじゃ…

537 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 16:47:40 ]
そんなことできたらそれはIDって言わないんじゃないの

538 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 16:56:36 ]
要するに,例えばaとbっていう変数があったときに
b.object_id = a.object_id
としておけば
a = 10
としたときに,bも自動的に10になってくれませんか?

っていう話でしょ

object_idはそんな用途に使えません

539 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 17:01:37 ]
>>538
すげー
よく検討ついたな

540 名前:デフォルトの名無しさん [2008/10/12(日) 17:54:01 ]
>> 538
その通りです
分かりにくい説明で申し訳ないです

用は参照を使いたかったんですが。。

541 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 18:32:47 ]
なんかa_idって名前が気になるな
すっげー憶測だけど、Bはインスタンス変数でAを持つのが素直な設計だったりしない?
それならB#save!で@a.save!するだけで済むから楽なんだけど

542 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 18:38:16 ]
>>538
おまえ、ほんとエスパーだな。
おれはさっぱり読み解けなかった。

543 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 19:03:44 ]
>>534
railsというかActiveSupportはそういう関連づけを自動化してくれなかったっけ?

あるいは>>541のようにしてB#a_idは@a.idを返すようにするとか。

544 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 20:48:21 ]
>540は自分の頭にあるオブジェクトのイメージをER図やクラス図で
さらっと描きだせるくらいのレベルになるまでARを封印すべきだ。
もし仕事でやってるなら合掌。


545 名前:デフォルトの名無しさん [2008/10/12(日) 21:00:36 ]
>>541, 543
確かにModelはそんな感じの設計です。
@a.b = @b
で関連付けて、
@a.save!
とすればbも入るってことですよね。

ただ、viewに2つのmodelを分けて書くのが面倒だったので、調べているとActivePresenterなるpluginを発見し
(ttp://jamesgolick.com/2008/7/28/introducing-activepresenter-the-presenter-library-you-already-know)
利用してみたところ、さきほどの参照のようなことをしたいなと思った次第です。

このpluginは2つのModelを結合してくれるもので、
 @ab = AB.new(params[:ab])
 @ab.save
で、AもBもsaveできちゃうよということでした。
ただ、DBの保存時に決定される@ab.a_idと@ab.b_a_idが関連づかずに困っていたというわけです。
あまり、plugin自体には手を入れてくなかったので、
@ab.a_idと@ab.b_a_idが同じだよということができれば良いなということでした。



546 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 23:11:18 ]
プライマリキーの値を変更するな、テーブルの設計からやり直せ

547 名前:デフォルトの名無しさん [2008/10/12(日) 23:24:26 ]
>>545
自己レスです
とりあえず、参照は素直にはできないということは分かりました。
ありがとうございました。
もう少し試行錯誤して、無理なら普通のARにしてみます。

548 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 01:37:23 ]
>>544
初心者として気になるんだけど
そのレベルになるまではどんな感じやるのが上達する?

549 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 01:44:19 ]
>>548
1週間に3日書く
今週はRubyスクリプト書いたり改良の試行錯誤が無かったなあという週が無いという状態にする

制御構造覚えたらマニュアル見つつたまに使う程度のカジュアルさでももちろん一向に構わないが、
その場合はRubyが上達することはないだろうし、上達するほど頑張る理由もそもそも無いことだろう

550 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 01:56:31 ]
Rubyのクラス分けやモジュール分けはてきとーで良いということがわかった頃から
スクリプト作るの早くなったような気がする

今でも特異メソッドとかわからんが
インスタンスメソッドとクラスメソッドしか作ってない
Proc はライブラリで要求されないと作らない
yield は使う機会が無いのでわけがわからない

551 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 06:21:15 ]
yield は each 作ったりしたらすぐ覚える

552 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 06:31:29 ]
おれはテストを書く気が全く起こらないんだよなあ…
少しづつでも書けばいいんだろうけど
つまらないから全く続かない…

553 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 07:56:06 ]
どう考えても

 テストを書くのに悩む時間 >> 変なバグで悩む時間

なのでテストを書く理由がない俺
他人様に提供するライブラリ書くんじゃない限り要らないもんだと割り切ってる
書き方指南がないということは本当はみんな不要だと思ってる証拠

554 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 08:32:04 ]
>>553
書き方指南いろいろあるじゃん
本にもwebページにも

俺も有用であるという自信はないが

555 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 08:43:49 ]
テスト書くためのスクリプトでテスト書く説明するだけだしなあ
お前そんなスクリプトなんて普段絶対書かないだろ、というのが多々…(特にテスト駆動)



556 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 08:54:11 ]
スクリプト序盤から中盤での書き方がよくわからないのがテスト駆動の特徴
というかMockとかあのへんを理解しないと関数的スクリプトのテストしかできん

557 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 09:23:47 ]
色々書き方の作法もあるけど、むしろ形式に捕らわれず自由にテスト書くようにしたら
それはそれで楽める部分もあると思う。

558 名前:デフォルトの名無しさん [2008/10/13(月) 09:42:39 ]
俺はテスト書かなくて困るのってリリース後なんだよなぁ。
デグレ出るたびに書いときゃよかったって思う。

559 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 10:07:10 ]
ちゃんとテストが書けるようになったら、もう上級者だよ。
つまり上級者になるためには、テストがきちんと書けるようにならないといけない。

おれはまだうまく書けないんだけどな。
UIのテストなんか、どうしたらいいのかさっぱりだ。

560 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 10:36:29 ]
他人様のライブラリのgitのtestディレクトリとか眺めてるとよくわかる

本文コードの追加変更に対してテストが異常に適当というか不足
時間かけてまでして作りたくないかどうすれば網羅するか考えるの面倒なんだろうな

561 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 14:01:54 ]
テストなしでロジック修正とかコードの整理(リファクタリング)とか、
怖くてできない体になった。


562 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 15:01:22 ]
ZenTest試用中。なかなか良さげ。
ttp://mono.kmc.gr.jp/~yhara/w/?ZenTestMemo
ttp://zentest.rubyforge.org/ZenTest/files/README_txt.html

gem install ZenTest
でインストール。

563 名前:デフォルトの名無しさん [2008/10/13(月) 17:14:28 ]
>>561
わかります

564 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 17:30:17 ]
テスト書くとメソッド単位でしか検証できないからめんどくさい
あと、GUIアプリのTestってどうやるの?

565 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 17:35:59 ]
できない



566 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 17:55:46 ]
入力の自動化をすれば出来る。
が、チェック項目をリストにして人力でやったほうがなんぼかマシ。

567 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 18:30:55 ]
RubyでGUIつーと、テスト以前に環境が貧弱だからのう。
WebならSeleniumとか。


568 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 18:32:59 ]
>>564
自動でマウス動かしてクリックしたりフォーム埋めたりするよプログラムを併用する
稀にどうしても自動化できないところが出てくることがあり、そういうときは漏れのない操作一覧図を書いて手動

569 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 18:58:10 ]
>>564
ビューとコントローラを極力分離すれば、ある程度までは機械的にテストできる

570 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 19:02:19 ]
GUI自体をテストしたい場合は?

571 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 19:15:36 ]
GUI自体のテストって具体的にどんなの?

572 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 19:52:47 ]
マウスクリックのタイミングとか

573 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 02:10:57 ]
サブネットマスクにマッチするような判定って簡単に出来ますか?
例えば、
"192.168.0.45".in_mask?("192.168.0.0/24") # => true
"192.168.0.45".in_mask?("192.168.0.0/29") # => false
となってほしいのです。

574 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 02:15:25 ]
本質的にサブネットマスクはbitmaskだから
ANDしてやればいい

575 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 03:03:18 ]
>>573
IPAddr#include?




576 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 07:48:35 ]
rubyはじめたばかりのものです。

Windowsにて、ワンクリックインストーラでrubyをインストールし、
RMagick(とImageMagick)をインストールしました。
サンプルプログラムを走らせようとすると(ruby sample.rb)、以下のようなエラーメッセージが出ました。

./RMagick.rb:2: uninitialized constant Magick (NameError)
from D:/Programs/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:
27:in `gem_original_require'
from D:/Programs/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:
27:in `require'
from rmagick.rb:1

ファイルの内容は以下です。

require 'RMagick'
include Magick
img1 = ImageList.new("d:/a.bmp")
img2 = img1.blur_image(0,2)
img2.write("sample01.bmp")
exit

色々と試した結果、上記ファイルがあるディレクトリ(D:\rubyとする)をカレントディレクトリとして、
cmd.exeからruby sample.rbとすると上記のエラーが発生しますが、カレントディレクトリがd:\の
場合は正常に実行されました。どうもカレントディレクトリに*.rbなファイルがあると失敗するようです。
irbでも同様の結果でした。

これを回避する方法はないものでしょうか?

577 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 09:35:18 ]
そろそろ解決してる頃だろうか

>>576
require 'hoge' は カレントディレクトリの hoge.rb ファイルを読み込む
rmagick.rb (大文字小文字問わず)という自作ファイルを改名しろ

「hoge ライブラリを試そうとして hoge.rb を作って実行し、次にまた別のスクリプトを作って変なエラーにはまる」というのは
そろそろ FAQ にしてもいいと思う






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

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

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