Hacking arrays

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.

Hi –

On Tue, 29 Apr 2008, John wrote:

| .------------------
| | child folder
| | child files
| |____________


but I don’t. Can anyone see whats wrong here? I’m losing my mind.

It probably just a matter of counting the divs. I’ve sort of hacked
together a rewrite that looks like it’s getting it right. Emphasis on
“hacked” :slight_smile: There’s room for refinement, but anyway, this might get
you moving. http://pastie.org/188490

David

On Apr 28, 2008, at 8:10 PM, John wrote:

| .------------------
| | 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
#{ file }
html
end

content = <<-html


#{ title }

#{ file_content }
#{ dir_content }


html

indent = content[%r/^\s*/]
content.strip.gsub %r/^#{ indent }/, padding
end

puts div( ARGV.shift )

cfp:~ > ruby a.rb a

a
a/file.rb
a/b
a/b/file.rb
<div class='folder'>
<div class='title'> a/b/c </div>
<span class='file'>a/b/c/file.rb</span>


</div>

the indentation could be improved… but i suppose that doesn’t matter
for html anyhow.

regards.

a @ http://codeforpeople.com/

The anwser to Phlips question is ‘I don’t know how to write unit
tests.’

Where are the unit tests?


Phlip

That’s a good question, a fair question, and I would love to anwser it.

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

John wrote:
| The anwser to Phlips question is ‘I don’t know how to write unit
| tests.’
|
|

And I guess you’d like to know how to do that?

Well, Ruby ships with Test::Unit
http://ruby-doc.org/core/classes/Test/Unit.html

Then, there’s Shoulda:
http://www.thoughtbot.com/projects/shoulda

RSpec:

Just to name three options you have. :wink:

Ruby on Rails books usually cover Unit Testing (though, Rails brings its
own additions to the framework!).

And here’s a quick guide to unit testing in Ruby:

http://ruby.about.com/od/learnruby/p/learn_by_test.htm?rd=1


Phillip G.
Twitter: twitter.com/cynicalryan

Zoo: An excellent place to study the habits of human beings.
~ – Evan Esar
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.8 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkgWj4YACgkQbtAgaoJTgL+XGwCfaRgvqP+ALvYgYc8hB58ZMxBL
28YAoI+/nR5jhs9OBcOf26v0uONYpRDL
=GJO/
-----END PGP SIGNATURE-----

It probably just a matter of counting the divs. I’ve sort of hacked
together a rewrite that looks like it’s getting it right. Emphasis on
“hacked” :slight_smile: There’s room for refinement, but anyway, this might get
you moving.http://pastie.org/188490

David

That works, perfect. David, thanks. Looks like the num function was
the problem. I couldn’t see it - the array intersection wasn’t even
part of the equation.