23 Commits

Author SHA1 Message Date
Thibault Jouan
2253788d64 Rescue more specific exceptions in recipe evaluator 2015-05-12 18:53:17 +00:00
Thibault Jouan
797a757469 Use raise instead of fail in rescue statements 2015-05-12 18:00:51 +00:00
Thibault Jouan
25d03d4322 Improve CLI error reporting 2014-10-12 18:11:37 +00:00
Thibault Jouan
166dae681c Merge Recipe::DSL into Recipe 2014-09-22 19:43:30 +00:00
Thibault Jouan
245e131808 Implement Recipe::DSL.define_macro 2014-09-21 22:21:41 +00:00
Thibault Jouan
e6ee3d5f77 Implement `-t' CLI option switch to specify target 2014-06-27 17:32:42 +00:00
Thibault Jouan
3c46c5bc61 Implement `test_macro' recipe keyword 2014-06-03 16:27:59 +00:00
Thibault Jouan
f92ad8128d Implement set' and get' recipe keywords:
`set' registers a value at given index in env registry, `get'
retrieves a value at given index.
2014-01-21 17:11:17 +00:00
Thibault Jouan
161c784cbe Make Recipe::DSL methods public 2014-01-20 01:47:19 +00:00
Thibault Jouan
42a82c9c80 Add Recipe::DSL#{code,block} attribute readers 2014-01-20 01:47:19 +00:00
Thibault Jouan
352fcd37f8 Modify recipe DSL API to take env on initialization 2014-01-08 22:13:14 +00:00
Thibault Jouan
e8be44d1f0 Implement `macro' recipe keyword 2013-12-20 23:19:16 +00:00
Thibault Jouan
366c682152 Remove Recipe::DSL.evaluate method 2013-12-20 11:24:30 +00:00
Thibault Jouan
9251c6af8e Improve coding standards 2013-12-20 06:46:28 +00:00
Thibault Jouan
d4d5222261 Refactor task DSL usages:
Remove most of task evaluation code from Task class, rely on
Task::DSL.evaluate to get an evaluated task.

* Task: remove #evaluate, change constructor prototype to accept actions
  instead of a block, implement .evaluate(name, env &block);
* Implement Task::DSL.evaluate method;
* Recipe::DSL: remove tasks evaluation from#evaluate, modify #task to
  use Task.evaluate to return the new task to be rigstered.
2013-08-15 22:28:16 +00:00
Thibault Jouan
f0e144cebd Refactor and simplify recipe DSL evaluation usages:
Remove most of recipe evaluation code in Recipe class, and rely on
Recipe::DSL to get evaluated recipes.

* Remove Recipe#evaluate call from CLI, rely on
  Recipe.evaluate_from_file to get the evaluated recipe;
* Implement Recipe.evaluate_from_file(filepath, env);
* Implement Recipe::DSL.evaluate(code, env);
* Remove code and filepath accessor on Recipe;
* Remove Recipe.from_file and Recipe#evaluate methods;
* Move task evaluations in Recipe::DSL#evaluate;
* Modify Recipe constructor so that it accepts tasks as argument.
2013-08-14 19:48:43 +00:00
Thibault Jouan
53db841b2d Remove Env#current_recipe attribute 2013-08-13 01:36:33 +00:00
Thibault Jouan
a5d9ca26f4 Remove error handling for evaluation errors 2013-08-13 00:42:14 +00:00
Thibault Jouan
a6e27edfd2 Add env recipe keyword feature 2013-08-03 23:42:41 +00:00
Thibault Jouan
c4fc9828db Improve error reporting during recipe evaluation
* Report invalid action usages from tasks;
* Implement backtrace cleaning in CLI;
* Extract error class declarations in a new errors file;
* Replace raise with fail keyword in task DSL class.
2013-08-01 20:31:39 +00:00
Thibault Jouan
2acb57254f Fix a few coding standards issues:
* Remove extra empty lines before private keyword usages.

  specs:

  * Fix one long line;
  * use proc keyword instead of Proc.new.
2013-08-01 00:01:20 +00:00
Thibault Jouan
3792f60a5c Improve source recipe keyword feature:
* Improve error reporting from sourced recipe;
* Extract cucumber feature from recipe one.
2013-08-01 00:01:19 +00:00
Thibault Jouan
2939123574 Extract recipe DSL code and spec 2013-08-01 00:01:19 +00:00