[rspec-users] Gem conflict with RSpec::Rails and Sunspot

David Chelimsky dchelimsky at gmail.com
Sun Jul 18 22:12:53 EDT 2010


On Jul 18, 2010, at 9:03 PM, Shane Mingins wrote:

> Does Class.new(ActionController::Base) pass it to tests as a constant though?  Reading comment # Expects +controller_class+ as a constant. Example: <tt>tests WidgetController</tt>.   This is just me wondering if I am missing something with that Class.new(ActionController::Base) idiom.
> 
> Patch would just be a revert of http://github.com/dchelimsky/rspec-rails/commit/b488f3c9bd70011f1288f23b55490810b1fc693d though right?
> 
> I can do that and put it on lighthouse if you want ... and it goes up here https://rspec.lighthouseapp.com/projects/5645-rspec ??

Yep - didn't realize it was just a revert (nice research!) but feel free to patch and post it.

FYI - I have no plans to do a 1.3.3 release any time soon - too much going on with Rails 3 and RSpec 2 right now.

David

> And thanks for replying on Sunday :-)
> 
> Cheers
> Shane
> 
> On 19 July 2010 13:45, David Chelimsky <dchelimsky at gmail.com> wrote:
> 
> On Jul 18, 2010, at 8:29 PM, Shane Mingins wrote:
> 
>> And so ...
>> 
>>       # Sets the controller class name. Useful if the name can't be inferred from test class.
>>       # Expects +controller_class+ as a constant. Example: <tt>tests WidgetController</tt>.
>>       def tests(controller_class)
>>         self.controller_class = controller_class
>>       end
>> 
>> But RoutingExampleGroup is: tests Class.new(ActionController::Base)
>> 
>> Seems it's being called incorrectly from RoutingExampleGroup, is that right?
> 
> Class.new(ActionController::Base) is standard Ruby for an anonymous subclass. Nothing incorrect about it, but there's no significant value in having it be anonymous, so I'd be OK changing it to a named subclass (i.e. RoutingExampleGroupController < ActionController::Base). Wanna make a patch?
> 
>> 
>> 
>> On 19 July 2010 13:21, Shane Mingins <elc at mingins.com> wrote:
>> Seems to be related to the line 'tests Class.new(ActionController::Base)' 
>> 
>> module Spec
>>   module Rails
>>     module Example
>> 
>>       class RoutingExampleGroup < ActionController::TestCase
>>         tests Class.new(ActionController::Base)
>>         
>>         Spec::Example::ExampleGroupFactory.register(:routing, self)
>>       end
>> 
>>     end
>>   end
>> end
>> 
>> On 19 July 2010 12:32, Shane Mingins <elc at mingins.com> wrote:
>> Hi All
>> 
>> I was wondering if someone could perhaps point me to where in RSpec::Rails is the Rails ActionController being subclassed by an Object instance?  My ruby-fu is not high enough to work out what's really going on with RSpec::Rails with this.
>> 
>> The problem I am having (and I have a code example in the github link below if you want to see, just clone and run rake spec) is that Sunspot is adding an after filter to already loaded subclasses of ActionController::Base.
>> 
>> loaded_controllers =
>>             [base].concat(base.subclasses.map { |subclass| subclass.constantize })
>> 
>> But that map is returning:
>> 
>> ["ActionView::TestCase::TestController", "ApplicationController", "#<Class:0x1022e1168>", 
>> "Spec::Rails::Example::ViewExampleGroupController", "Spec::Rails::Example::HelperExampleGroupController"]
>> 
>> So I am trying to find what #<Class:0x1022e1168> is and where it's subclassing ActionController.
>> 
>> If I comment out config.gem "rspec-rails" in the environment.rb the problem goes away, but that is not a solution as I have boiled this issue down to what I have here from a project that is actually using bundler and so these gems are being specified and required.
>> 
>> As I do not know what in RSpec::Rails is actually causing the issue I cannot raise this as an issue with Sunspot with an example of possibly what they should be excluding in their code, if that is the solution to move to.
>> 
>> So if anyone could help me out in any way??  I'm happy to do more "leg work" if you could give me some pointers.
>> 
>> Cheers
>> Shane
>> 
>> 
>> git repo showing issue:
>> http://github.com/smingins/rspec-sunspot-conflict
>> 
>> using ruby 1.8.7
>> ruby -v
>> ruby 1.8.7 (2009-06-12 patchlevel 174) [universal-darwin10.0]
>> 
>> 
>> _______________________________________________
>> rspec-users mailing list
>> rspec-users at rubyforge.org
>> http://rubyforge.org/mailman/listinfo/rspec-users
> 
> 
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users
> 
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://rubyforge.org/pipermail/rspec-users/attachments/20100718/5c4d8a26/attachment-0001.html>


More information about the rspec-users mailing list