-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

This code:

node = XML::Node.new('foo') << XML::Node.new('bar') << "bars contents"

Generates this xml:

puts node
<foo><bar/>bars contents</foo>

That is because the << returns self.

That's bad.

Eric Musgrove if instead it should work like this (see http://rubyforge.org/tracker/?func=detail&atid=1971&aid=21424&group_id=494) :

puts node.parent.parent

<foo>
 <bar>bars contents</bar>
<foo>

By making the << operator return the appended node.

<< returning the appended node seems more useful, but doesn't follow the Ruby standard as pointed out by Masashi Shimbo.

Thoughts?


I have all kinds of issues with "the Ruby standard" and think this is an opportune place to break that convention. The path of least resistance should win (i.e. the programmer is right, do what's easiest for the programmer).


A contrived example, but this code absolutely irritates the shit out of me:

Class F
  def a=(b)
    @z = b + 1
    return @z
  end
  def a
    return @z
  end
end

f = F.new
x = f.a = 1
p f.a  # Prints 2
p x    # Prints 1

@[EMAIL PROTECTED]@#  @[EMAIL PROTECTED] @[EMAIL PROTECTED] @[EMAIL PROTECTED] 
@[EMAIL PROTECTED] @[EMAIL PROTECTED] @#$#@@!!!!!!!

Ignore the "Ruby standard."  -sc

- --
Sean Chittenden
[EMAIL PROTECTED]



-----BEGIN PGP SIGNATURE-----

iEYEARECAAYFAkitvkcACgkQTrydwWwuXhaEhACdHk8MlSI+hLfji+tUVm1DMGGo
ZAgAniAAKqXGozIAyATQl+o4EFU9fGyf
=9VR5
-----END PGP SIGNATURE-----
_______________________________________________
libxml-devel mailing list
libxml-devel@rubyforge.org
http://rubyforge.org/mailman/listinfo/libxml-devel

Reply via email to