Matt Wynne <[EMAIL PROTECTED]> writes: > On 25 Nov 2008, at 16:48, Pat Maddox wrote: > >> "Zach Dennis" <[EMAIL PROTECTED]> writes: >> >>> On Tue, Nov 25, 2008 at 11:08 AM, Mark Wilden <[EMAIL PROTECTED]> >>> wrote: >>>> On Tue, Nov 25, 2008 at 5:41 AM, Matt Wynne <[EMAIL PROTECTED]> >>>> wrote: >>>>> >>>>> Sorry, I know this is off-topic, but I'd really like to know what >>>>> the >>>>> revered ruby-hackers who read this list think. >>>>> >>>>> See >>>>> http://ozmm.org/posts/class__self_is_harmful.html >>>>> >>>>> I have adopted class << self, partly from reading RSpec and >>>>> Cucumber's >>>>> code as I learn Ruby. I personally think of class methods (or >>>>> static' >>>>> methods) as being in a kind of 'holding pen' waiting to be >>>>> factored off onto >>>>> a proper class of their own, so I rather like the clear way you >>>>> can group >>>>> them in a 'nameless' metaclass ready for the exit door. >>>> >>>> The nature of class methods in Ruby (as instance methods of the >>>> class's >>>> eigenclass) is for most purposes an implementation detail. It adds >>>> nothing >>>> to understanding to open the eigenclass inside the class's >>>> definition in >>>> order to add class methods. It may save some typing, and it does >>>> help when >>>> searching (as David) says. Nevertheless, I regard the practice as >>>> a bit of >>>> an affection - 'look at me, ma, I'm opening the eigenclass!' - or >>>> as the >>>> imitation of an affection. It confuses newbies to no purpose, and >>>> confuses >>>> everyone when 'class << self' has scrolled off the top of the >>>> screen. >>> >>> A lot of things confuse newbies. I don't think that's a very good >>> point for why you don't do something. #each confuses newbies, should >>> we also refrain from using that? Of course not. >>> >>> Educating people so they understand why and when it should be avoided >>> is better then raising a fire alarm (unless it's really a fire). >>> Contrary to your statement though, I don't use class << self to feel >>> special, and my ma could care less about how I code. ;) >> >> I thought it was just that >> >> class << self >> def method1; end >> def methdod2; end >> def methdod3 end >> def methdod4; end >> end >> >> becomes confusing as soon as those method definitions fill up a >> screen. >> def self.method1 makes it instantly clear that it's a singleton >> method. >> That's what I do and why I do it, anyway. > > Surely, as soon as they scroll off the screen, it's time to factor > that code off into a module or class of its own though? > > It seems to me like whenever you have a lot of class methods on a > class, you've got a new class dying to get out. It's like class << > self is like a little incubator for that new type! > > Or Is that just me? > > _______________________________________________ > rspec-users mailing list > rspec-users@rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users
Just you :) Bad style is not an excuse for bad style. Pat _______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users