[#3861] super — ts <decoux@...>
[#3862] Marshal.dump'ing OpenStruct objects — Mauricio Fern疣dez <batsman.geo@...>
Hi,
[#3881] mkdir, mkdir_p in FileUtils and mode — Florian Frank <flori@...>
Hello,
[#3907] Obtaining mode information on an IO object — Jos Backus <jos@...>
The attached patch implements IO#mode. This method returns the mode the IO
Hi,
On Tue, Dec 07, 2004 at 09:25:13AM +0900, nobu.nokada@softhome.net wrote:
Jos Backus wrote:
Hi,
On Thu, Dec 09, 2004 at 10:47:48AM +0900, nobu.nokada@softhome.net wrote:
On Thu, Dec 09, 2004 at 02:40:33PM +0900, James Britt wrote:
[#3914] Pathname needs a makeover — "Berger, Daniel" <Daniel.Berger@...>
Hi all,
[#3922] Incorrect escaping in strings produced by String::inspect — noreply@...
Bugs item #1173, was opened at 2004-12-08 17:35
[#3966] unknown node type 0 — Andrew Walrond <andrew@...>
I still get this happening a lot with my Rubyx linux ruby script.
This is a long standing bug in Ruby, and has been reported hundreds of times
Hi,
[#3975] Patches to test/unit — Ryan Davis <ryand-ruby@...>
I believe these are the minimal patches needed to make it possible to
[#3982] Win32: rb_sys_fail() - errno == 0 — Florian Gro<florgro@...>
Moin!
[#4000] 1.8.2 preview4 — Yukihiro Matsumoto <matz@...>
Hello,
[#4009] cgi.rb -- more GET/POST stuff — mde@...26.com
First of all, I think it would be great, as Eustaquio suggests, to
GETs and POSTs are defined to be fairly different actions. I'd read
-----BEGIN PGP SIGNED MESSAGE-----
Francis Hwang wrote:
-----BEGIN PGP SIGNED MESSAGE-----
First of all, the entire discussion of when GET is appropriate
mde@state26.com wrote:
[#4027] Allowing custom number literal suffixes? — Florian Gro<florgro@...>
Moin!
Hi,
Mathieu Bouchard wrote:
Mathieu Bouchard wrote:
I'm not sure I would advocate making Ruby's grammar even more
>
Brent Roman wrote:
> Brent Roman wrote:
Brent Roman wrote:
> Florian Gross wrote:
Mathieu Bouchard wrote:
Mathieu Bouchard wrote:
[#4033] Garbage collection trouble — Christian Neukirchen <chneukirchen@...>
Hello,
>>>>> "C" == Christian Neukirchen <chneukirchen@gmail.com> writes:
ts <decoux@moulon.inra.fr> writes:
>>>>> "C" == Christian Neukirchen <chneukirchen@gmail.com> writes:
[#4040] Extensions, Internal — Jgen Mangler <juergen.mangler@...>
Hi,
Pathname needs a makeover
Hi all,
I've taken a look at the Pathname class. In my humble opinion, it needs
a makeover.
Here are a list of how I think it ought to behave:
- A pathname is a string. Therefore, it should be a subclass of String
- It should be possible to break a pathname down into component parts
and
iterate over them. Therefore, it should mixin Enumerable.
- It should not implement methods that raise errors if the pathname does
not exist.
- It should work for both Unix and Win32 style pathnames.
- It should make private methods private.
Here are the specific problems I have with the current class:
- Many methods are implemented manually that could be avoided by
subclassing the
String class and mixing in the Enumerable module.
- The to_a method does not return something useful.
- Some methods that I suspect should be private (e.g.
cleanpath_aggressive)
should be made private.
- Some of the methods require that the pathname actually exist. IMHO,
since
a pathname is just a string, and we don't know (or care) if it exists,
we
should not implement methods that raise an error if it doesn't exist.
Below is an incomplete version of what I had in mind (it still needs
realpath, cleanpath, etc), but you should get the drift. What do folks
think?
Regards,
Dan
class Pathname < String
include Enumerable
VERSION = "1.0.0"
def initialize(path)
@path = path
@sep = (File::ALT_SEPARATOR) && (@path =~ /\\/) ?
File::ALT_SEPARATOR : File::SEPARATOR
end
def to_a
a = @path.split(@sep)
a.delete("")
a
end
# Needed for Enumerable
def each
yield @path.split(@sep)
end
# Return '/' if Unix, or the volume name on Widnows
def root
@path.split(@sep).first.empty? ? @path[0].chr :
@path.split(@sep).first
end
# File::Stat Methods
def blockdev?
File.blockdev?(@path)
end
def chardev?
File.chardev?(@path)
end
def directory?
File.directory?(@path)
end
def executable?
File.executable?(@path)
end
def executable_real?
File.executable_real?(@path)
end
def exist?
File.exist?(@path)
end
alias :exists? :exist?
def file?
File.file?(@path)
end
def grpowned?
File.grpowned?(@path)
end
def owned?
File.owned?(@path)
end
def pipe?
File.pipe?(@path)
end
def readable?
File.readable(@path)
end
def readable_real?
File.readable_real?(@path)
end
def setgid?
File.setgid?(@path)
end
def setuid?
File.setuid?(@path)
end
def size?
File.size?(@path)
end
def socket?
File.socket?(@path)
end
def sticky?
File.sticky?(@path)
end
def symlink?
File.symlink?(@path)
end
def world_readable?
File.world_readable?(@path)
end
def world_writable?
File.world_writable?(@path)
end
def writable?
File.writable?(@path)
end
def writable_real?
File.writable_real?(@path)
end
def zero?
File.zero?(@path)
end
end