module DirParser

Public Class Methods

make_hash(dir, parent_dir) click to toggle source
# File lib/codefusion/dir_parser.rb, line 2
def self.make_hash(dir, parent_dir)
  full_path = File.join(parent_dir, dir)
  children = Dir.entries(full_path).partition do |child|
    File.directory?( File.join(full_path, child) )
  end
  { folder_name: dir,
    files:       DirParser.return_files( children[1], full_path, parent_dir ),
    folders:     DirParser.return_folders( children[0], dir, parent_dir )
  }
end

Private Class Methods

return_files(children, full_path, parent_dir) click to toggle source
# File lib/codefusion/dir_parser.rb, line 14
def self.return_files(children, full_path, parent_dir)
  children.map do |file|
    begin
      if File.read( File.join(full_path, file)).to_json
        { file_name:  FileParser.shortened_path( File.join(full_path, file) , parent_dir ),
          file_content: File.read( File.join(full_path, file) )
        }
      end
    rescue Exception => e
    end
  end
end
return_folders(children, dir, parent_dir) click to toggle source
# File lib/codefusion/dir_parser.rb, line 27
def self.return_folders(children, dir, parent_dir)
  children.reject! { |child| child =~ /\./ }
  children.map { |folder| DirParser.make_hash( File.join(dir, folder), parent_dir ) }
end