class Silicon::TypeLoader

Public Class Methods

new(silicon_config) click to toggle source
# File lib/silicon/loaders/type_loader.rb, line 3
def initialize(silicon_config)
  @directories = silicon_config[:path][:dependencies]
end

Public Instance Methods

load_types() click to toggle source
# File lib/silicon/loaders/type_loader.rb, line 7
def load_types
  types = []
  @directories.each do |directory|
    dir = File.join(directory, '**/*')
    files = Dir.glob(dir).reject {|file_path| File.directory? file_path}

    files.each do |file|
      path = File.join Dir.pwd, file
      require path
      file_name = File.basename(file).gsub(File.extname(file), '')
      class_name = file_name.split('_').each(&:capitalize!).join('')
      types << Object.const_get(class_name)
    end
  end

  types
end