Skip to content

Instantly share code, notes, and snippets.

@ttanimichi
Last active November 22, 2015 10:16
Show Gist options
  • Save ttanimichi/267fb4360ab3afc5e2d6 to your computer and use it in GitHub Desktop.
Save ttanimichi/267fb4360ab3afc5e2d6 to your computer and use it in GitHub Desktop.
`require` all files in a directory recursively.

require_recursive

require all files in a directory recursively.

Usage

% gem install require_recursive
require 'require_recursive'
$LOAD_PATH.unshift File.expand_path('../app', __FILE__)

require_recursive 'my_app_directory'
require "bundler/gem_tasks"
Gem::Specification.new do |spec|
spec.name = 'require_recursive'
spec.version = '0.1.0'
spec.authors = ['Tsukuru Tanimichi']
spec.email = ['ttanimichi@hotmail.com']
spec.summary = 'require all files in a directory recursively.'
spec.homepage = 'https://gist.github.com/ttanimichi/267fb4360ab3afc5e2d6'
spec.license = 'MIT'
spec.files = ['require_recursive.rb']
spec.require_paths = ['.']
spec.required_ruby_version = '>= 2.0.0'
end
module Kernel
def require_recursive(directory)
if paths = $LOAD_PATH.map {|load_path| Dir["#{load_path}/#{directory}/**/*.rb"] }.find(&:any?)
paths.each(&method(:require))
else
fail LoadError, "cannot load such files -- #{directory}/**/*.rb"
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment