class Madman::Directory

Represents a directory with markdown files and subflders.

Attributes

basedir[R]
dir[R]

Public Class Methods

new(dir, basedir = nil) click to toggle source
# File lib/madman/directory.rb, line 6
def initialize(dir, basedir = nil)
  @dir = dir
  @basedir = basedir || dir
end

Public Instance Methods

deep_list() click to toggle source
# File lib/madman/directory.rb, line 15
def deep_list
  result = list
  dirs.each do |dir|
    result += Directory.new(dir.path, basedir).deep_list
  end
  result
end
list() click to toggle source
# File lib/madman/directory.rb, line 11
def list
  @list ||= (dirs + files)
end

Private Instance Methods

dirs() click to toggle source
# File lib/madman/directory.rb, line 31
def dirs
  result = Dir["#{dir}/*"].select { |f| File.directory? f }
  result.reject! do |f| 
    basename = File.basename(f)
    basename =~ /^[a-z_\-0-9]+$/
  end
  result.sort.map { |path| Item.new path, :dir, basedir }
end
files() click to toggle source
# File lib/madman/directory.rb, line 25
def files
  result = Dir["#{dir}/*.md"]
  result.reject! { |f| File.basename(f) == 'README.md' }
  result.sort.map { |path| Item.new path, :file, basedir }
end