>> >> How about block level?
>> >>
>> >>    using jcode do
>> >>      p "\244\242\244\244".chop
>> >>    end
>> >
>> > I had asked Shugo the question in [ruby-dev:27419], and his
>> > answer is that he prefers one-line construct, since he doesn't
>> > like to deepen indent level more.
>>
>> p "\244\242\244\244".chop  using jcode
>
> But then how to express (as proposed):
>
>   p "\244\242\244\244".jcode$chop.kcode$change
>
> Gets silly ?

A bit silly, yes

  p "\244\242\244\244".chop.change  using jcode  using kcode

Works as long as there is no conflict. The problem of conflicting
namespaces was mentioned in this thread; I ask, do we care?

  class X
    include A
    include B
  end

may conflict as well, but we accept that methods from B override methods
from A (in the same way jcode would override kcode in my example above).

If there is such a conflict, you would/should/could do

  chopped = "\244\242\244\244".chop  using jcode
  p chopped.change  using kcode

..

  obj.xtract.manipulate.serialize  using FunnyNamespace

if you need three namespaces here, did you do a proper design job?
(the answer can be Yes, but I suppose it's mostly No; if it is Yes, I
certainly hope the namespaces have different purposes)

The same story (both overriding and the amount of namespaces needed)
holds for

  begin
    using OneNamespace
    using LogElsewhere
    using AnotherNamespace {
      ...code...
    }
  end

whether using is in block style or not.

Bye,
Kero.

+--- Kero ------------------------- kero@chello@nl ---+
|  all the meaningless and empty words I spoke        |
|                       Promises -- The Cranberries   |
+--- M38c --- http://members.chello.nl/k.vangelder ---+