[Ironruby-core] Code Review: YamlFixes

Tomas Matousek Tomas.Matousek at microsoft.com
Wed Jul 23 12:30:59 EDT 2008

1) add_domain_type should probably be split into 2 overloads - one for Regex and other for object converted to a string since the implementation is different.

2) Do not use dynamic sites for block invocation (RubyConstructor.cs):

return _Block.Invoke(ctor.GetContext(), _block, MutableString.Create(tag), ctor.ConstructPrimitive(node));

Use _Block.Yield.

3) Representer.cs: why do we compare to two different "Null" objects?

                if (key == BaseConstructor.NullObjectKey) {
                    key = null;
                } else {
                    key = BaseSymbolDictionary.ObjToNull(key);

Other than that looks good.


-----Original Message-----
From: Oleg Tkachenko
Sent: Wednesday, July 23, 2008 1:35 AM
To: IronRuby External Code Reviewers
Cc: ironruby-core at rubyforge.org
Subject: Code Review: YamlFixes

tfpt review "/shelveset:YamlFixes;REDMOND\olegtk"
Comment  :
  Removes obsolete YamlTest project from the solution.
  Fixes DateTime serialization and loading of timestamps.
  Fixes nil serialization.
  Implements YAML::add_domain_type() - user controlled parsing of domain types.
  Fixes loading binary data in Ruby context.
  Implements loading dates - instantiates Date class (from date.rb curently) instead of DateTime.
  Adds "require 'date'" into yaml.rb to be compatible with MRI (it makes loading yaml much slower currently - need to implement Date class).
  Fixes bug with serializing a hash with a nil as a key.
  Implements loading  abbreviated types (looks like obsoleted yaml 1.0 only feature, but MRI tests it. http://yaml.org/spec/history/2002-10-31.html#preview-family).
  Splits SafeConstructor.ConstructYamlTimestamp into two methods so RubyConstructor can override Date construction.
  Fixes Time.at() - the argument must be a double type.
  Fixes Time.local() and Time.utc() - usec argument is actually microseconds, not milliseconds.


More information about the Ironruby-core mailing list