1 | # require-directory
|
2 |
|
3 | Recursively iterates over specified directory, requiring each file, and returning a nested hash structure containing those libraries.
|
4 |
|
5 | ## How To Use
|
6 |
|
7 | ### Installation
|
8 |
|
9 | ```bash
|
10 | $ npm install require-directory
|
11 | ```
|
12 |
|
13 | ### Usage
|
14 |
|
15 | Given a directory structure like so:
|
16 |
|
17 | * app.js
|
18 | * routes/home.js
|
19 | * routes/auth/login.js
|
20 | * routes/auth/logout.js
|
21 | * routes/auth/register.js
|
22 |
|
23 | ```javascript
|
24 | var requireDirectory = require('require-directory');
|
25 | var routes = requireDirectory(module, './routes/');
|
26 |
|
27 | // snip
|
28 |
|
29 | app.get '/', routes.home;
|
30 | app.get '/register', routes.auth.register;
|
31 | app.get '/login', routes.auth.login;
|
32 | app.get '/logout', routes.auth.logout;
|
33 | ```
|
34 |
|
35 | ### Usage + Blacklist Regex
|
36 |
|
37 | Using the same directory structure from above:
|
38 |
|
39 | ```javascript
|
40 | var excludeLogout = /logout.js$/;
|
41 | var requireDirectory = require('require-directory');
|
42 | var routes = requireDirectory(module, './routes/', excludeLogout);
|
43 |
|
44 | // snip
|
45 |
|
46 | app.get '/', routes.home;
|
47 | app.get '/register', routes.auth.register;
|
48 | app.get '/login', routes.auth.login;
|
49 | //app.get '/logout', routes.auth.logout; //<-- not present
|
50 | ```
|
51 |
|
52 | ### Usage + Path-checking Delegate
|
53 |
|
54 | Using the same directory structure from above:
|
55 |
|
56 | ```javascript
|
57 | var excludeLogout = function(path){
|
58 | if(/routes\/auth\/logout.js$/.test(path)){
|
59 | return false;
|
60 | }else{
|
61 | return true;
|
62 | }
|
63 | };
|
64 | var requireDirectory = require('require-directory');
|
65 | var routes = requireDirectory(module, './routes/', excludeLogout);
|
66 |
|
67 | // snip
|
68 |
|
69 | app.get '/', routes.home;
|
70 | app.get '/register', routes.auth.register;
|
71 | app.get '/login', routes.auth.login;
|
72 | //app.get '/logout', routes.auth.logout; //<-- not present
|
73 | ```
|
74 |
|
75 | ## Run Unit Tests
|
76 |
|
77 | ```bash
|
78 | $ npm test
|
79 | ```
|
80 |
|
81 | ## License
|
82 |
|
83 | [MIT License](http://www.opensource.org/licenses/mit-license.php)
|
84 |
|
85 | ## Author
|
86 |
|
87 | [Troy Goode](https://github.com/TroyGoode) ([troygoode@gmail.com](mailto:troygoode@gmail.com))
|