[from now] 2014/07/21 22:01:55

diff --git a/core.coffee b/core.coffee
index b0633a5..2e1ff24 100644
--- a/core.coffee
+++ b/core.coffee
@@ -45,22 +45,6 @@ class Core
     else if not @isDirectory dst
       @fso.MoveFolder src, dst# }}}

-  @walk: (path, filter) -># {{{
-    @dp "path = [#{path}]"
-    ret = []
-    do f = (path) =>
-      dir = @fso.GetFolder path
-      # directories
-      e = new Enumerator dir.SubFolders
-      until e.atEnd()
-        f new String e.item()
-        e.moveNext()
-      # files
-      e = new Enumerator dir.Files
-      until e.atEnd()
-        ret.push new String e.item()
-        e.moveNext()
-    return ret# }}}
 # }}}

   # Constructor# {{{
@@ -82,6 +66,32 @@ class Core
   dp: (msg) -># {{{
     WScript.Echo msg if @debug# }}}

+  dpObject: (obj) ->
+    i = 0
+    do f = (obj, i) =>
+      @dp "{"
+      for o of obj
+        f obj[o], i++ if typeof obj[o] is "object"
+        @p "#{o}: #{obj[o]}"
+      @dp "}"
+
+  walk: (path, filter) -># {{{
+    @dp "path = [#{path}]"
+    ret = []
+    do f = (path) =>
+      dir = @fso.GetFolder path
+      # directories
+      e = new Enumerator dir.SubFolders
+      until e.atEnd()
+        f new String e.item()
+        e.moveNext()
+      # files
+      e = new Enumerator dir.Files
+      until e.atEnd()
+        ret.push new String e.item()
+        e.moveNext()
+    return ret# }}}
+
   filterArray: (array, filter) -># {{{
     @dp "filter = [#{filter}]"
     ret = []
@@ -260,3 +270,4 @@ class Core
   getSize: -># {{{
     @dir.Size# }}}
 # }}}
+
diff --git a/test/core_test.coffee b/test/core_test.coffee
new file mode 100644
index 0000000..d1cb8a0
--- /dev/null
+++ b/test/core_test.coffee
@@ -0,0 +1,20 @@
+class TestCore extends Core
+
+  constructor: ->
+    super()
+
+
+test1 = new TestCore()
+
+son =
+  name: "Junia"
+  age: 5
+  family: null
+
+john =
+  name: "John"
+  age: 18
+  family:
+    son
+
+test1.dpObject john