public CoffeeResult Compile(Action<CoffeeRequest> configure) { var request = new CoffeeRequest(); configure(request); request.CreateCoffeeFile(); return execute(request); }
public RunResult Run(CoffeeRequest request) { using (var process = startCoffee(buildArgs(request))) { process.WaitForExit(); return new RunResult(process.ExitCode); } }
private static string buildArgs(CoffeeRequest request) { var files = request.RunFiles; var args = new StringBuilder(); args.Append("-c"); if (request.BareMode) { args.Append("b"); } args.Append(" "); args.Append(FileEscape(files.CoffeeScript)); args.Append(" "); args.Append(FileEscape(files.Error)); return args.ToString(); }
private CoffeeResult execute(CoffeeRequest request) { var coffeeResult = new CoffeeResult(); var files = request.RunFiles; if(_runner.Run(request).Success) { coffeeResult.TransformedCode = files.ReadJavaScript(); coffeeResult.Success = true; } else { coffeeResult.Error = files.ReadError(); coffeeResult.Success = false; } files.DeleteFiles(); return coffeeResult; }