Skip to content

omardelarosa/ruby-file-tree

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

#Ruby File Tree

Make a FileTree in Ruby.

@t = FileTree.new('path/to/dir')

##.to_h Makes a Hash of Hashes whose keys are the filename and (if directory) have "children" Hashes.

@t = FileTree.new('path/to/dir')
@t.to_h
#=> {"dir1"=>
  {:children=>
    {"file3.txt"=>
      {:children=>nil, :type=>"file", :full_path=>"test/data/dir1/file3.txt"}},
   :type=>"directory",
   :full_path=>"test/data/dir1"},
 "dir2"=>
  {:children=>
    {"dir3"=>
      {:children=>{}, :type=>"directory", :full_path=>"test/data/dir2/dir3"},
     "file3.js"=>
      {:children=>nil, :type=>"file", :full_path=>"test/data/dir2/file3.js"}},
   :type=>"directory",
   :full_path=>"test/data/dir2"},
 "file1.txt"=>
  {:children=>nil, :type=>"file", :full_path=>"test/data/file1.txt"},
 "file2.txt"=>
  {:children=>nil, :type=>"file", :full_path=>"test/data/file2.txt"}}

##.to_html Makes <ul> and <li> elements out of the files.

@t = FileTree.new('path/to/dir')
#=> "<ul><li>root</li><li><ul><li>dir1</li><li><ul><li>file3.txt</li></ul></li></ul></li><li><ul><li>dir2</li><li><ul><li>dir3</li></ul></li><li><ul><li>file3.js</li></ul></li></ul></li><li><ul><li>file1.txt</li></ul></li><li><ul><li>file2.txt</li></ul></li></ul>"

##.to_json Makes JSON out of the aforementioned Hash.

@t = FileTree.new('path/to/dir')
#=> { JSON }

###JSON example:

{
  "dir1": {
    "children": {
      "file3.txt": {
        "children": null,
        "type": "file",
        "full_path": "test/data/dir1/file3.txt"
      }
    },
    "type": "directory",
    "full_path": "test/data/dir1"
  },
  "dir2": {
    "children": {
      "dir3": { "children": { }, "type": "directory", "full_path": "test/data/dir2/dir3" },
      "file3.js": {
        "children": null,
        "type": "file",
        "full_path": "test/data/dir2/file3.js"
      }
    },
    "type": "directory",
    "full_path": "test/data/dir2"
  },
  "file1.txt": { "children": null, "type": "file", "full_path": "test/data/file1.txt" },
  "file2.txt": { "children": null, "type": "file", "full_path": "test/data/file2.txt" }
}

About

turns files into tress, hashes, json in ruby

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages