class Madness::Directory

Represents a directory with markdown file sand subflders.

Attributes

dir[R]

Public Class Methods

new(dir) click to toggle source
# File lib/madness/directory.rb, line 9
def initialize(dir)
  @dir = dir
end

Public Instance Methods

list() click to toggle source
# File lib/madness/directory.rb, line 13
def list
  @list ||= (dirs + files)
end

Private Instance Methods

config() click to toggle source
# File lib/madness/directory.rb, line 43
def config
  @config ||= Settings.instance
end
dirs() click to toggle source
# File lib/madness/directory.rb, line 28
def dirs
  result = Dir["#{dir}/*"].select { |f| File.directory? f }
  result.reject! { |f| exclude? f }
  result.nat_sort.map { |path| Item.new path, :dir }
end
exclude?(path) click to toggle source
# File lib/madness/directory.rb, line 34
def exclude?(path)
  return false unless config.exclude.is_a? Array
  basename = File.basename path
  config.exclude.each do |pattern|
    return true if basename =~ Regexp.new(pattern)
  end
  false
end
files() click to toggle source
# File lib/madness/directory.rb, line 19
def files
  result = Dir["#{dir}/#{config.dir_glob}"]
  result.reject! do |f| 
    basename = File.basename(f)
    basename == 'README.md' or basename == 'index.md'
  end
  result.nat_sort.map { |path| Item.new path, :file }
end