タグ

ブックマーク / saikyoline.jp (5)

  • 定数の書き方。

    真似したいと思った定数の書き方。 class Foo < ActiveRecord::Base module Statuses UNCHECKED = 0 UNAVAILABLE = 1 AVAILABLE = 2 end include Statuses def status_text case self.status when UNCHECKED; '未確認' when UNAVAILABLE; '使用不可能' when AVAILABLE; '使用可能' end end end こうすると if foo.status == Foo::Statuses::AVAILABLE のように書けるので、モジュールをネストしない if foo.status == Foo::AVAILABLE よりもわかりやすい。 しかもincludeしてるので内部ではローカルとして使える。 で、このstatus

    定数の書き方。
    yugui
    yugui 2008/07/06
  • RubyKaigi2008に行ってきました。

    メインセッションがある大ホールでずっと聞いていたのですが、Railsばかり触っている(というかそもそも言語知識が足りない)ため、Rubyの実装に関するあたりはほとんど理解できませんでした(ごめんなさい><)。 ・・・ということで(えー)、一番印象に残った話題を。 YuguiさんのBDD事例、エラいことになった(エドワード・ヨードン的な意味で)プロジェクトをRSpecとRailsで作り直したった、やったった、というものでした。 その進め方が、フェーズ1は経験あるメンバのみでフルパワー、フェーズ2は未経験のメンバを入れて既存(フェーズ1の)コードを真似させつつ、フェーズ3ではそのメンバで再び、という感じでした。 状況は大変だったと思いますが、ここでフェーズ2で入った方、プロジェクトが終わったころには抜群に伸びていたのではないかなー、と。 最後に出た、「テストコードを書く暇があったらその分機能を

  • extendとincludeについて。

    Rubyリファレンスマニュアル – Object include は、クラス(のインスタンス)に機能を追加します が、extend は、ある特定のオブジェクトだけにモジュールの機能を追加 したいときに使用します。 ~コード(引用省略)~ extend の機能は、「特異クラスに対する include」 と言い替えることもできます。 うーん、分かったような気がするけど、実際に使い分けろと言われたら出来ない気がする。 つまりまだよく分かってないと言うことか。

    extendとincludeについて。
  • 継承の書き方。

    OOエンジニアの輪! ~ 第 38 回 笹田 耕一さんの巻 ~ クラスの継承するときには、こんな風に書くんですけど、実は継承元クラス指定の部分には、任意の expression が書けるので、例えば、ここでクラス定義を書くとか。 ΩΩΩ < ナ、ナンダッテー!! inh_test.rb 1 class Foo 2 def hoge 3 puts 'Yes!' 4 end 5 end 6 7 class Bar < Foo; end 8 9 Bar.new.hoge #=> Yes! inh_test2.rb 1 class Bar < (class Foo; def hoge; puts 'Yes!'; end; end); end 2 3 Bar.new.hoge #=> inh_test2.rb:1: superclass must be a Class (NilClass give

    継承の書き方。
    yugui
    yugui 2007/09/15
  • Autotest::Screenが便利な件について。

    [2008-08-10 追記] ここで張っているソースについて新しいエントリを書きました。 ZenTest – autotestに同梱されているAutotest::Screenを使うと、Screenのステータスにテスト状況をリアルタイムに出せる。 ただ、ZenTest (3.6.0)のものは結果をうまく拾えていないようだったので少し書き換えてみた。 ついでに毎回走らせる前にもステータスを変えるようにした。ファイル保存→結果表示までに間があって、ちゃんと動いてくれてるか落ち着かなかったもんで。 $HOME/.autotest に追記する。 require 'autotest/screen' Autotest::Screen.statusline = %q[%{=r dd} %-w%{=b dd}[%n] %t %{-}%+w %=] class Autotest::Screen Autote

    Autotest::Screenが便利な件について。
  • 1