Sha256: 66162ad2f5eed8925f2c2c16a4f11dacc36c8937c3625ff307ea32c706a061f6
Contents?: true
Size: 1.63 KB
Versions: 2
Compression:
Stored size: 1.63 KB
Contents
class Dir def self.getwd "" end def self.pwd "" end def self.[](*globs) %x{ var result = [], files = factories; for (var i = 0, ii = globs.length; i < ii; i++) { var glob = globs[i]; var re = fs_glob_to_regexp(#{ File.expand_path `glob` }); for (var file in files) { if (re.exec(file)) { result.push(file); } } } return result; } end %x( function fs_glob_to_regexp(glob) { var parts = glob.split(''), length = parts.length, result = ''; var opt_group_stack = 0; for (var i = 0; i < length; i++) { var cur = parts[i]; switch (cur) { case '*': if (parts[i + 1] === '*' && parts[i + 2] === '/') { result += '.*'; i += 2; } else { result += '[^/]*'; } break; case '.': result += '\\\\'; result += cur; break; case ',': if (opt_group_stack) { result += '|'; } else { result += ','; } break; case '{': result += '('; opt_group_stack++; break; case '}': if (opt_group_stack) { result += ')'; opt_group_stack--; } else { result += '}' } break; default: result += cur; } } return new RegExp('^' + result + '$'); } ) end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
opal-0.3.21 | core/dir.rb |
opal-0.3.19 | core/dir.rb |