<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:times new roman, new york, times, serif;font-size:12pt"><DIV style="FONT-SIZE: 12pt; FONT-FAMILY: times new roman, new york, times, serif">Quick question, are these following assertions are correct?</DIV>
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: times new roman, new york, times, serif">&nbsp;</DIV>
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: times new roman, new york, times, serif">&nbsp;&nbsp;&nbsp; should_raise(TypeError){ File.basename(1) }<BR>&nbsp;&nbsp;&nbsp; should_raise(TypeError){ File.basename("bar.txt", 1) }<BR>&nbsp;&nbsp;&nbsp; should_raise(TypeError){ File.basename(true) }</DIV>
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: times new roman, new york, times, serif">&nbsp;</DIV>
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: times new roman, new york, times, serif">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</DIV>
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: times new roman, new york, times, serif">&nbsp;</DIV>
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: times new roman, new york, times, serif">&gt;&gt;&gt; File.basename(1)<BR>:0:in `Initialize##1': wrong number or type of arguments for `basename' (Argumen<BR>tError)</DIV>
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: times new roman, new york, times, serif">&nbsp;</DIV>
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: times new roman, new york, times, serif">let me know if you would like me to validate and force throw TypeError execption.</DIV>
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: times new roman, new york, times, serif">&nbsp;</DIV>
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: times new roman, new york, times, serif">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. </DIV>
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: times new roman, new york, times, serif"><BR>Thanks,<BR></DIV>
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: times new roman, new york, times, serif">----- Original Message ----<BR>From: John Lam (IRONRUBY) &lt;jflam@microsoft.com&gt;<BR>To: IronRuby External Code Reviewers &lt;irbrev@microsoft.com&gt;<BR>Cc: "ironruby-core@rubyforge.org" &lt;ironruby-core@rubyforge.org&gt;<BR>Sent: Saturday, May 10, 2008 3:16:08 AM<BR>Subject: [Ironruby-core] RubyForge bug fixes<BR><BR>tfpt review /shelveset:merge-3;REDMOND\jflam<BR><BR>Ruby only<BR><BR>This shelveset fixes a number of open bugs on Rubyforge and adds some features that we need to get the latest rubinius specs running.<BR><BR>MatchDataOps:<BR><BR>-&nbsp; &nbsp; &nbsp; 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 (<A href="http://matchdata.cs/" target=_blank>MatchData.cs</A>) which wraps the
 existing .NET Match object. This also touches <A href="http://mutablestringops.cs/" target=_blank>MutableStringOps.cs</A>, <A href="http://rubyops.cs/" target=_blank>RubyOps.cs</A>, <A href="http://rubyscope.cs/" target=_blank>RubyScope.cs</A>, <A href="http://specialglobalvariableinfo.cs/" target=_blank>SpecialGlobalVariableInfo.cs</A><BR>-&nbsp; &nbsp; &nbsp; finished implementing all methods. 16 out of 16 specs pass<BR>-&nbsp; &nbsp; &nbsp; implemented to_a which closes bug #19903<BR><BR>RegexpOps:<BR><BR>-&nbsp; &nbsp; &nbsp; added ctor overload to close bug #19927<BR>-&nbsp; &nbsp; &nbsp; made some changes to return MatchData objects instead of Match objects<BR>-&nbsp; &nbsp; &nbsp; made some changes to return boxed integers via RuntimeHelpers.Int32ToObject() instead of explicit boxing. This also touches <A href="http://mutablestringops.cs/" target=_blank>MutableStringOps.cs</A><BR><BR>TimeOps:<BR><BR>-&nbsp; &nbsp; &nbsp; 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).<BR>-&nbsp; &nbsp; &nbsp; fixed Time#- bug - #19955<BR><BR>ModuleOps:<BR><BR>-&nbsp; &nbsp; &nbsp; 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 <A href="http://singletonops.cs/" target=_blank>SingletonOps.cs</A><BR><BR>MutableStringOps:<BR><BR>-&nbsp; &nbsp; &nbsp; 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.<BR><BR><A href="http://dir.cs/" target=_blank>Dir.cs</A>:<BR><BR>-&nbsp; &nbsp; &nbsp; cleaned up some code here, was about to work on glob
 implementation (bugs #19843 #19950, but handed off to Curt)<BR><BR><A href="http://fileops.cs/" target=_blank>FileOps.cs</A>:<BR><BR>-&nbsp; &nbsp; &nbsp; 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.<BR><BR>&nbsp; &nbsp; #File.basename('baz.rb', 'z.rb').should == 'ba' -- bad test<BR>&nbsp; &nbsp; #File.basename("bar.txt.exe", ".txt.exe").should == "bar" - unix-only, should be wrapped in platform<BR><BR>-&nbsp; &nbsp; &nbsp; added an implementation of File.file? to close #19949<BR><BR><A href="http://mutablestring.cs/" target=_blank>MutableString.cs</A>:<BR><BR>-&nbsp; &nbsp; &nbsp; added a static Empty MutableString<BR>-&nbsp; &nbsp; &nbsp; added delegation thunks to LastIndexOf()<BR>-&nbsp; &nbsp; &nbsp; fixed our Equals() implementation to correctly distinguish between different types of strings (CLR vs.
 MutableString)<BR><BR><A href="http://file.cs/" target=_blank>File.cs</A>:<BR><BR>-&nbsp; &nbsp; &nbsp; fixes a bug related to what "w+" means in .NET. - its FileMode.OpenOrCreate<BR><BR>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.<BR><BR>Fixed bug #17810, which was a long-standing perf bug.<BR><BR>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).<BR><BR>Thanks,<BR>-John<BR><BR></DIV></div></body></html>