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:inInitialize##1': wrong number or type of arguments forbasename’
(Argumen
tError)
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.
Thanks,
----- Original Message ----
From: John L. (IRONRUBY) [email protected]
To: IronRuby External Code R. [email protected]
Cc: “[email protected]” [email protected]
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.
MatchDataOps:
-Â Â Â 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
RegexpOps:
-Â Â Â 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
TimeOps:
-Â Â Â 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
ModuleOps:
-Â Â Â 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
MutableStringOps:
-Â Â Â 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.
Dir.cs:
-Â Â Â cleaned up some code here, was about to work on glob
implementation (bugs #19843 #19950, but handed off to Curt)
FileOps.cs:
-Â Â Â 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
MutableString.cs:
-Â Â Â 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)
File.cs:
-Â Â Â 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).
Thanks,
-John