[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

question about .gsub

Jochen Kaechelin

12/16/2006 10:52:00 PM

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

7 Answers

Paul Lutus

12/16/2006 11:03:00 PM

0

Jochen Kaechelin wrote:

> 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

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 Lutus
http://www.ara...

Jochen Kaechelin

12/16/2006 11:19:00 PM

0

Paul Lutus schrieb:
> Jochen Kaechelin wrote:
>
>> 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
>
> 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

Paul Lutus

12/16/2006 11:34:00 PM

0

Jochen Kaechelin 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 Lutus
http://www.ara...

Jochen Kaechelin

12/16/2006 11:42:00 PM

0

Paul Lutus schrieb:
> Jochen Kaechelin 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.

> 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?

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





Jochen Kaechelin

12/17/2006 12:07:00 AM

0

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.


Paul Lutus

12/17/2006 12:19:00 AM

0

Jochen Kaechelin wrote:

> Paul Lutus schrieb:
>> Jochen Kaechelin 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.

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.

>
>> 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?
>
> 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

---------------------------------



--
Paul Lutus
http://www.ara...

Paul Lutus

12/17/2006 12:21:00 AM

0

Jochen Kaechelin wrote:

> 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


I believe this is more complex than it needs to be, or I didn't understand
your original request. Please see my other post.


--
Paul Lutus
http://www.ara...