class Nknm::Lists::Directory

Attributes

path[R]

Public Class Methods

new(path, include_files: true, include_subdirs: true) click to toggle source

Create a new list based on a filesystem directory. @param path [String] the directory path to examine @param include_files [Boolean] should files be included? @param include_subdirs [Boolean] should directories be included? @return [Directory]

# File lib/nknm/lists/directory.rb, line 13
def initialize(path, include_files: true, include_subdirs: true)
  @path = path
  @include_files, @include_subdirs = include_files, include_subdirs
end

Public Instance Methods

items() click to toggle source

Get all the desired items from the specified directory. @return [Array<Entry>]

# File lib/nknm/lists/directory.rb, line 20
def items
  @_items ||= Dir[File.join(path, "*")]
    .select { |i| include?(i) }
    .map { |i| Entry.new(i) }
end

Private Instance Methods

include?(item) click to toggle source
# File lib/nknm/lists/directory.rb, line 28
def include?(item)
  (@include_files || !File.file?(item)) && (@include_subdirs || !File.directory?(item))
end