The code:
http://pastie.caboo.se/188207
The question:
Why isn't it doing them like nested folders? I'd like to get
.-----------------
| Parent folder
| .------------------
| | child folder
| | child files
| |____________
__________
but I don't. Can anyone see whats wrong here? I'm losing my mind.
Thanks.
it looks like you are making it much harder than it needs to be...
this code gives you the depth you are at all the way down without the
need to count:
cfp:~ > find a
a
a/b
a/b/c
a/b/c/file.rb
a/b/file.rb
a/file.rb
cfp:~ > cat a.rb
def div folder = '.', depth = 0
title = folder
entries = Dir[ "#{ folder }/*" ]
padding = ' ' * depth
files = entries.select{|entry| test ?f, entry}
dirs = entries.select{|entry| test ?d, entry}
dir_content = dirs.map do |dir|
div dir, depth + 1
end
file_content = files.map do |file|
content = <<-html
<span class='file'>#{ file }</span>
html
end
content = <<-html
<div class='folder'>
<div class='title'> #{ title } </div>
#{ file_content }
#{ dir_content }
</div>
</div>
html
indent = content[%r/^\s*/]
content.strip.gsub %r/^#{ indent }/, padding
end
puts div( ARGV.shift )
cfp:~ > ruby a.rb a
<div class='folder'>
<div class='title'> a </div>
<span class='file'>a/file.rb</span>
<div class='folder'>
<div class='title'> a/b </div>
<span class='file'>a/b/file.rb</span>
<div class='folder'>
<div class='title'> a/b/c </div>
<span class='file'>a/b/c/file.rb</span>
</div>
</div>
</div>
</div>
</div>
</div>
the indentation could be improved... but i suppose that doesn't matter
for html anyhow.
regards.
a @
http://codeforpeople.com/