-
Notifications
You must be signed in to change notification settings - Fork 0
/
file-list-builder.js
36 lines (29 loc) · 903 Bytes
/
file-list-builder.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
module.exports = FileListBuilder;
// # Filelist builder
function FileListBuilder ( parent ) {
this.files = [];
this.directory = null;
this.addFile = function ( file ) {
this.files.push( file );
return this;
};
// Adds a directory of files
this.push = function ( directory ) {
var child = new FileListBuilder( this );
this.files = this.files.concat( [ directory+'_.header.js', directory+'*.js' ] );
child.directory = directory;
return child;
};
this.pop = function () {
if ( this.directory ) {
this.files = this.files.concat( ['!'+this.directory+'_.footer.js', this.directory+'_.footer.js' ] );
}
if ( parent ) {
parent.files = parent.files.concat( this.files );
}
return parent;
};
this.get = function () {
return this.files;
};
}