Hey there,

I am programming a file tree listing for my rails project. I found some
code that seemed to do a nice job that would be perfect after some
styling.

This works smoothly in pure ruby when run on the console. However it
does not produce the results I want when integrated with Rails.

This is the model that is producing the result.



require 'pathname'

class Filetree < ActiveRecord::Base

  $result = []

  def self.return_filetree_for_project(id)

    $ArmMap = Hash.new("|   ")
    $ArmMap[""] = ""

    $ArmMap["`"] = "    "

    ARGV << "." if ARGV.empty?

    ARGV.map{ |path| visit(Pathname.new("/"), "", "", "",
Pathname.new(path) ) }

    return $result

  end


  private

    def self.visit(path, leader, tie, arm, node)

      $result << "#{leader}#{arm}#{tie}#{node}<br/>"

      visit_children(path + node, leader + $ArmMap[arm])

    end

    def self.visit_children(path, leader)

      return unless FileTest.directory? path
      return unless FileTest.readable? path

      files = path.children(false).sort    #false = return name, not
full path

      return if files.empty?

      arms = Array.new(files.length - 1, "|") << "`"

      pairs = files.zip(arms)
      pairs.each { |e|  visit(path, leader, "-- ", e[1], e[0]) }

    end

end



And the output:

webrick
--port
3000

I have tried using various mixtures of the path, but I can only manage
to produce either this or an empty result. Do you have any ideas?

Thank you in advance,
Christoffer
-- 
Posted via http://www.ruby-forum.com/.

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to