Sha256: e652520a4498a963d8f76698d0d7be273c33d1c42687a1c9f78d3b222c398e6f

Contents?: true

Size: 824 Bytes

Versions: 2

Compression:

Stored size: 824 Bytes

Contents

require 'require_dir/version'

module RequireDir
  #
  # This class is meant to be instantiated per project/library, and then used to load
  # en masse ruby files from a directory.
  class Loader

    attr_accessor :project_root, :options

    def initialize(root_dir, options = {})
      raise ArgumentError.new("Folder #{root_dir} is not found") unless Dir.exist?(root_dir)
      self.project_root = root_dir
      self.options = options
    end

    def dir(folder, recursive = false)
      folder = "/#{folder}" unless folder.start_with? '/'
      loader = self
      ::Dir.glob(project_root + folder + (recursive ? '/**/*.rb' : '/*.rb') ) do |file|
        puts "Loading #{file}" if loader.options[:debug]
        Kernel.require(file)
      end
    end

    def dir_r(folder)
      dir(folder, true)
    end

  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
require_dir-0.1.1 lib/require_dir/loader.rb
require_dir-0.1.0 lib/require_dir/loader.rb