require all files in a directory recursively.
% gem install require_recursiverequire 'require_recursive'
$LOAD_PATH.unshift File.expand_path('../app', __FILE__)
require_recursive 'my_app_directory'| /pkg/ |
| 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 |