Skip to content

Requires files based on a pattern in a robust and optimistic manner.

License

Notifications You must be signed in to change notification settings

Wardrop/require_pattern

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Require Pattern

This library provides a simple extension to the Kernel module that allows files to be conveniantly require'd based on a glob pattern.

This library does NOT use load paths. Instead, it provides methods that load files either relative to the current working directory (require_pattern), or relative to the current file (require_relative_pattern).

Why?

At this point you may be wondering why would I not just do this:

Dir.glob('**/*.rb') { |f| require f }

In some instances you will get away with that, but what happens when file x must be required before file y? This is what this library intends to resolve. It will load files in a loop, keeping track of what succeeds, and fails with an exception. This process continues until either all files have been required, or until a loop iteration fails to load any files at all.

Usage

Usage is relatively intuitive. Simply call either require_pattern or require_relative_pattern with one or more glob patterns, and all files matching those patterns will be required.

require_pattern 'lib/**/*.rb', 'models/**/*.rb'

Any files that refuse to load will be reported to STDERR with backtrace information.

Tests

mtest spec

About

Requires files based on a pattern in a robust and optimistic manner.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages