[Ironruby-core] RubyForge bug fixes

Unnikrishnan Nair ksunair at yahoo.com
Sat May 10 16:01:27 EDT 2008

Quick question, are these following assertions are correct?
    should_raise(TypeError){ File.basename(1) }
    should_raise(TypeError){ File.basename("bar.txt", 1) }
    should_raise(TypeError){ File.basename(true) }
I was expecting all the above three should be ArgumentError than TypeError, until unless, you expect it to be TypeError, when I run the changes I have made for the all the above three by default you get the following error
>>> File.basename(1)
:0:in `Initialize##1': wrong number or type of arguments for `basename' (Argumen
let me know if you would like me to validate and force throw TypeError execption.
Also, in the basename_spec the test setup has wrong parameter on File.open(@name, 'w+'), if I change it to 'w', the test runs fine otherwise none of the test works. 


----- Original Message ----
From: John Lam (IRONRUBY) <jflam at microsoft.com>
To: IronRuby External Code Reviewers <irbrev at microsoft.com>
Cc: "ironruby-core at rubyforge.org" <ironruby-core at rubyforge.org>
Sent: Saturday, May 10, 2008 3:16:08 AM
Subject: [Ironruby-core] RubyForge bug fixes

tfpt review /shelveset:merge-3;REDMOND\jflam

Ruby only

This shelveset fixes a number of open bugs on Rubyforge and adds some features that we need to get the latest rubinius specs running.


-      we used to alias MatchData to System.Text.RegularExpressions.Match. However, to fully implement MatchData we need to also hold onto a reference to the original string that we matched against. A new MatchData type was created (MatchData.cs) which wraps the existing .NET Match object. This also touches MutableStringOps.cs, RubyOps.cs, RubyScope.cs, SpecialGlobalVariableInfo.cs
-      finished implementing all methods. 16 out of 16 specs pass
-      implemented to_a which closes bug #19903


-      added ctor overload to close bug #19927
-      made some changes to return MatchData objects instead of Match objects
-      made some changes to return boxed integers via RuntimeHelpers.Int32ToObject() instead of explicit boxing. This also touches MutableStringOps.cs


-      removed overloaded constructors to close bug #19956. But this exposes a new problem about Type aliasing that is described by bug 20035 (referencing a System::DateTime explicitly does not allow you to call the .NET constructors - only the Ruby-defined constructors).
-      fixed Time#- bug - #19955


-      fixed some very old bugs #15996, #15995 related to including non-sensible things (include 1, include nil). RequireNonClasses() method now throws the correct Ruby exceptions. This also touches SingletonOps.cs


-      added an implementation of String#rindex which closes #19904. We pass all specs except for 4 which fail because of differences between .NET regex and Ruby regex.


-      cleaned up some code here, was about to work on glob implementation (bugs #19843 #19950, but handed off to Curt)


-      added an implementation of File#basename which closes #19905. passes all specs except for one which is wrong, and one which is unix-specific. These things are likely bugs in Ruby.

    #File.basename('baz.rb', 'z.rb').should == 'ba' -- bad test
    #File.basename("bar.txt.exe", ".txt.exe").should == "bar" - unix-only, should be wrapped in platform

-      added an implementation of File.file? to close #19949


-      added a static Empty MutableString
-      added delegation thunks to LastIndexOf()
-      fixed our Equals() implementation to correctly distinguish between different types of strings (CLR vs. MutableString)


-      fixes a bug related to what "w+" means in .NET. - its FileMode.OpenOrCreate

Fixed bug #19885 by adding the -I command line switch which lets you specify the library load path. I've redefined our internal alias.txt file to generate aliases for rbd and rbx that include a pointer to where the MRI libs are stored in our layout.

Fixed bug #17810, which was a long-standing perf bug.

Fixed bug #20007, by allowing users to pass nothing for attr_accessor/reader/writer. This is really a bug in Ruby, but the current implementations allow this behavior, and there are apps that actually depend on it (RbYAML).

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://rubyforge.org/pipermail/ironruby-core/attachments/20080510/0a060786/attachment.html>

More information about the Ironruby-core mailing list