Report abuse

node default {
    include a
    include b
}

class a {
    $dirs = "" 
    notice("class A")
    dir{["/tmp","/tmp/a","/tmp/b"]: before => File["/tmp/dirs"]}
}
class b {
    notice("template")
    #file{"/tmp/dirs": content => $a::dirs}
    file{"/tmp/dirs": content => template("/tmp/dirs.erb")}
}

define dir() {
    notice("define")
    $a::dirs += " $name" 
    file {$name: ensure => directory }
}


output:
notice: Scope(Class[a]): class A
notice: Scope(Class[b]): template
notice: Scope(Dir[/tmp/b]): define
notice: Scope(Dir[/tmp/a]): define
notice: Scope(Dir[/tmp]): define
notice: //Node[default]/b/File[/tmp/dirs]: Filebucketed to  with sum dd50ac53127aa2f3578835acc1415712
notice: //Node[default]/b/File[/tmp/dirs]/content: content changed '{md5}dd50ac53127aa2f3578835acc1415712' to '{md5}68b329da9893e34099c7d8ad5cb9c940'



template:
dirs.erb 
<%= scope.lookupvar("a::dirs") %>