Question about .gsub

line = tree /Users/aragon/Documents -d
line.each { |l|
l = l.gsub(/|/,’ ‘)
l = l.gsub(/-/,’ ‘)
l = l.gsub(/`/,’ ')

               line = l
               puts line
     }

I use the gsub commands because the tree command produces the
following output:

|-- DUMMY
|-- lesen.rb
|-- test.txt
|-- test1.rb
|-- test2.rb
`-- tree.rb

Is there a way to reduce the code?

Jochen K. wrote:

I use the gsub commands because the tree command produces the
following output:

|-- DUMMY
|-- lesen.rb
|-- test.txt
|-- test1.rb
|-- test2.rb
`-- tree.rb

Seems a shame to strip off all that tree-like formatting and characters,
created with so much effort.

Is there a way to reduce the code?

puts l.gsub!(%r{[`-|]},’ '}

Not tested.

By the way, what are you trying to create? There are better ways to
produce
a tree display within Ruby itself.

Paul L. schrieb:

     }

`-- tree.rb

Seems a shame to strip off all that tree-like formatting and characters,
created with so much effort.

I want them to be store in a mysql-database.

Is there a way to reduce the code?

puts l.gsub!(%r{[`-|]},’ '}

Not tested.

By the way, what are you trying to create? There are better ways to produce
a tree display within Ruby itself.

I want to build a dropdown-menu so the admin ca select the
homedirectory of an ftpuser.

Could you please point me to a better solution?

Thanx

Jochen K. wrote:

/ …

Seems a shame to strip off all that tree-like formatting and characters,
created with so much effort.

I want them to be store in a mysql-database.

By “them” do you mean individual file names, or the entire tree
structure?
If the former, which parts of the file information do you need?

I ask because Ruby has many terrific ways to extract file information,
without having to make Windows system calls.

/ …

By the way, what are you trying to create? There are better ways to
produce a tree display within Ruby itself.

I want to build a dropdown-menu so the admin ca select the
homedirectory of an ftpuser.

Could you please point me to a better solution?

Only with better information. How are the FTP users organized? What kind
of
drop-down menu, using what GUI library?

Paul L. schrieb:

Jochen K. wrote:

/ …

Seems a shame to strip off all that tree-like formatting and characters,
created with so much effort.
I want them to be store in a mysql-database.

By “them” do you mean individual file names, or the entire tree structure?
If the former, which parts of the file information do you need?

I need the complete path - no filenames (dirname, basename?).
I need no additional file information - only the complete path.

Could you please point me to a better solution?

Only with better information. How are the FTP users organized? What kind of
drop-down menu, using what GUI library?

All FTP users a stored in a mysql database, uid, gid, MaxMB,
DownloadBandwith … The admin tool runs under apache and Ruby on
Rails.

I found a script which solves my problem:

#!/usr/local/bin/ruby

require ‘find’

dirs = ["/Users/aragon/Sites"]
excludes = []
for dir in dirs
Find.find(dir) do |path|
if FileTest.directory?(path)
if excludes.include?(File.basename(path))
Find.prune # Don’t look any further into this directory.
else
next
end
else
puts path
end
end
end

Thanx.

Jochen K. wrote:

Find.find(dir) do |path|
end
I believe this is more complex than it needs to be, or I didn’t
understand
your original request. Please see my other post.

Jochen K. wrote:

structure? If the former, which parts of the file information do you
need?

I need the complete path - no filenames (dirname, basename?).
I need no additional file information - only the complete path.

Your reply is ambiguous. Do you want the filename to be included in the
path? “No filenames” implies that the filename should be omitted, but
“complete path” implies that the filename should included.

Could you please point me to a better solution?

Only with better information. How are the FTP users organized? What kind
of drop-down menu, using what GUI library?

All FTP users a stored in a mysql database, uid, gid, MaxMB,
DownloadBandwith … The admin tool runs under apache and Ruby on
Rails.

Is the directory path search related in any way to the FTP list?

I think it would be better to post the Ruby on Rails inquiry in the Ruby
on
Rails newsgroup.

Here is a way to get a list of complete file paths for a given pathname
argument. This example filters for specific graphic file suffixes, but
you
can change this to suit your own requirements:


require ‘find’

files = []

Find.find("/directory/path") { |path|
files << path if path =~ /.(jpe?g|png|gif)$/i
}

puts files.sort

If the search is simple enough, ‘**’ may be useful:

Dir.glob ‘/tmp/**/*.jpg’

returns an array of all of the *.jpg files in or below /tmp:

irb(main):017:0> puts Pathname.glob ‘/tmp/**/*.wav’
(irb):17: warning: parenthesize argument(s) for future version
/tmp/8ac6ad1933905c064429ffad284508094daccc0d.wav
/tmp/mocktmp43800.wav
/tmp/mocktmp77244.wav
/tmp/testforfileappender_1.wav
/tmp/testforfileappender_2.wav
/tmp/custaudio/7/snark-2-1.wav
/tmp/custaudio/7/snark-2-2.wav
/tmp/custaudio/7/snark-2-3.wav
=> nil
irb(main):018:0>

or ‘/tmp/**/’ will get you a directory tree.

  • James M.