class Madness::Directory
Represents a directory with markdown file sand subflders.
Attributes
Public Class Methods
Public Instance Methods
Private Instance Methods
Source
# File lib/madness/directory.rb, line 57 def config @config ||= Settings.instance end
Source
# File lib/madness/directory.rb, line 53 def dir_paths @dir_paths ||= dirs.map(&:path) end
Source
# File lib/madness/directory.rb, line 31 def dirs @dirs ||= begin result = Dir["#{dir}/*"].select { |f| File.directory? f } result.reject! { |f| exclude? f } result.nat_sort.map { |path| Item.new path, :dir } end end
Source
# File lib/madness/directory.rb, line 39 def exclude?(path) return false unless config.exclude.is_a? Array basename = File.basename path config.exclude.each do |pattern| return true if basename&.match?(Regexp.new(pattern)) end false end
Source
# File lib/madness/directory.rb, line 20 def files @files ||= begin result = Dir["#{dir}/#{config.dir_glob}"] result.reject! do |f| %w[readme.md README.md index.md].include? File.basename(f) end result.reject! { |f| is_cover_page? f } result.nat_sort.map { |path| Item.new path, :file } end end
Source
# File lib/madness/directory.rb, line 49 def is_cover_page?(path) dir_paths.include? path.remove(/\.md$/) end