Thibault Jouan
f27ab6f074
Add Condition::DSL#{block,env} attribute readers
2014-01-19 16:50:42 +00:00
Thibault Jouan
db6f22ac97
Change Condition::DSL#tests as read-only attribute
2014-01-19 16:39:26 +00:00
Thibault Jouan
2e151fe321
Change Action attributes as read-only:
...
* #env
* #arguments
2014-01-19 16:37:51 +00:00
Thibault Jouan
5d81f0bc07
Add Condition#{tests,return_value} attributes reader
2014-01-19 00:07:21 +00:00
Thibault Jouan
a031cb2b51
Use more explicit example in CLI spec
2014-01-19 00:05:01 +00:00
Thibault Jouan
913cba6c23
Add some new delegators in Test class:
...
* #remote (delegates to env.remote)
* #fs (delegates to env.remote.fs)
2014-01-18 22:53:54 +00:00
Thibault Jouan
22613059f1
Change Env#output as read-only attribute
2014-01-09 01:22:43 +00:00
Thibault Jouan
b67a32d27e
Change CLI#recipe as read-only attribute
2014-01-09 01:16:13 +00:00
Thibault Jouan
a7dde5afce
Bump version to 0.1.10
2014-01-09 01:09:17 +00:00
Thibault Jouan
4c0a7f0fc7
Rename Interpreter class as Worker
2014-01-09 01:08:49 +00:00
Thibault Jouan
cdc3128727
Implement Action#remote (delegates to remote.fs)
2014-01-09 00:51:16 +00:00
Thibault Jouan
29c26ab961
Implement Action#remote (delegates to env.remote)
2014-01-09 00:45:26 +00:00
Thibault Jouan
e567c61e4e
Implement Action#output (delegates to env.output)
2014-01-09 00:43:01 +00:00
Thibault Jouan
103b9d1230
Rename Remote::FS#{has_,}file?
2014-01-08 22:30:52 +00:00
Thibault Jouan
19b091a15c
Rename Remote::Environment#{has_,}key?
2014-01-08 22:28:23 +00:00
Thibault Jouan
56ea377e31
Fix coding standards (empty blocks)
2014-01-08 22:16:51 +00:00
Thibault Jouan
9971283841
Improve Recipe::DSL#initialize spec
2014-01-08 22:14:16 +00:00
Thibault Jouan
352fcd37f8
Modify recipe DSL API to take env on initialization
2014-01-08 22:13:14 +00:00
Thibault Jouan
1d6ae126ed
Modify task DSL API to take env on initialization
2014-01-08 22:11:30 +00:00
Thibault Jouan
356d778746
Improve guard-rspec config (fail-fast and restart all)
2014-01-08 21:51:07 +00:00
Thibault Jouan
edca69ffad
Refactor Recipe specs:
...
* Use more classic specs for .evaluate_from_file;
* Fix coding standards.
2014-01-08 02:28:24 +00:00
Thibault Jouan
b1010e44c5
Bump version to 0.1.9
2014-01-08 02:19:03 +00:00
Thibault Jouan
7dfbc3905b
Rewrite CLI#run:
...
* Rename #run! to #run;
* Add #load_recipe method;
* Remove most builder/accessor/memoizable methods.
2014-01-08 02:10:18 +00:00
Thibault Jouan
4d34f66ec5
Add EX_USAGE constant in CLI class
2014-01-07 21:23:15 +00:00
Thibault Jouan
512c380517
Bump version to 0.1.9
2014-01-07 21:21:42 +00:00
Thibault Jouan
f7efd9c42f
Refactor CLI usage into CLI.run!:
...
* Add Producer::Core::CLI::ArgumentError class;
* Raise ArgumentError in CLI.new when recipe is missing;
* Remove #check_arguments! and #print_usage_and_exit, move code into
.run! method.
2014-01-07 21:06:14 +00:00
Thibault Jouan
dc9e7f1412
Improve CLI API related to standard output
2014-01-07 18:47:56 +00:00
Thibault Jouan
d670d5dbdd
Replace env.output interface with an IO like object
2013-12-23 23:31:15 +00:00
Thibault Jouan
e8b0900721
Improve `echo' action cucumber feature wording
2013-12-23 23:31:15 +00:00
Thibault Jouan
9b975836dc
Fix gemspec:
...
* Remove $LOAD_PATH modification;
* Dup VERSION string;
* Add a real summary.
2013-12-23 00:54:48 +00:00
Thibault Jouan
012c776880
Simplify Remote::Environment with factory method:
...
* Implement .new_from_string factory class method;
* Rename private method #parse_from_string as class method
.string_to_hash;
* Remove argument kind detection logic in constructor.
2013-12-21 03:08:01 +00:00
Thibault Jouan
4885483d75
Bump version to 0.1.7
2013-12-20 23:35:02 +00:00
Thibault Jouan
e8be44d1f0
Implement `macro' recipe keyword
2013-12-20 23:19:16 +00:00
Thibault Jouan
43a781dc78
Remove Task::DSL.evaluate method
2013-12-20 11:43:18 +00:00
Thibault Jouan
366c682152
Remove Recipe::DSL.evaluate method
2013-12-20 11:24:30 +00:00
Thibault Jouan
d83b11d07b
Remove Condition::DSL.evaluate method
2013-12-20 11:24:30 +00:00
Thibault Jouan
9422705ad4
Fix coding standards in Remote (extra parentheses)
2013-12-20 11:24:30 +00:00
Thibault Jouan
9251c6af8e
Improve coding standards
2013-12-20 06:46:28 +00:00
Thibault Jouan
0b68a8165d
Bump version to 0.1.6
2013-12-20 06:28:03 +00:00
Thibault Jouan
892a9862fc
Implement `file_write' action
2013-12-20 06:26:21 +00:00
Thibault Jouan
188ca2e08d
Fix coding standards in Remote::FS specs
2013-12-20 00:11:05 +00:00
Thibault Jouan
96daed624f
Bump version to 0.1.5
2013-12-19 23:26:26 +00:00
Thibault Jouan
653a630645
Improve Env#target spec
2013-12-19 23:25:34 +00:00
Thibault Jouan
1ed17e6064
Fix Condition#! specs
2013-12-19 23:17:03 +00:00
Thibault Jouan
5fd4f3b371
Move Task::DSL#condition specs to better location
2013-12-19 22:49:20 +00:00
Thibault Jouan
921fc8d3f9
Refactor Remote::Environment spec
2013-12-19 22:49:20 +00:00
Thibault Jouan
ef0307fbb5
Improve small details in specs:
...
* Fix coding standards;
* Simplify some expectations (eq instead of be matcher);
* Expect identity on block instead of calling;
* Change some before call as oneliners;
* Avoid shadowing variable names;
* Improve wording where needed.
2013-12-19 22:46:56 +00:00
Thibault Jouan
f5224c7569
Improve wording in Env#initialize specs
2013-12-19 21:00:11 +00:00
Thibault Jouan
a80843699e
Improve Condition.evaluate specs
2013-12-19 20:57:05 +00:00
Thibault Jouan
fe1eb5bc1a
Simplify actions specs
2013-12-19 20:37:49 +00:00
Thibault Jouan
35621e1f5f
Implement condition DSL negated test prefix (no_*)
...
* Allow no_* to be used for every tests in condition DSL:
condition { no_has_env :shell, '/bin/sh' };
* Modify Test constructor to accept negated: named argument, implement
#negated? and #pass?;
* Rename #success? to #verify in all test classes.
2013-12-19 20:22:44 +00:00
Thibault Jouan
cfe9a009ae
Revert "Remove deprecated rspec option"
...
This reverts commit 5e6f5f4861 .
2013-12-19 20:21:24 +00:00
Thibault Jouan
b9e48a9cc4
Fix some wording issues in Test specs
2013-12-19 19:52:07 +00:00
Thibault Jouan
5e6f5f4861
Remove deprecated rspec option
2013-12-19 19:47:29 +00:00
Thibault Jouan
a692efe96d
Replace be_true' matchers with be true' in specs
2013-12-19 19:46:32 +00:00
Thibault Jouan
3b3542fc66
Fix an example in Task::DSL.evaluate specs
2013-12-19 19:45:37 +00:00
Thibault Jouan
217b8a203a
Add missing empty line in test spec
2013-10-01 19:38:17 +00:00
Thibault Jouan
a36b30dd3c
Bump version to 0.1.4
2013-10-01 19:38:09 +00:00
Thibault Jouan
85a47df547
Use SSH user name configured for a given target:
...
When a user is configured for the targeted host name, use it for SSH
authentification instead of the name of current user logged in.
* Modify Remote#user_name to use configured user name.
2013-09-28 20:07:36 +00:00
Thibault Jouan
768a6755de
Implement Remote#config:
...
Load SSH configuration for targeted host name.
2013-09-26 19:22:07 +00:00
Thibault Jouan
9985fceb63
Extract logic for current target ssh user name:
...
Add Remote#user_name method, with code returning which user name
will be used for SSH authentication.
2013-09-26 18:34:19 +00:00
Thibault Jouan
868c502531
Remove multibyte char from Remote::FS spec
2013-09-26 01:00:06 +00:00
Thibault Jouan
c281687bfb
Bump version to 0.1.3
2013-09-26 00:30:41 +00:00
Thibault Jouan
2cbe1726f7
Implement `has_file' condition keyword
2013-09-26 00:28:40 +00:00
Thibault Jouan
3492382968
Implement Remote::FS#has_file?
2013-09-26 00:28:40 +00:00
Thibault Jouan
91f2bc3567
Implement Remote#fs
2013-09-26 00:28:40 +00:00
Thibault Jouan
99710b0df9
Implement Remote::FS#sftp
2013-09-26 00:28:40 +00:00
Thibault Jouan
d240df0281
Add Remote::FS class
2013-09-26 00:28:40 +00:00
Thibault Jouan
8531c49e6d
Implement NetSSHStoryHelpers#sftp_story
2013-09-26 00:28:39 +00:00
Thibault Jouan
0529fab3c2
Import Net::SSH::Test::Channel code from net-sftp:
...
This class is included in net-ssh, but net-sftp adds some new methods
that we need for our tests. This code resides in net-sftp test helper,
and can't be required dynamicaly, this change adds a copy of the code we
need, hardcoded in NetSSHStoryHelpers.
2013-09-26 00:28:39 +00:00
Thibault Jouan
b2dbd60830
Add net-sftp gem dependency
2013-09-26 00:28:39 +00:00
Thibault Jouan
c01e143c86
Enable sftp subsystem in cucumber sshd config
2013-09-26 00:28:39 +00:00
Thibault Jouan
e51adbdefa
Bump version to 0.1.2
2013-09-26 00:20:39 +00:00
Thibault Jouan
9040420360
Improve net-ssh mock connection usage in specs
2013-09-24 21:08:01 +00:00
Thibault Jouan
e676eb40d6
Transform Tests class in a module
2013-09-23 21:44:50 +00:00
Thibault Jouan
0307d6020a
Remove uneeded once() calls from spec
2013-09-22 22:38:13 +00:00
Thibault Jouan
36cf2e041f
Improve wording in sh cucumber feature
2013-09-07 21:40:59 +00:00
Thibault Jouan
85109afd46
Fix missing Then keywords in cucumber features
2013-09-07 21:40:25 +00:00
Thibault Jouan
33a2b9de5a
Refactor producer invocation in cucumber features:
...
Use "When I successfully execute" instead of "When I execute", and
assert that exit status code was successful in this new step.
2013-09-06 20:10:28 +00:00
Thibault Jouan
0a9f7e38af
Simplify Task::DSL.evaluate spec
2013-08-22 10:45:12 +00:00
Thibault Jouan
782c8f8498
Fix coding standards in specs (parenthesis usage)
2013-08-22 00:23:07 +00:00
Thibault Jouan
a555df40c6
Refactor interpreter spec
2013-08-22 00:22:16 +00:00
Thibault Jouan
856e78245f
Remove extra empty line in echo action spec
2013-08-22 00:21:43 +00:00
Thibault Jouan
7a1c01a299
Remove empty cucumber support file
2013-08-22 00:11:09 +00:00
Thibault Jouan
8247f3a973
Bump version to 0.1.1
2013-08-20 03:53:38 +00:00
Thibault Jouan
f42fd856ff
Fix missing gem description
2013-08-20 03:53:22 +00:00
Thibault Jouan
5d3173977f
Bump version to 0.1.0
2013-08-20 03:16:45 +00:00
Thibault Jouan
04afc82a29
Implement `has_env' condition keyword
2013-08-20 03:03:17 +00:00
Thibault Jouan
b0ea7d876e
Implement Remote#environment:
...
Build and return a Remote::Environment instance, with the output of
`env` command execution.
2013-08-20 03:03:07 +00:00
Thibault Jouan
513ba4eedb
Implement basic Remote::Environment class:
...
Represent a registry for remote environment variables, will follow an
API similar to Hash except the constructor. Currently only #has_key? is
implemented.
2013-08-20 02:13:54 +00:00
Thibault Jouan
ed99c191e0
Build conditions with DSL evaluated tests:
...
In Condition:
* Modify constructor to accepts tests and a default return value;
* Implement #met?;
* Modify #! so that it return the negated value returned by #met?.
In Condition::DSL:
* Modify .evaluate to build the condition with tests and the value
returned by a the evaluated condition block.
Add a basic Test base class, with env and arguments as attributes.
Add some spec helpers to build some easily testable kind of Test
instances (as test doubles).
2013-08-18 00:29:36 +00:00
Thibault Jouan
00a11e159f
Use instance_eval in Condition::DSL#evaluate:
...
Use instance_eval so that the assigned block is evaluated inside the
DSL sandbox instance, giving access to all required methods and instance
variables.
2013-08-18 00:29:36 +00:00
Thibault Jouan
3a0ce82799
Improve Condition DSL framework:
...
Add the necessary API so that we can implement new tests easily as new
standalone classes.
In Condition::DSL:
* Add #tests accessor;
* Modify constructor so that it accepts the env;
* Implement .define_test(keyword, class) method.
2013-08-18 00:29:36 +00:00
Thibault Jouan
639bdc1c73
Implement basic condition DSL framework for tests:
...
Instead of interrupting task evaluation when condition is not met,
allow the whole task to be evaluated (including condition and
evaluation) so that the interpreter will get all tasks actions (whether
condition is met or not) and be able to query the condition.
* Modify Interpreter#process_task: test if task condition is met before
applying the actions;
* Implement condition handling in Task and Task::DSL;
* Implement Condition and Condition::DSL (useless as they are, but
needed to implement later test keywords as part of the condition DSL.
2013-08-18 00:29:14 +00:00
Thibault Jouan
0008f0255a
Fix confusing local variable name in Task spec
2013-08-17 00:45:09 +00:00
Thibault Jouan
b4e6fa3ef6
Fix sort order of main internal requires
2013-08-17 00:44:28 +00:00
Thibault Jouan
b6adc0ba43
Fix wording in Task#initialize spec
2013-08-16 21:08:33 +00:00
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