- 1 名前:デフォルトの名無しさん [2009/03/28(土) 07:52:30 ]
- オブジェクト指向スクリプト言語Rubyについて扱うスレッドです。
Ruby Home Page www.ruby-lang.org/ja/ = 前スレ Rubyについて Part 34 pc12.2ch.net/test/read.cgi/tech/1233686068/ 過去スレ・関連スレは >>2-
- 151 名前:デフォルトの名無しさん mailto:sage [2009/04/30(木) 22:30:13 ]
- ピア村は昔いい本出してたけど、最近は縮小傾向だったな
久しぶりに買ってみようかな Amazonで見る限り、純粋なRubyのGoF本ってわけじゃないのだろうか
- 152 名前:デフォルトの名無しさん mailto:sage [2009/05/01(金) 13:57:18 ]
- 表紙とか紙の質とかが残念だけど良書だと思う。
- 153 名前:デフォルトの名無しさん mailto:sage [2009/05/01(金) 16:45:17 ]
- >>152
どういまいちなの?
- 154 名前:デフォルトの名無しさん mailto:sage [2009/05/01(金) 16:50:37 ]
- >>151
Rubyで純粋なGoFって無駄多すぎじゃない?
- 155 名前:デフォルトの名無しさん mailto:sage [2009/05/01(金) 17:03:19 ]
- Ruby自体が旧来言語から見たデザインパターンの塊だからな
- 156 名前:デフォルトの名無しさん mailto:sage [2009/05/01(金) 17:13:20 ]
- >>154
そうなんだけど、 「GoFにそってコーディングするとこうなるけど、 Rubyの機能(Singletonとかイテレーターとか)を使うとこうなります」 みたいな感じのもいいかなと思って。 Rubyのよさもわかるし、コーティングするのはRubyだけとは限らないし。 まあGoFをやりたかったら、Javaの本でも読めと言われればそうなんだが。
- 157 名前:デフォルトの名無しさん mailto:sage [2009/05/01(金) 17:38:40 ]
- そこで The Design Patterns Smalltalk Companion ですよ。
余力があれば、Ruby 向けに書き直すのもよし。
- 158 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 18:03:41 ]
- Rail3がどーたらこーたら
www.computerworld.jp/topics/osst/144809-2.html
- 159 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 08:55:54 ]
- いつのまにか、るりまのクラスリファレンスの表示形式が変わって見やすくなってるな
(旧リファレンスのような一括表示になってる) るりまチームの人お疲れ様です
- 160 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 13:04:17 ]
- if (a = foo) != nil
end を if a <- foo end って書ける様にしてくれ。 イコールで代入とか全国の数学者が混乱するだろ。
- 161 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 13:08:13 ]
- は?
- 162 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 13:32:32 ]
- それより//演算子だろ
- 163 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 14:24:35 ]
- >>160
そういう文法の言語をお前が作れ
- 164 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 14:34:23 ]
- >>160はどこかからの受け売りと予想
- 165 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 14:50:09 ]
- >>160
その記法、俺には foo が a を参照している、という状態を表しているように見え、 代入という操作を表現しているようには見えない。
- 166 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 14:53:45 ]
- 代入は
a := foo でいいよもう
- 167 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 15:01:17 ]
- >>160
> イコールで代入とか全国の数学者が混乱するだろ。 だとしたら、この世に存在する殆ど全ての言語を作り直す必要が発生するね。 Cもそうだしネ! ここは寧ろ混乱して困っている数学者氏にご登場願いたいくらいだ。
- 168 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 15:21:59 ]
- 数学者は計算機を計算に使わない。
- 169 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 15:33:17 ]
- 数学者はRubyを計算機での計算に使わない。
- 170 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 15:34:36 ]
- 使うよw
四色定理の証明とか
- 171 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 15:53:04 ]
- 数学なんて定義を明確にして積み上げていくシロモノなんだから
数学者は、むしろ適応早いと思うんだが
- 172 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 16:20:05 ]
- > if (a = foo) != nil
なんでこんな無駄なこと書いてるんだ?
- 173 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 16:33:14 ]
- >>172
自分の成功体験で「若し変数 a に foo を代入した結果が nil でないならば」と読み下せるからだろう なんでわざわざ新しい言語を覚えようと思ったのかが理解不能だ
- 174 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 17:04:28 ]
- >>172
if文ブロック内で、aがそのまま使えるからじゃね
- 175 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 18:03:11 ]
- いや、 if (a = foo) とか unless (a = foo).nil? とかあるじゃん? という話だと思う
- 176 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 18:28:16 ]
- foo が false だったら 真として扱いたいんじゃないか?
- 177 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 18:31:57 ]
- fooがfalseだったら偽だろ
unless (a = foo).nil は気持ち悪い
- 178 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 18:33:49 ]
- if a == false
と if a == nil を区別したいんだろ
- 179 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 18:41:31 ]
- >>174と>>178は同じやつで、最初のレスのやつだったりしてな
どう見ても素人まるだし != nil == nil Rubyでこんなこと書くやつはそうそういない
- 180 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 18:42:56 ]
- 俺>>174だけど違うよw
- 181 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 18:43:57 ]
- a.nil? はともかく、 !a.nil? は字面がなんか嫌だ
- 182 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 18:44:33 ]
- >>179
RubyなんてPerlとかからの移行が多いんだから、普通に一杯いるだろ
- 183 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 18:44:45 ]
- unlessやnil?を無理やり使ってこそ真のRubystだろうが
- 184 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 18:51:32 ]
- >>172の「なんで」から始ったレスなのに、
レスした奴まで素人扱いかよw というか、その程度のことで素人認定するお前はRubyしか知らない素人なんじゃねーの?
- 185 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 19:12:01 ]
- こっちのほうが初心者スレになってきた件
- 186 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 20:20:11 ]
- if not obj.nil? then
はまれに使うな
- 187 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 21:18:11 ]
- >>184
ソースは言葉よりはるかに雄弁 あとやたら「w」つけるやつで優秀な奴はまずいない(おれ個人の経験則だが)
- 188 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 22:17:42 ]
- 変ながんばり方だなw
- 189 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 01:54:17 ]
- unless obj.nil? != false とか。
- 190 名前:デフォルトの名無しさん [2009/05/14(木) 16:35:24 ]
- rspecで、fixture をキャッシュさせない方法はないでしょうか
fixtures :product で product.yml でデータを products テーブルに投入しますが、 *_spec.rb を単発で実行するときはテストが通るけど、 rake test 等でまとめて実行するとき、Aという機能のspecファイルで :product を投入し、 次に Bという機能の specファイルで、:product というシンボル名だけど別のディレクトリにある product.yml を 投入したいのですが、名前が同じだと2回目は読んでくれないようです。 言い方を変えると、describe ごとに fixtures で入れたデータをロールバックしてほしい spec_helper.rb で config.use_transactional_fixtures = true を falseにすると、ロールバックされるようになったが、逆にテストメソッドの中で実行した insert や delete は コミットされるようになってしまった
- 191 名前:デフォルトの名無しさん mailto:sage [2009/05/15(金) 17:00:04 ]
- >>190
別のディレクトリにあるproduct.ymlっていうのがよくわからない。 AとBで読み込んでるfixtureは同じじゃないのか? とりあえずfixtureを読み直してくれないという意味で捕えるけど データベースエンジンがMySQLのMyISAMだったらロールバックしない。 InnoDBだったらロールバックするよ。 fixtureを読み直したりはしてないんじゃないかね。 ロールバックよりは遅そうだし。
- 192 名前:デフォルトの名無しさん mailto:sage [2009/05/15(金) 18:29:38 ]
- >>191 レスどうもありがとうございます。
> 別のディレクトリにあるproduct.ymlっていうのがよくわからない。 > AとBで読み込んでるfixtureは同じじゃないのか? たとえば Rails で二つコントローラがあって、 RAILS_ROOT/app/controllers/foo_controller.rb RAILS_ROOT/app/controllers/bar_controller.rb それぞれの spec ファイルは以下の通り。 RAILS_ROOT/spec/controllers/foo_controller_spec.rb RAILS_ROOT/spec/controllers/bar_controller_spec.rb それぞれの spec で異なるテストデータを使いたいので、以下のようにfixtureのymlファイルを配置し、 RAILS_ROOT/spec/fixtures/controllers/foo/product.yml RAILS_ROOT/spec/fixtures/controllers/bar/product.yml それぞれのスペックファイルの describe の先頭で、以下のようにやっています。 self.fixture_path = RAILS_ROOT + '/spec/fixtures/controllers/foo/' fixtures :product
- 193 名前:192の続き mailto:sage [2009/05/15(金) 18:30:02 ]
- > とりあえずfixtureを読み直してくれないという意味で捕えるけど
> データベースエンジンがMySQLのMyISAMだったらロールバックしない。 > InnoDBだったらロールバックするよ。 こちらでも MySQL を使っていて、InnoDBです。 で、テストを動かす前にテーブルの中身を全て truncate した後、テストを動かして、 もう一度テーブルの中身を覗くと、fixture でいれたデータが残っている。 自分のビジネスロジックで insert したり delete したトランザクションはロールバックされるようです。 spec_helper.rb では以下のようにしています。 config.use_transactional_fixtures = true config.use_instantiated_fixtures = false 私が思うに、fixtures :product のシンボル名でキャッシュするようで、 foo_controller_spec.rb が動いた後、 bar_controller_spec.rb が動くときに、 bar_controller_spec.rb で指定した fixture :product が再読込されないようです。 だから spec コマンドで foo_controller_spec.rb や bar_controller_spec.rb を 単発で動かすときはきちんとテストが通るけど、rake spec してテストを全て実行した場合、 bar_controller_spec.rb のテストが失敗する。これを何とかしたい。 lib/ruby/gems/1.8/gems/activerecord-2.1.1/lib/active_record/fixtures.rb に reset_cache というクラスメソッドを見つけたが、*_spec.rb の中に Fixtures.reset_cache と書いてもうまくいかなかった。 みなさんは、rake spec して全部のテストを通すとき、全ての spec ファイルで 整合性がとれるような fixture のテストデータを用意しているのでしょうか?
- 194 名前:デフォルトの名無しさん mailto:sage [2009/05/16(土) 12:36:46 ]
- controller の spec では mock してる。
- 195 名前:デフォルトの名無しさん mailto:sage [2009/05/16(土) 13:06:08 ]
- NetBeans新バージョンってRubyサポート周りでなんか改善あった?
- 196 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 20:48:00 ]
- なんだよ、未だにsqlite3-rubyって1.9対応になってねえのかよ
だせえなあ
- 197 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 22:18:52 ]
- そういやみんなはなんでPerlやPythonじゃなくてRuby使ってるの?
漏れはPerl使ってたら、研究室の先生にRubyを猛プッシュされたからなんだけど。 ちょうどPerlになんか嫌気がさしてたころだったし。
- 198 名前:デフォルトの名無しさん [2009/05/17(日) 22:56:32 ]
- Ruby Rubyしようよって上司に言われまして。
キモかったので渋々使うようになりました。
- 199 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 23:00:11 ]
- むかし(15年くらい前)はPerl使ってた。OOで書けるスクリプト言語は
ないもんかなーと思いはじめた頃にPerl5が登場して、似非OOできるように なった。少し遅れてPythonを知り習得。selfのウザさとスコープの貧弱さに 面倒を感じはじめた頃にRubyがfjで発表され、飛びついた。
- 200 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 23:35:43 ]
- やっぱり上からプッシュはそこそこあるのかね。
仕事ならまあ仕方ないんだろうけど。 >>199さんはRubyへの飛びつきはええw
- 201 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 23:46:01 ]
- 数年前に、RPGツクールに搭載されてたRGSSから飛びついたような記憶がある
- 202 名前:デフォルトの名無しさん mailto:sage [2009/05/18(月) 00:27:11 ]
- >>199とちょっと似たような感じだが、Pythonは通らなかった。
Perl4->Perl5->Ruby
- 203 名前:デフォルトの名無しさん mailto:sage [2009/05/18(月) 19:22:37 ]
- RGSS という文字列を見ると○motiを思い出してしまう…。
かなり俺の心に深い傷となって残ったようだ。
- 204 名前:デフォルトの名無しさん mailto:sage [2009/05/19(火) 11:17:20 ]
- 少し前に MoonW○lf の投稿を見て、ああ、と思った
- 205 名前:デフォルトの名無しさん mailto:sage [2009/05/19(火) 13:00:33 ]
- 最近見ないのは鬱期なのかな。お大事に。
- 206 名前:デフォルトの名無しさん mailto:sage [2009/05/19(火) 13:11:15 ]
- いや普通は「忙しい」が来るもんだと思うんだが
他にすることもあるだろうしRubyコミュニティにかまけてばかりでもなかんべ
- 207 名前:デフォルトの名無しさん mailto:sage [2009/05/19(火) 15:34:54 ]
- 普通じゃないから
- 208 名前:デフォルトの名無しさん mailto:sage [2009/05/19(火) 21:30:19 ]
- まつもとゆきひろ コードの世界~スーパー・プログラマになる14の掟
www.amazon.co.jp/exec/obidos/ASIN/4822234312/ この表紙Matzはどう思ったかなw
- 209 名前:デフォルトの名無しさん mailto:sage [2009/05/19(火) 21:33:07 ]
- WBSに出演したときは割と普通だった
- 210 名前:デフォルトの名無しさん mailto:sage [2009/05/19(火) 21:36:11 ]
- World Baseball ...Senior ?
- 211 名前:デフォルトの名無しさん mailto:sage [2009/05/19(火) 22:03:07 ]
- >>208
twitter.com/yukihiro_matz/status/1834174414
- 212 名前:デフォルトの名無しさん mailto:sage [2009/05/19(火) 23:12:31 ]
- >>208
よく言えば、やり手の経営立て直し屋だな
- 213 名前:デフォルトの名無しさん mailto:sage [2009/05/20(水) 00:48:50 ]
- Hashのキーをタプルしたいけどできません
なんでですかね?
- 214 名前:デフォルトの名無しさん mailto:sage [2009/05/20(水) 00:51:14 ]
- >>213
「タプルしたい」とは? 「できない」とは? タプルという言葉はわかる。
- 215 名前:デフォルトの名無しさん mailto:sage [2009/05/20(水) 00:58:19 ]
- >>213
h = {'a'=>'aaa', 'b'=>'bbb'} h.each do |t| p t #=> ['a', 'aaa'] ... end こういうこと?違うならkwsk
|

|