[rspec-users] Proper Encapsulation of SQL WHERE / ORDER BY Clauses
David Chelimsky
dchelimsky at gmail.com
Fri Aug 15 09:29:59 EDT 2008
On Aug 15, 2008, at 6:46 AM, Matt Wynne <matt at mattwynne.net> wrote:
> On 15 Aug 2008, at 12:25, David Chelimsky wrote:
>
>> Hey Matt - welcome!
>>
>> The paginate() method lives on the model class, so there's nothing
>> stopping you from wrapping those calls in methods on the model,
>> slinging around the params object.
>>
>> # CityController
>>
>> def get_cities
>> City.paginate_all(params)
>> end
>>
>> # City
>>
>> def self.paginate_all(params)
>> self.paginate(:all, get_find_params(params).merge!(:page =>
>> params[:page]))
>> end
>>
>> etc
>>
>
> Aha. Cool, thanks.
>
> For my next question: how do I go about driving out change to the
> model, spec-first?
>
> I'm thinking I would call (in my spec)
>
> City.should_receive(:paginate).with(:conditions => "name like
> '%#{test_params[:name}%'" .... )
> City.paginate_all(test_params)
>
> Thereby covering the code in get_find_params()
>
> Is that the right approach?
That's probably how I would do it. Might also consider wrapping the
params in a separate object that manages the extraction.
David
>
>
> cheers,
> Matt
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users
More information about the rspec-users
mailing list