On Sat, May 11, 2013 at 7:11 PM, jeremyevans0 (Jeremy Evans) <
merch-redmine / jeremyevans.net> wrote:

>
> Issue #8377 has been updated by jeremyevans0 (Jeremy Evans).
>
>
> jballanc (Joshua Ballanco) wrote:
> > If we remove the ability to call methods with (({::})), then the class
> definition lines don't match as nicely:
> >
> >     class Baz < Foo::Bar
> >     ...
> >     class Quux < Foo.Bar("Howdy")
> >     ...
> >
> > Though I'd be interested to hear Mr. Evans opinion, since I think Sequel
> is where I've seen this used to the greatest effect...
>
> I'm against removing it, since I think there are places where the syntax
> looks nicer with :: (constructors such as Sequel::Model() and
> Nokogiri::XML()).  Having only one way to do something for its own sake is
> not the ruby way, and I think the loss of backwards compatibility and nicer
> syntax outweighs the reduced confusion.  I don't train new ruby
> programmers, though, so maybe I underestimate the confusion this causes.


Can't you use use #[] for this?

  class Quuz < Foo::Bar["Howdy"]
  end

  class User < Sequel::Model[:User]
  end

  doc = Nokogiri::XML[data]