I''ve started specifying a project and could use some help. I''m not sure if the spec is entirely necessary, it would be great to get some guidance on a best practice or something close. I recently realized the need to add the method below grouped_by_months and started to write a spec. idea 1: {{{ before do @comment = Comment.new @comment.stub!(:created_at).and_return(Time.now -2.days) end it ''should return comments grouped by month'' do group_terms = lambda{|comment| comment.created_at.beginning_of_month } Comment.should_receive(:find).and_return([@comment]) [@comment].should_receive(:group_by).with(&group_terms).and_return([[@comment]]) Comment.grouped_by_month end }}} idea 2 {{{ before do @comment = Comment.new @comment.stub!(:created_at).and_return(Time.now -2.days) end it ''should return comments grouped by month'' do group_terms = lambda{|comment| comment.created_at.beginning_of_month } lambda{ Comment.should_receive(:find).and_return([@comment]) }.should_receive(:group_by).with(&group_terms) Comment.grouped_by_month end }}} Class with method {{{ class Comment < ActiveRecord::Base validates_presence_of :email, :body validates_format_of :email, :with => /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/i, :message => ''invalid email address'' def self.grouped_by_month find(:all).group_by{|comment| comment.created_at.beginning_of_month } end end }}} -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---