タグ

moroに関するrochefortのブックマーク (8)

  • 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の日記
  • moroの日記 - Railsでテストを書く勘所

    昨日はOSCに行ってきました。セミナーやブースはほとんど行かず、例によってRubyの会のあたりでだらだらしてたわけですが。 思いがけず師匠の師匠、id:t-wadaさんにもお会いできてびっくり。 で、そこでRailsとTDD(BDD)の話なんかしたので、一週間で思ったことをつらつらと。たぶん不正確というか、理解の足りないところもいろいろあるので、そのへんのツッコミをいただけると感謝です。 書いてたら長くなったのでagenda モデルのテストでは、とにかくロジックを書いたらテストを書く*1。def..endブロック(wを書いたら必ずテストもあるはず。 RailsのMVCコンポーネントの中では一番テストし易いので、そういう意味でもモデルを厚くすると幸せになりやすい。 コントローラのテストでは、基的にリクエストを受けてから表示対象のオブジェクトを導出するまでをテストしたい。 ビューのテストでは

    moroの日記 - Railsでテストを書く勘所
  • はじめる! Cucumber 刊行記念:諸橋さんインタビュー 第1回 - 達人出版会

    Cucumberの入門書がついに登場。Rubyの全ライブラリの中でも人気度ベスト10に入るほど(ruby-toolbox調べ)の知名度を誇るBDD向けツール、Cucumberを日人(日語)でも使いこなせるよう、分かりやすく解説。今日からテストを書くのも日語で。 『はじめる!Cucumber』の刊行を記念して、著者である諸橋さんにお話をうかがいました。 (2010年11月8日、聞き手:高橋征義) RubyRails、テストとの出会い ── 諸橋さんはRails勉強会@東京の世話役や、『Railsレシピブック』の執筆などでもよく知られていると思いますが、まず、諸橋さん自身の、RubyRailsとの出会いについて聞かせてください。 諸橋 Railsというか、まず一番最初にRubyとの出会いまでさかのぼると、大学時代にiMacを買ったのがきっかけです。ちょうどMac OS Xとかのパブリ

  • 現実のプロジェクトでのCucumberの始め方 - moroの日記

    セッションが終わったあと、Ask the speakerに来てくださった方((お名前を聞いておけばよかった!!)と少しお話しました。Cukeに興味が湧いたので使い始めてみたい、というとても嬉しいことをおっしゃってくださいました。 そこで話した、「すでに始まっているプロジェクトでのCuke導入法」を簡単にご紹介します。今回の私の話や、その他いろんなコトで興味を持った方の参考になれば嬉しく思います。 新規でも途中でも、プロジェクトに導入するときのポイントは、「ムリをしない」「一歩ずつ」ですが、特に開発が始まったあとから入れる場合は、簡単なところからやっていくとよいでしょう。具体的には、 1. (ログインなどもいらない)GET系の画面(index or show) まずは、アプリケーションにCukeを組み込んで、一週回すことに集中します。script/generate cucumberをしたら、

    現実のプロジェクトでのCucumberの始め方 - moroの日記
  • 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の日記
  • デブサミ2010で『実践Cucumber』の講演をしました - moroの日記

    来てくださった方が、ありがとうございました。資料を公開しましたので、よろしければご覧ください。 Cucumber In PracticeView more presentations from Kyosuke MOROHASHI. 緊張その他の反省点も多々あるのですが、多くの方がいらしてくださって、話し手としてもとても嬉しかったです。 Twitterなどでいただいた反応を見ると、「Cucumberは会話を作るフレームワーク、つまりお客様と会話するための言語を作るフレームワークだ」という一番伝えたかったポイントが伝わったようで、安心しています。 私自身が、 同梱のWebratの便利さに惹かれてCukeを使い始め、 日語で書けることの可読性の高さに驚嘆し*1、 それを経て「会話のために語彙を育てる(イマココ)」 という考えに至ったので、そのあたりをお伝えしたいと思っていました。 感想やご質問

    デブサミ2010で『実践Cucumber』の講演をしました - moroの日記
  • Rails厨がtimeout()を使うときに注意すべきこと - moroの日記

    最近のRailsは1.daysとか3.minitusなどといった便利メソッドが、Fixnumでなく、ActiveSupport::Durationを返すようになっています。みなさんも便利に使っていると思いますが、これをtimeout()と組み合わせるとひどい目に遭うので注意してください。 # ダメな例 timeout(5.seconds) do sleep 10 puts "10秒たったんですケド" end # => 10秒たったんですケド これはタイムアウトが効きません。めんどうがらずに#to_iしてから使いましょう。 timeout(5.seconds.to_i) do sleep 10 puts "10秒たったんですケド" end # => Timeout::Error起こる 原因も分かったので、しかるべきところに相談しようと思うのですが、ちょっと帯域が埋まっていて動けそうにないので

    Rails厨がtimeout()を使うときに注意すべきこと - moroの日記
  • Cukeの日本語step_definitionジェネレータ、misoを作ってみました - moroの日記

    http://github.com/moro/miso/tree/master 上にも書いたようにCucumberの自然言語で書ける意味というのをもう一度考えていまして、それはもちろん母語じゃなければ興ざめなので、一度訳した分を簡単に使えるよう、Railsのジェネレータとしてまとめてみました。 もろ味噌をインストールして、 $ gem install moro-miso キュウリにつけてお召し上がりください。 $ rails green-cuke ... $ cd green-cuke $ ruby script/generate cucumber ... $ ruby script/generate miso create features/step_definitions/webrat_ja_steps.rb create features/step_definitions/web_e

    Cukeの日本語step_definitionジェネレータ、misoを作ってみました - moroの日記
  • 1