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