From 6e28e36485cd93b36c0895f120f57c943bf73965 Mon Sep 17 00:00:00 2001 From: Solomon Foster Date: Mon, 3 Jun 2013 19:13:09 -0400 Subject: [PATCH] Make dir return IO::Path objects. --- lib/CORE.setting | 6 ++++-- t/spectest.data | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/CORE.setting b/lib/CORE.setting index 3b6d56d5..940bb7cd 100644 --- a/lib/CORE.setting +++ b/lib/CORE.setting @@ -3744,7 +3744,9 @@ sub slurp($path?) is unsafe { sub spurt($path,$text) is unsafe { Q:CgOp { (rnull (spurt (unbox str (@ {$path.Str})) (unbox str (@ {$text.Str})))) } } sub dir($directory = '.', Mu :$test = none('.','..')) is unsafe { - Q:CgOp { (dir (obj_getstr {$directory})) }.grep($test).map(*.path); + Q:CgOp { (dir (obj_getstr {$directory})) }.grep($test).map({ + IO::Path.new(:$directory, :basename($_), :volume("")) + }); } my class Instant { @@ -3862,7 +3864,7 @@ class IO::Path is Cool does IO::FileTestable { # react weirdly to '/' if $path eq '/' { self.bless(*, :basename(""), - :directory("/"), + :directory($path), :volume("")); } else { self.bless(*, :basename(Q:CgOp { (box Str (path_get_file_name (obj_getstr {$path}))) }), diff --git a/t/spectest.data b/t/spectest.data index 48e5fb3f..bfd45ced 100644 --- a/t/spectest.data +++ b/t/spectest.data @@ -499,6 +499,7 @@ S32-hash/pairs.t S32-hash/push.t S32-hash/slice.t S32-io/chdir.t +S32-io/dir.t S32-io/file-tests.t S32-io/io-path.t S32-io/note.t