タグ

ブックマーク / moro.hatenadiary.org (12)

  • has_many :throughなリレーションで中間テーブルをみつついい感じに絞り込みたい - moroの日記

    これまで新しめのアプリではMongoを使ってたんですが、近頃になってようやくActiveRecordをproductionでもりもり使っています。Arelいいですね。 で、題。こういう場合に、attendances.statusを見てeventsを絞り込みたい。これをかっこよく書くにはどうすればいいか。 class Person < ActiveRecord::Base has_many :attendances has_many :events, through: :attendances end class Attendance < ActiveRecord::Base belongs_to :people belongs_to :events # t.string :status STATUSES = %w[registered paid canceled attended abs

    has_many :throughなリレーションで中間テーブルをみつついい感じに絞り込みたい - moroの日記
    kiyo-shit
    kiyo-shit 2011/02/08
  • rake specの実行時間を短くするための簡単なお仕事です ※ただし、(何か)に限る - moroの日記

    TDDで開発している人の目下の悩みはSlow test問題、すなわちテストの実行時間がかかりすぎて辛い、という問題です。 が、ふと思うところがあって、次のようなタスクを定義していたら、なんということでしょう、劇的に早くなったではありませんか。 namespace :spec do spec_prereq = Array(File.exist?(File.join(RAILS_ROOT, 'config', 'database.yml')) ? "db:test:prepare" : :noop) desc "faster version of rake spec, but why?" task :faster => spec_prereq do %w[spec:models spec:controllers spec:views spec:helpers spec:lib].each do

    rake specの実行時間を短くするための簡単なお仕事です ※ただし、(何か)に限る - moroの日記
  • OSC2009 Tokyo/FallでCukeとRSpecの紹介をしました - moroの日記

    休んでいるうちにずいぶん時間が経ってしまいましたが、10/31のOSCにてお時間をいただき、Railsの昨今のテスト事情について紹介させていただきました。普段から申しているようにCucumberとRSpecをぐいっと推しています。 Rails testing environment, 2009 fallView more documents from Kyosuke MOROHASHI.あとはRSpec方面で、subjectやitsの使い方について、使いながら考えているようなことを書いています。 前にオブラブ方面でCuctomMatcherの話をしたときに、簡単なCustomMatcherを量産するのはだるいんじゃない?という懸念があったんですが、その一つの解としてits()はありかなー、と。使い分けはこんな風になると思います。 CustomMatcher作る 検証内容が複雑になるとき エ

    OSC2009 Tokyo/FallでCukeとRSpecの紹介をしました - moroの日記
  • ぼくが見ているレール(map.resouces編) - moroの日記

    先日のQConで大場さんもおっしゃっていたことですが、Railsで開発をする上でものすごく重要なポイントに、Railsの敷いたレールから降りないというのがあります。別にコレはRailsが不自由だというわけでなく*1、通り一遍のものしかできないというわけでもなく、ただ基盤と相性の悪い設計すればあとで苦労するという、当然の話なわけです。 最近、私を含めいろいろな方が「レールから降りないで作るのが重要」と話しています。が。じゃあそのレールはどこにあるのかという話はあまり聞かれません。ということで、ふだん私がRailsアプリを設計するときに意識しているレールを言語化してみて、議論なりのたたき台にしたいな、と思った次第です。 とはいえDB周りは「羽生さんのERDレッスン嫁」で7割くらい済む話*2なので、まずはコントローラから。 設計指針としてのmap.resouces Rails 2.xにおいて、コ

    ぼくが見ているレール(map.resouces編) - moroの日記
  • ネストしたリソースの扱いの話とか - moroの日記

    Rails勉強会@東京の月刊Merbで瀧内さんがサンプルを示しながらMerbの使い方を説明してくれました。 で、そのときにブログのようなものを実例に使っていまして、そのCRUDの設計についてプチ議論になっています。 まとめ なんかコードを書いてみたりしたらえらい長くなったので、私の考えを簡単に要約すると とりあえずこの前提に興味があるならDHHのプレゼンを見るといいと思います map.resource使うといいよ ビューの事情なんだからAjaxとテンプレート差し替えで何とかするのがいいかと それを簡単にするプラギンが欲しい という。あと読み返して思ったんですが、ネストしたリソースの扱いについての議論に対して、そのリソースはネストしていない、という主張が来てるのか。それはすれ違うなー、と思いました。 ここから意見いろいろ データ構造としてはよくあるブログを想起していただければいいんですが、P

    ネストしたリソースの扱いの話とか - moroの日記
    kiyo-shit
    kiyo-shit 2009/01/20
  • named_scope熱再び(需要があればRails勉強会で話します) - moroの日記

    再びというか、リリース以来毎日もりもり使ってるんですが、named_scopeがいい感じです。 ということでこんなものを作ってみました。 http://github.com/moro/scope_do/tree/master ここのREAMEになんちゃって英語(添削歓迎)で書いたんですが、ちょこっとした機能を提供するRailsプラグインです。いまのところ、三種類の機能があります。 named_acl User <-(memberhip)-> Group <-(accessibility)-> 何か という構造でアクセスコントロールするためのプラギンです。UNIXグループでのアクセスコントロールをイメージしてもらうといいかと思います。readonlyとかの権限もそのうち使えるようにするかも。今のところ僕にとっての需要がないという。 chainable_scope 流れるような(笑)named

    named_scope熱再び(需要があればRails勉強会で話します) - moroの日記
    kiyo-shit
    kiyo-shit 2009/01/16
  • Cucumberのチーム内勉強会の動画が公開されました - moroの日記

    実はいま、縁あってRails製の企業向けSNS SKIPを開発しているSonicGardenの皆さんと一緒に仕事をしています*1。 で、チーム内の勉強会でCucumberについて話しました。そのときの動画が公開されました。ありがとうございます > 中の方々 http://blog.sonicgarden.jp/2008/12/techtalk-2008-11-13.html 資料というか、以下の記事は実はこの勉強会向けに書いたという意味合いもあったりします。 http://d.hatena.ne.jp/moro/20081112/1226486135 http://d.hatena.ne.jp/moro/20081118/1226977015 記事だけ読むよりもわかりやすい、ということでしたのでご興味のある方はぜひどうぞ。正味30分くらいです。 余談ですが、 いまのプロジェクトでは企業秘密

    Cucumberのチーム内勉強会の動画が公開されました - moroの日記
    kiyo-shit
    kiyo-shit 2008/12/17
  • rescue_fromに集約したエラー処理をテストするのに必要なたった一つの方法 - moroの日記

    タイトルは釣ry。もう古いか 最近はCucumberをつかってテストを外から書こうブームが来てます。で、ちょっと困ったのがresuce_fromとの併用。 私の理解が間違っていなければ、rescue_fromは(復帰する必要性の低い/復帰できない)例外をApplicationControllerでまとめて処理するために役立つものです*1。たとえばAR::RecordNotFoundをてっぺんで補足してNot Foundするとか*2。 そういう性質なんで当然テスト対象にすべきですが、Cucumber同梱のRSpecだとそこを外してしまっています。つまり、rescue_fromのレイヤまであがってきた例外がそのまま呼び出し側(実行しているテスト)まであがってくる、と。これはテスト中に例外が発生した場合には便利なんでしょうが、rescue_fromを使ってエラー処理をまとめたい場合には不便です。

    rescue_fromに集約したエラー処理をテストするのに必要なたった一つの方法 - moroの日記
    kiyo-shit
    kiyo-shit 2008/12/11
  • Webratがスゴい(続:Cucumberがアツい) - moroの日記

    Cucumberを使って、Railsアプリのテストを高い抽象度で書き進めていくために欠かせないのがWebratというライブラリです。前回のCucumber全体像の紹介に引き続き、こちらWebratを紹介します。今回も長いです。 2008-01-27修正 id:amacouさんから指摘を受けまして(と、たぶんsatokoさんも以前おっしゃってた)webrat_steps.rbの生成先パスを修正。 語: ${RAILS_ROOT}/step_definitions 正: ${RAILS_ROOT}/features/step_definitions ありがとうございます。 今回のまとめ Webratすごい 画面遷移を「リンクをクリックする」「ボタンをクリックする」と書ける リンクのアンカーテキストではまだ日語が使えず。さきほどパッチ送ったので早晩書けるようになるはず。 フォームの入力項目もラ

    Webratがスゴい(続:Cucumberがアツい) - moroの日記
    kiyo-shit
    kiyo-shit 2008/11/18
  • Cucumberがアツい - moroの日記

    仕事で作っているRailsアプリにCucumberを突っ込んでみました。これは熱い。いやもう十分、お客さんに見せて分かってもらえる気がします。たぶん。もちろん準備は必要だし、受け入れ仕様をすべてお客さんに書いてもらうというのは難しいですけど*1。 とりあえず導入はこちらから。最近はNokogiriが必要です。あとTerminal.appで--no-colorつけずに実行するとTerminal.appがひどいことになるのでiTermお薦めです。 http://github.com/aslakhellesoy/cucumber/wikis/ruby-on-rails 2010-11-10 SEO的に。この記事を書いてから2年、いろんなCucumberの使い方を調べました。そのノウハウを達人出版会にてにまとめました。よろしければこちらもどうぞ。 http://tatsu-zine.com/bo

    Cucumberがアツい - moroの日記
    kiyo-shit
    kiyo-shit 2008/11/13
  • Ruby on Rails Code Quality Checklist抄訳 - moroの日記

    オレンジニュース経由でこんなものを見かけました。 Ruby on Rails Code Quality Checklist これはいいチェックリスト。あとだしジャンケンぽいですが、私がいつも思っていることがいろいろ書いてあってすばらしいです。これをすべてYesにするのは難しいというか机上の空論ぽいところもありますが、これを目指すことには価値はあると思います。 ということで項目だけを抄訳(&地の文は私感)を書いてみます。誤訳などがあればツッコミお待ちしています。 コントローラのアクションではfindやnew以外のモデルメソッドは一つくらいにしなさい(必要なら.newや.updateメソッドをオーバーライドするといい)。 原文: 1. Each controller action only calls one model method other than an initial find or

    Ruby on Rails Code Quality Checklist抄訳 - moroの日記
    kiyo-shit
    kiyo-shit 2008/09/23
  • WEBrickをつかってActiveResourceのダミーサーバを作る - moroの日記

    ActiveResouceなんかを使ったり、認証サーバと連携したりといった外部サーバとの通信が必要なアプリケーションを書く場合、ローカルで動かせるダミーサーバが欲しくなります。このところ仕事でそういうシーンが多かったのですが、そういったときにWEBrick(とActiveSupport)を使うとものすごく簡単にダミーサーバを作れます。 今日はActiveResouceを使うためにAResT API*1をしゃべるダミーサーバが欲しかったんですが、以下のような感じで簡単に書けました。実物はもうちょっと複雑だったので、所要時間10分くらい。 使う側はこんな感じです。 WEBrickすごい。「まるごとWEBrick」とか「初めてのWEBrick」とか「WEBrickレシピブック」が出版されるべき。 *1:ActiveResouceの規約に沿ったAPIをこう呼ぼう運動中

    WEBrickをつかってActiveResourceのダミーサーバを作る - moroの日記
    kiyo-shit
    kiyo-shit 2008/09/04
  • 1