Ejemplo n.º 1
0
        public static void AllowModules(this Engine engine, IEnumerable <IModuleFileReader> readers, IEngineCreator creator)
        {
            var importer = new ModuleImporter(readers, creator);

            engine.SetFunction("import", new Function(args =>
            {
                var id        = engine.Globals["import"] as Function;
                var directory = engine.GetDirectory();
                return(Curry.MinOne(id, args) ??
                       If.Is <String>(args, fileName => importer.From(fileName, directory)));
            }));
            engine.SetFunction("export", new Function(args =>
            {
                var value = args.Length != 0 ? args[0] : null;
                Cache.Assign(engine, value);
                return(null);
            }));
        }
Ejemplo n.º 2
0
 public ModuleImporter(IEnumerable <IModuleFileReader> readers, IEngineCreator creator)
 {
     _readers = readers;
     _creator = creator;
 }