+1. I see where I made a mistake trying to reproduce it. But, yep, that's
how it works.

On Fri, Jun 11, 2010 at 7:17 PM, Markus Roberts <[email protected]>wrote:

>
>
> On Tue, Jun 8, 2010 at 1:11 PM, Jesse A Wolfe <[email protected]> wrote:
> > This is begging for a test case. I either don't understand what you're
> saying Syck will do, or I can't reproduce it.
>
> It's not really something that would be easy to meaningfully test in the
> rspec paradigm, but it isn't too hard to demonstrate:
>
> (markus) ~> irb
> >> class Foo; end
> => nil
> >> File.open('tmp_foo','w') { |f| f.print Foo.new.to_yaml }
> => nil
> >> ^D
> (markus) ~> cat tmp_foo
> --- !ruby/object:Foo {}
>
> (markus) ~> irb
> >> x = YAML.load(File.read('tmp_foo'))
> => #<YAML::Object:0x3042ec @class="Foo", @ivars={}>
> >> x.class
> => "Foo"
>      ^^^^^ Very, very weird.
>
> >> x.to_yaml
> => "--- !ruby/object:Foo {}\n\n"
>
> If we reload the object in a context in which the class isn't defined we
> get an object who's class is a String (instead of a Class).  This is not
> good ruby, and doing much of anything with such an object gets weird fast.
> But given that such an object is in the system, the built in yaml will
> serialize them out as if they had been legitimate objects (in fact, as if
> they had been the original objects), which is at least better than squawking
> about it, so now we do too.
>
> -- Markus
> -----------------------------------------------------------
> The power of accurate observation is
> commonly called cynicism by those
> who have not got it.  ~George Bernard Shaw
> ------------------------------------------------------------
>
>  --
> You received this message because you are subscribed to the Google Groups
> "Puppet Developers" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected]<puppet-dev%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/puppet-dev?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Developers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/puppet-dev?hl=en.

Reply via email to