[rspec-users] Name collision - how would you handle this?
David Chelimsky
dchelimsky at gmail.com
Wed Aug 11 23:30:36 EDT 2010
On Aug 11, 2010, at 3:05 PM, Myron Marston wrote:
> Sorry it's taken me so long to respond--I have considerably less time
> on weekdays than the weekend to take care of things like this.
>
>> Yehuda Katz made a similar suggestion to me, referencing some code from merb:http://github.com/merb/merb/blob/master/merb-core/lib/merb-core/contr...
>>
>> Merb also has an override! method that end users can use to override the registered reserved methods, which I agree would be a necessary part of this. The idea being that any user that does that does so explicitly and knowingly.
>
> Merb's implementation is very similar to what I had in mind. It's
> nice to see I'm not in left field with my idea :).
>
> I agree that having something like override! is important, although I
> think I slightly prefer an API like this:
>
> allow_reserved_overrides do
> def reserved_method
> end
> end
>
> Or maybe I like blocks too much...
>
>> The blacklist comment probably wouldn't work for upstream libs like Rails, Test::Unit or MiniUnit. It would be up to RSpec to define those lists. But maybe that's an acceptable tradeoff. WDYT?
>
> RSpec is pretty high-profile in the Ruby community, so we could
> hopefully get most libraries to add their reserved methods using
> something like:
>
> if defined?(RSpec::Core.add_reserved_methods)
> RSpec::Core.add_reserved_methods :foo, :bar, :bazz
> end
>
> As far as Rails goes, rspec-rails seems like a natural point to
> register these reserved methods. For libraries that are distributed
> with ruby like Test::Unit, I think it's acceptable to register their
> reserved methods in rspec-core itself.
I think they should all be registered in the same place, in rspec-core. Or are you saying that rspec-rails would take the responsibility of registering the names for rspec-rails, rails, test/unit and minitest? That makes sense to me, as long as they're all using RSpec::Core::register_reserved_name (or whatever).
> What do others think of this idea? I'm willing to take a stab at
> implementing this if there is support for it.
I'm still not sold on this idea yet. Seems like a lot of complexity for not much benefit. I've already taken care of the message issue by encapsulating the assertion libs in a separate scope.
Anybody else have opinions on this?
>
> Myron
>
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users
More information about the rspec-users
mailing list