 
         ##
         next()
+
+
+    ##
+    ##
+    ##
+    flatten: (obj, map, prefix)->
+        map ?= {}
+
+        if obj
+            for k, v of obj
+                key = if prefix then prefix+'.'+k else k
+                if floyd.tools.objects.isObject v
+                    objects.flatten v, map, key
+                else
+                    map[key] = v
+
+        return map
 
     ##
     ##

    ##
    ##
    ##
    keys: (obj)->
        return (key for key of obj)


    ##

        stream.on 'end', ()->
            fn null, Buffer.concat(data, length), stream

    ##
    ##
    ##
    argsLoggingCallback: (fn, logger)->
        logger ?= console
        return (args...)->

            for arg in args
                logger.log arg
            fn.apply null, args

##
##
##
