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