# Review: String#% and File.rename

**URL:** <https://www.ruby-forum.com/t/review-string-and-file-rename/165176>\
**Category:** IronRuby\
**Created:** [April 9, 2009, 9:25pm UTC](https://www.ruby-forum.com/t/review-string-and-file-rename/165176 "2009-04-09T21:25:04Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Shri\_B](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/898d66/32.png) [@Shri\_B](https://www.ruby-forum.com/u/Shri_B)\
**Post date:** [April 9, 2009, 9:25pm UTC](https://www.ruby-forum.com/t/review-string-and-file-rename/165176/1 "2009-04-09T21:25:04Z")

</div>

[http://github.com/Jirapong/ironruby/commit/1eb5b389d849c5464f8d89090c7476a96f05c21e](http://github.com/Jirapong/ironruby/commit/1eb5b389d849c5464f8d89090c7476a96f05c21e)  
(Jirapong’s fix)

> <https://github.com/shri-zz/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f>
>
> Bugs in File.rename
> Ruby should exit when main thread exits, even if other threa…ds are still alive
> Mapped Errno::ENOENT to FleNotFoundException, and ENOTDIR to DirectoryNotFoundException

(my fixes)  
[http://github.com/shri/ironruby/commit/e8f840f5c800fa62f4987b8904569491ae9a8ba0](http://github.com/shri/ironruby/commit/e8f840f5c800fa62f4987b8904569491ae9a8ba0)  
(merge with irmain HEAD)

GitDiff.bat fb6f89146e331a9f20f444d5ca94478dfce7f555  
2cb2802a316c48721875204aa83cf5d0fa85cf3f

- 

```
    Jirapong's fix for File.new when file already exists

```

- 

```
    Fixed another bug in String#%

```

- 

```
    Bugs in File.rename

```

- 

```
    Ruby should exit when main thread exits, even if other threads 

```

are still alive

- 

```
    Mapped Errno::ENOENT to FleNotFoundException, and ENOTDIR to 

```

DirectoryNotFoundException

Files changed:

- 

Merlin/External/Languages/IronRuby/mspec/ironruby-tags/core/string/modulo\_tags.txt[http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-0](http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-0)  
\*  
Merlin/External/Languages/IronRuby/mspec/rubyspec/core/file/rename\_spec.rb[http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-1](http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-1)  
\*  
Merlin/External/Languages/IronRuby/mspec/rubyspec/core/string/modulo\_spec.rb[http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-2](http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-2)  
\*  
Merlin/External/Languages/IronRuby/mspec/rubyspec/core/thread/new\_spec.rb[http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-3](http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-3)  
\*  
Merlin/Main/Languages/Ruby/Libraries.LCA\_RESTRICTED/Builtins/Dir.cs[http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-4](http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-4)  
\*  
Merlin/Main/Languages/Ruby/Libraries.LCA\_RESTRICTED/Builtins/Errno.cs[http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-5](http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-5)  
\*  
Merlin/Main/Languages/Ruby/Libraries.LCA\_RESTRICTED/Builtins/FileOps.cs[http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-6](http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-6)  
\*  
Merlin/Main/Languages/Ruby/Libraries.LCA\_RESTRICTED/Builtins/IoOps.cs[http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-7](http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-7)  
\*  
Merlin/Main/Languages/Ruby/Libraries.LCA\_RESTRICTED/Builtins/KernelOps.cs[http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-8](http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-8)  
\*  
Merlin/Main/Languages/Ruby/Libraries.LCA\_RESTRICTED/Builtins/StringFormatter.cs[http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-9](http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-9)  
\*  
Merlin/Main/Languages/Ruby/Libraries.LCA\_RESTRICTED/Builtins/ThreadOps.cs[http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-10](http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-10)  
\*  
Merlin/Main/Languages/Ruby/Libraries.LCA\_RESTRICTED/Initializers.Generated.cs[http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-11](http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-11)  
\*  
Merlin/Main/Languages/Ruby/Tests/Interop/uncategorized\_spec.rb[http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-12](http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-12)

- Merlin/Main/Languages/Ruby/Tests/Interop/uncategorized\_specs.rb
- 

Merlin/Users/sborde/Dev.bat[http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-14](http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-14)  
Thanks,  
Shri

---

<div class="post-metadata">

**Author:** ![Shri\_B](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/898d66/32.png) [@Shri\_B](https://www.ruby-forum.com/u/Shri_B)\
**Post date:** [April 9, 2009, 10:18pm UTC](https://www.ruby-forum.com/t/review-string-and-file-rename/165176/2 "2009-04-09T22:18:30Z")

</div>

Looks good.

Tomas

From: Shri B.  
Sent: Thursday, April 09, 2009 12:06 PM  
To: IronRuby External Code R.  
Cc: removed\_email\_address@domain.invalid  
Subject: Review: String#% and File.rename

[http://github.com/Jirapong/ironruby/commit/1eb5b389d849c5464f8d89090c7476a96f05c21e](http://github.com/Jirapong/ironruby/commit/1eb5b389d849c5464f8d89090c7476a96f05c21e)  
(Jirapong’s fix)

> <https://github.com/shri-zz/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f>
>
> Bugs in File.rename
> Ruby should exit when main thread exits, even if other threa…ds are still alive
> Mapped Errno::ENOENT to FleNotFoundException, and ENOTDIR to DirectoryNotFoundException

(my fixes)  
[http://github.com/shri/ironruby/commit/e8f840f5c800fa62f4987b8904569491ae9a8ba0](http://github.com/shri/ironruby/commit/e8f840f5c800fa62f4987b8904569491ae9a8ba0)  
(merge with irmain HEAD)

GitDiff.bat fb6f89146e331a9f20f444d5ca94478dfce7f555  
2cb2802a316c48721875204aa83cf5d0fa85cf3f

- 

```
    Jirapong's fix for File.new when file already exists

```

- 

```
    Fixed another bug in String#%

```

- 

```
    Bugs in File.rename

```

- 

```
    Ruby should exit when main thread exits, even if other threads 

```

are still alive

- 

```
    Mapped Errno::ENOENT to FleNotFoundException, and ENOTDIR to 

```

DirectoryNotFoundException

Files changed:

- 

Merlin/External/Languages/IronRuby/mspec/ironruby-tags/core/string/modulo\_tags.txt[http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-0](http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-0)  
\*  
Merlin/External/Languages/IronRuby/mspec/rubyspec/core/file/rename\_spec.rb[http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-1](http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-1)  
\*  
Merlin/External/Languages/IronRuby/mspec/rubyspec/core/string/modulo\_spec.rb[http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-2](http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-2)  
\*  
Merlin/External/Languages/IronRuby/mspec/rubyspec/core/thread/new\_spec.rb[http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-3](http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-3)  
\*  
Merlin/Main/Languages/Ruby/Libraries.LCA\_RESTRICTED/Builtins/Dir.cs[http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-4](http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-4)  
\*  
Merlin/Main/Languages/Ruby/Libraries.LCA\_RESTRICTED/Builtins/Errno.cs[http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-5](http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-5)  
\*  
Merlin/Main/Languages/Ruby/Libraries.LCA\_RESTRICTED/Builtins/FileOps.cs[http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-6](http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-6)  
\*  
Merlin/Main/Languages/Ruby/Libraries.LCA\_RESTRICTED/Builtins/IoOps.cs[http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-7](http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-7)  
\*  
Merlin/Main/Languages/Ruby/Libraries.LCA\_RESTRICTED/Builtins/KernelOps.cs[http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-8](http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-8)  
\*  
Merlin/Main/Languages/Ruby/Libraries.LCA\_RESTRICTED/Builtins/StringFormatter.cs[http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-9](http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-9)  
\*  
Merlin/Main/Languages/Ruby/Libraries.LCA\_RESTRICTED/Builtins/ThreadOps.cs[http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-10](http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-10)  
\*  
Merlin/Main/Languages/Ruby/Libraries.LCA\_RESTRICTED/Initializers.Generated.cs[http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-11](http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-11)  
\*  
Merlin/Main/Languages/Ruby/Tests/Interop/uncategorized\_spec.rb[http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-12](http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-12)

- Merlin/Main/Languages/Ruby/Tests/Interop/uncategorized\_specs.rb
- 

Merlin/Users/sborde/Dev.bat[http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-14](http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-14)  
Thanks,  
Shri

---

<div class="post-metadata">

**Author:** ![Shri\_B](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/898d66/32.png) [@Shri\_B](https://www.ruby-forum.com/u/Shri_B)\
**Post date:** [April 9, 2009, 11:21pm UTC](https://www.ruby-forum.com/t/review-string-and-file-rename/165176/3 "2009-04-09T23:21:50Z")

</div>

I would suggest using FileUtils.rm\_rf instead of remove\_dir at

> <https://github.com/shri-zz/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#L1R13>
>
> Bugs in File.rename
> Ruby should exit when main thread exits, even if other threa…ds are still alive
> Mapped Errno::ENOENT to FleNotFoundException, and ENOTDIR to DirectoryNotFoundException

You also don’t need to require fileutils as it is required as part of  
MSpec.

JD

From: Shri B.  
Sent: Thursday, April 09, 2009 12:06 PM  
To: IronRuby External Code R.  
Cc: removed\_email\_address@domain.invalid  
Subject: Review: String#% and File.rename

[http://github.com/Jirapong/ironruby/commit/1eb5b389d849c5464f8d89090c7476a96f05c21e](http://github.com/Jirapong/ironruby/commit/1eb5b389d849c5464f8d89090c7476a96f05c21e)  
(Jirapong’s fix)

> <https://github.com/shri-zz/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f>
>
> Bugs in File.rename
> Ruby should exit when main thread exits, even if other threa…ds are still alive
> Mapped Errno::ENOENT to FleNotFoundException, and ENOTDIR to DirectoryNotFoundException

(my fixes)  
[http://github.com/shri/ironruby/commit/e8f840f5c800fa62f4987b8904569491ae9a8ba0](http://github.com/shri/ironruby/commit/e8f840f5c800fa62f4987b8904569491ae9a8ba0)  
(merge with irmain HEAD)

GitDiff.bat fb6f89146e331a9f20f444d5ca94478dfce7f555  
2cb2802a316c48721875204aa83cf5d0fa85cf3f

- 

```
    Jirapong's fix for File.new when file already exists

```

- 

```
    Fixed another bug in String#%

```

- 

```
    Bugs in File.rename

```

- 

```
    Ruby should exit when main thread exits, even if other threads 

```

are still alive

- 

```
    Mapped Errno::ENOENT to FleNotFoundException, and ENOTDIR to 

```

DirectoryNotFoundException

Files changed:

- 

Merlin/External/Languages/IronRuby/mspec/ironruby-tags/core/string/modulo\_tags.txt[http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-0](http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-0)  
\*  
Merlin/External/Languages/IronRuby/mspec/rubyspec/core/file/rename\_spec.rb[http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-1](http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-1)  
\*  
Merlin/External/Languages/IronRuby/mspec/rubyspec/core/string/modulo\_spec.rb[http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-2](http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-2)  
\*  
Merlin/External/Languages/IronRuby/mspec/rubyspec/core/thread/new\_spec.rb[http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-3](http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-3)  
\*  
Merlin/Main/Languages/Ruby/Libraries.LCA\_RESTRICTED/Builtins/Dir.cs[http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-4](http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-4)  
\*  
Merlin/Main/Languages/Ruby/Libraries.LCA\_RESTRICTED/Builtins/Errno.cs[http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-5](http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-5)  
\*  
Merlin/Main/Languages/Ruby/Libraries.LCA\_RESTRICTED/Builtins/FileOps.cs[http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-6](http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-6)  
\*  
Merlin/Main/Languages/Ruby/Libraries.LCA\_RESTRICTED/Builtins/IoOps.cs[http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-7](http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-7)  
\*  
Merlin/Main/Languages/Ruby/Libraries.LCA\_RESTRICTED/Builtins/KernelOps.cs[http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-8](http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-8)  
\*  
Merlin/Main/Languages/Ruby/Libraries.LCA\_RESTRICTED/Builtins/StringFormatter.cs[http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-9](http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-9)  
\*  
Merlin/Main/Languages/Ruby/Libraries.LCA\_RESTRICTED/Builtins/ThreadOps.cs[http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-10](http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-10)  
\*  
Merlin/Main/Languages/Ruby/Libraries.LCA\_RESTRICTED/Initializers.Generated.cs[http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-11](http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-11)  
\*  
Merlin/Main/Languages/Ruby/Tests/Interop/uncategorized\_spec.rb[http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-12](http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-12)

- Merlin/Main/Languages/Ruby/Tests/Interop/uncategorized\_specs.rb
- 

Merlin/Users/sborde/Dev.bat[http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-14](http://github.com/shri/ironruby/commit/2cb2802a316c48721875204aa83cf5d0fa85cf3f#diff-14)  
Thanks,  
Shri
