class DirectoryOfClasses
Represents a source directory full of classe - e.g., lib/vincelifedaily/checks/*
Attributes
dir[R]
module_name[R]
Public Class Methods
new(dir: raise, class_suffix: '', module_name: '')
click to toggle source
# File lib/quality/directory_of_classes.rb, line 19 def initialize(dir: raise, class_suffix: '', module_name: '') @dir = dir @class_suffix = class_suffix @module_name = module_name end
Public Instance Methods
basenames()
click to toggle source
# File lib/quality/directory_of_classes.rb, line 29 def basenames filenames.map { |filename| File.basename(filename) } end
basenames_without_extension()
click to toggle source
# File lib/quality/directory_of_classes.rb, line 33 def basenames_without_extension filenames.map { |filename| File.basename(filename, '.*') } end
filenames()
click to toggle source
# File lib/quality/directory_of_classes.rb, line 25 def filenames Dir.glob("#{dir}/**.rb").sort end
require_classes()
click to toggle source
# File lib/quality/directory_of_classes.rb, line 37 def require_classes basenames.each do |basename| path = "#{dir}/#{basename}" require_relative path end end
symbols_and_classes()
click to toggle source
# File lib/quality/directory_of_classes.rb, line 44 def symbols_and_classes @symbols_and_classes ||= filenames.map do |filename| basename = File.basename(filename, '.rb') class_name = "#{module_name}::#{basename.camelize}#{@class_suffix}" clazz = class_name.constantize symbol = basename.to_sym [symbol, clazz] end end