Thibault Jouan
e4a4211a7b
Rename Worker class as Interpreter
2013-08-16 19:30:51 +00:00
Thibault Jouan
5a4c8c02bc
Fix coding standards in Task class
2013-08-15 22:35:10 +00:00
Thibault Jouan
a028b8922f
Increase Task.evaluate spec coverage
2013-08-15 22:34:13 +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
000c21e094
Remove uneeded call in Recipe::DSL#env spec
2013-08-15 22:28:11 +00:00
Thibault Jouan
a675c9c910
Implement `echo' task action
2013-08-14 23:43:36 +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
7c5d5b0417
Improve Recipe::DSL#initialize spec
...
Fix current examples by testing assignations, and add missing example
about @tasks assignation.
2013-08-13 22:47:23 +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
0904fa1fc9
Implement Worker class:
...
* Move recipe processing code in the worker;
* Refactor CLI and use the the worker;
* Implement Recipe#tasks and remove tasks application during evaluation,
tasks are now applied by the worker after all evaluations are done.
2013-08-10 14:47:02 +00:00
Thibault Jouan
ec44d01c36
Fix coding standards in shell command action spec
2013-08-10 14:46:31 +00:00
Thibault Jouan
8af6d0ec00
Add basic Rakefile (required by various CI platforms)
2013-08-08 18:07:06 +00:00
Thibault Jouan
71024dfb74
Add license file
2013-08-08 02:00:15 +00:00
Thibault Jouan
825bdec74d
Improve `sh' task action error handling:
...
Handle exit status code in Remote#execute.
2013-08-07 23:39:49 +00:00
Thibault Jouan
f10914c7d7
Implement basic `sh' task action feature:
...
* Executes a command on the remote host;
* Forwards remote standard output.
2013-08-07 16:16:40 +00:00
Thibault Jouan
8123cf5052
Add Task#initialize spec
2013-08-07 01:22:46 +00:00
Thibault Jouan
dff95b2c4b
Fix coding standards in Env spec
2013-08-07 01:22:12 +00:00
Thibault Jouan
b8fd24973a
Improve Task::DSL spec:
...
* Improve #initialize spec wording and expectation;
* Add #actions spec.
2013-08-07 01:16:00 +00:00
Thibault Jouan
0148854843
Make DSL specific method private in Task#DSL
2013-08-07 01:14:44 +00:00
Thibault Jouan
3ef533b67a
Move Recipe::DSL#tasks example in spec file
2013-08-07 01:07:13 +00:00
Thibault Jouan
ef96a2db82
Improve naming in Remote#execute spec
2013-08-06 20:45:42 +00:00
Thibault Jouan
22ae12185d
Improve Recipe spec:
...
* Fix coding standards;
* Add spec for default assigned filepath;
* Add spec for #filepath accessor;
* Test object identity in #code spec.
2013-08-06 20:39:17 +00:00
Thibault Jouan
29563f6cc6
Add missing spec for Recipe::DSL#task
2013-08-06 20:31:14 +00:00
Thibault Jouan
d552c698de
Improve Env#output spec:
...
Test the receiving output object state instead of expecting that it
will receive a specific message.
2013-08-06 20:12:02 +00:00
Thibault Jouan
31b9e68026
Improve Env#initialize spec:
...
Test that #current_recipe returns exactly the assigned recipe
(argument given to the constructor).
2013-08-06 20:07:39 +00:00
Thibault Jouan
863155b61d
Improve wording in Env#initialize spec
2013-08-06 20:06:05 +00:00
Thibault Jouan
883d4f2e7e
Fix coding standards in remote spec
2013-08-06 20:02:27 +00:00
Thibault Jouan
9285a951c7
Add missing spec for CLI#initialize
2013-08-06 20:02:23 +00:00
Thibault Jouan
779eb72c32
Improve wording in CLI#arguments spec
2013-08-06 19:41:48 +00:00
Thibault Jouan
bd1bdba9cf
Fix CLI#evaluate_recipe_file spec:
...
The spec wasn't covering the case when recipe evaluation raises an
unexpected error.
2013-08-06 19:38:33 +00:00
Thibault Jouan
eaccf55581
Improve CLI spec:
...
Test #arguments accessor instead of testing the constructor.
2013-08-06 19:17:22 +00:00
Thibault Jouan
889ddf84e4
Fix Action#env spec:
...
Test that we get the exact assigned object, instead of just testing
equality.
2013-08-06 19:11:29 +00:00
Thibault Jouan
3c92b04b90
Rename task evaluation feature file
2013-08-06 19:05:43 +00:00
Thibault Jouan
6f563d75d7
Improve a test in task evaluation feature
2013-08-06 19:05:01 +00:00
Thibault Jouan
72d6a853ae
Improve wording in task evaluation feature
2013-08-06 19:04:49 +00:00
Thibault Jouan
d5cbff9c4d
Improve wording in `condition' task keyword feature
2013-08-06 19:02:35 +00:00
Thibault Jouan
786c2f56d6
Improve wording in `target' recipe keyword
2013-08-06 19:00:57 +00:00
Thibault Jouan
cd13cebfd8
Refactor `source' recipe keyword feature
2013-08-06 19:00:14 +00:00
Thibault Jouan
bc0ea65316
Improve wording in `source' recipe keyword feature
2013-08-06 18:55:24 +00:00
Thibault Jouan
64a57c7cfd
Improve test in recipe evaluation output feature
2013-08-06 18:55:00 +00:00
Thibault Jouan
98b141136b
Improve wording in `env' recipe keyword feature
2013-08-06 18:49:57 +00:00
Thibault Jouan
5c11487601
Fix indentation in CLI usage feature
2013-08-06 18:49:35 +00:00
Thibault Jouan
8069e1ceaf
Improve features directory tree
2013-08-06 18:48:52 +00:00
Thibault Jouan
580ad66bab
Use new rspec metadata arguments as symbol
2013-08-06 18:34:53 +00:00
Thibault Jouan
cff122432b
Refactor Net::SSH spec helpers definition and usages
2013-08-06 17:29:45 +00:00
Thibault Jouan
5d9a5f1f57
Simplify spec helper:
...
Move specific exception `SomeErrorInRecipe' in the only spec where it
is used.
2013-08-06 17:13:41 +00:00
Thibault Jouan
d7d7d42223
Implement @sshd cucumber tag hooks:
...
Fork an sshd server available for the duration of the scenario.
$HOME will be set to aruba temporary directory, and a custom ssh
config will be written so that the test server is accessible with the
alias `some_host.test'. sshd will listen on port 2222 by default, this
can be overridden by setting DEFAULT_LISTEN_PORT environment variable to
the desired port.
2013-08-05 20:08:11 +00:00
Thibault Jouan
9875a4ae7b
Make remote available to env
2013-08-05 20:05:58 +00:00
Thibault Jouan
ace5bfb3fa
Add basic Remote#execute implementation
2013-08-05 20:03:13 +00:00
Thibault Jouan
6e1ba269eb
Implement Remote class
2013-08-05 19:58:17 +00:00
Thibault Jouan
3e3547d3be
Fix incorrect paths for env and target features
2013-08-05 19:54:32 +00:00
Thibault Jouan
ad63164d60
Fix coding standards in Env spec
2013-08-05 14:32:23 +00:00
Thibault Jouan
47560e55c5
Extract cucumber and aruba monkey patches
2013-08-05 14:15:23 +00:00
Thibault Jouan
0cccbc8dde
Add Env#output with $stdout as default
2013-08-04 21:29:13 +00:00
Thibault Jouan
e6c14f1903
Implement basic task actions API:
...
* Add Action base class;
* Implement Task::DSL.define_action(keyword, klass);
* Add Task::DSL#actions accessor;
* Apply task DSL actions when Task instances are evaluated.
2013-08-04 20:30:54 +00:00
Thibault Jouan
8e455fc4d5
Improve Env constructor
2013-08-04 15:45:08 +00:00
Thibault Jouan
a3bba6d4da
Implement target recipe keyword feature
2013-08-03 23:42:47 +00:00
Thibault Jouan
a6e27edfd2
Add env recipe keyword feature
2013-08-03 23:42:41 +00:00
Thibault Jouan
d677c3aa97
Improve exceptions usage in specs:
...
* Throw symbols instead of raising exceptions to test code evaluation,
this will reduce "bad" usages of exceptions, symbols seems a little
better for now;
* Add a specific exception to be used in specs for testing behaviour
when an exception is raised from a recipe.
2013-08-01 23:23:49 +00:00
Thibault Jouan
c3737e738e
Refactor trap_exit spec helper usages
2013-08-01 22:51: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
836f9ffc29
Replaces Proc.new usages with proc keyword
2013-08-01 18:33:18 +00:00
Thibault Jouan
57ff1c73be
Change "wording" in Recipe::DSL#evaluate spec
2013-08-01 17:18:15 +00:00
Thibault Jouan
0ab6a4e246
Improve source feature with explicit exit status
2013-08-01 17:17:44 +00:00
Thibault Jouan
ace6a4ad2b
Implement Task::DSL#evaluate:
...
So that the env is available from the task DSL.
2013-08-01 00:01:20 +00:00
Thibault Jouan
a45a340b64
Improve some context descriptions in specs
2013-08-01 00:01:20 +00:00
Thibault Jouan
0aa043b61a
Remove host argument:
...
Currently the idea is to later implement a -h (or -t) option to the
command, and/or a `target' recipe keyword. Another option might be to
use the target/host key when the key/value registry will be implemented
and made available to the recipe and task DSLs.
2013-08-01 00:01:20 +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
fa2f55e516
Improve cucumber readability in guard (quiet option)
2013-08-01 00:01:19 +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
b1c99dbeeb
Extract task DSL code and spec
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
Thibault Jouan
e12dd5c0e7
Implement recipe error reporting feature
2013-08-01 00:01:15 +00:00
Thibault Jouan
f6d9dd2c90
Change ConditionNotMetError superclass
2013-07-30 15:57:03 +00:00
Thibault Jouan
a1e92893ad
Refactor CLI#run! method
2013-07-30 15:19:34 +00:00
Thibault Jouan
71ef5fcd29
Fix missing specs for Recipe#evaluate
2013-07-30 14:48:07 +00:00
Thibault Jouan
10bfe17c56
Remove extra #each call in Recipe#evaluate
2013-07-30 14:48:07 +00:00
Thibault Jouan
d199ba56fd
Add Env class
2013-07-30 14:47:56 +00:00
Thibault Jouan
30e1930719
Implement Recipe::DSL#evaluate method:
...
Move recipe DSL evaluation in a dedicated #evaluate method, instead of
evaluating the code during the DSL instantiation.
2013-07-30 14:46:27 +00:00
Thibault Jouan
37e17d1030
Implement Recipe#filepath method:
...
Returns the filepath of the recipe when it is built from a file.
2013-07-30 14:46:27 +00:00
Thibault Jouan
0ac6217245
Improve Recipe::DSL#task spec readability
2013-07-30 14:46:01 +00:00
Thibault Jouan
c642584c95
Fix task DSL spec:
...
* Use explicit named subject;
* Fix description for Task::DSL#condition when condition is not met.
2013-07-30 14:36:33 +00:00
Thibault Jouan
080ef063c0
Improve recipe spec:
...
* Use explicit named subject for Recipe::DSL;
* Fix Recipe::DSL#source example description.
2013-07-30 14:35:52 +00:00
Thibault Jouan
ead09c2118
Test exact exit status in CLI spec
2013-07-28 23:25:58 +00:00
Thibault Jouan
d146566411
Implement tasks condition feature
2013-07-28 22:56:08 +00:00
Thibault Jouan
16134bf827
Fix incorrect class name in recipe spec
2013-07-28 22:03:01 +00:00
Thibault Jouan
00f6284a2d
Fix wrong method name in recipe spec
2013-07-28 21:54:37 +00:00
Thibault Jouan
baaa957e9e
Implement task evaluation feature
2013-07-28 19:18:53 +00:00
Thibault Jouan
c7295fb977
Implement source keyword feature for recipes
2013-07-28 18:38:00 +00:00
Thibault Jouan
65643e065e
Fix fixtures path in rspec fixtures helpers
2013-07-28 18:36:04 +00:00
Thibault Jouan
8e4f670fbf
Introduce Recipe::DSL to eval recipe DSL code
2013-07-28 18:08:16 +00:00
Thibault Jouan
e5d5fc0a41
Refactor recipe spec
2013-07-28 16:11:12 +00:00
Thibault Jouan
7b4b2872fc
Replace autoload with explicit require calls
2013-07-28 16:07:58 +00:00
Thibault Jouan
0921be9ab0
Implement recipe evaluation feature
2013-07-27 18:20:45 +00:00
Thibault Jouan
f0d90c96e9
Add rspec fixtures helpers
2013-07-27 18:20:44 +00:00
Thibault Jouan
a6cfd4d7cb
Implement CLI usage feature
2013-07-27 13:04:30 +00:00
Thibault Jouan
46f992fdb2
Add Guardfile
2013-07-27 13:04:23 +00:00
Thibault Jouan
c01389fa43
Add custom Gemfile evaling
2013-07-27 13:04:23 +00:00
Thibault Jouan
929e82cd55
Add monkey patch to fix cucumber docstrings:
...
Cucumber chomp the last \n from multiline strings (docstrings), this
monkey patch modify Cucumber::Ast::DocString constructor to add the
missing ending new line character and
Cucumber::Formatter::Pretty#doc_string to remove it from the output.
2013-07-27 13:04:23 +00:00