module Belajar::Loadable
Public Instance Methods
load(path)
click to toggle source
# File lib/belajar/loadable.rb, line 3 def load(path) return [] unless Dir.exist?(path) dirs = Dir.entries(path).select do |entry| !entry.match(/\./) end dirs.sort.map do |dir| dir_path = File.join(path, dir) module_name = demodulize(to_s) class_name = singularize(module_name) belajar_class(class_name).new(dir_path) end end
Private Instance Methods
belajar_class(name)
click to toggle source
# File lib/belajar/loadable.rb, line 28 def belajar_class(name) Kernel.const_get("Belajar::#{name}") end
demodulize(string)
click to toggle source
# File lib/belajar/loadable.rb, line 20 def demodulize(string) string.split('::').last end
singularize(string)
click to toggle source
# File lib/belajar/loadable.rb, line 24 def singularize(string) string.end_with?('s') ? string[0..-2] : string end