On Sep 7, 10:52 ¨Βν¬ ΣτεπθεΓεμιΌστεπθεξ®γε®®®ΐηναιμ®γονχςοτεΊ
> Hi,
>
> On Sep 7, 2008, at 9:05 AM, Trans wrote:
>
> > def grumpize
> > to_self(to_s.upcase + '!!!!!!!!!')
> > end
>
> This is a bit of a confusing idiom, especially when expanded:
>
>  ¨Βεμζ®τοίσεμζ¨σεμζ®τοίσ®υπγασε §΅΅΅΅΅΅΅΅΅§©
>
> You may make yourself slightly clearer with a block method. A > simplified example:
>
>  ¨Βμασσ Οβκεγτ
>  ¨Βεζ ςετυςξιξηίιξιτιαμίγμασσ¨¦βμογλ>  ¨Βιεμδ¨σεμζ©®ίίσεξδίγασε σεμζ
>  ¨ΒθεΣτςιξη τθεξ Ίτοί>  ¨ΒθεΣωνβομ τθεξ Ίτοίσω>  ¨Βξδ
>  ¨Βξδ
>  ¨Βξδ
>
>  ¨ΒοδυμΗςυνπω
>  ¨Βεζ ηςυνπιϊε
>  ¨Βετυςξιξηίιξιτιαμίγμασσ όηςυνπηςυνπ®τοίσ®υπγασ§΅΅΅΅΅΅΅΅΅>  ¨Βξδ
>  ¨Βξδ
>
> It's cleanest to just define String#grumpize and Symbol#grumpize > individually.

Ah, that helps me "cleanest" my thoughts. It occurs to me that while
#to_self() makes sense in this context, it may differ depending on the
mixin used. For example:

  class Integer
    include Grumpy
  end

That could work, but if to_self is used there will be issues clearly
(!!!!!!!!! ain't a number). Hence, what I'm really after is an
optional method that can be defined when needed to say "how to become
grumpy". Then:

  module Grumpy
    def make_grumpy(obj)
      obj
    end

    def grumpize
      make_grumpy(to_s.upcase + '!!!!!!!!!')
    end
  end

  class Symbol
    include Grumpy
    def make_grumpy(obj)
      obj.to_sym
    end
  end

T.