caliph 0.3.0 → 0.3.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/caliph/command-line-dsl.rb +7 -1
- data/lib/caliph/command-run-result.rb +2 -1
- data/lib/caliph/shell-escaped.rb +4 -0
- data/lib/caliph/shell.rb +1 -1
- data/lib/caliph/testing/mock-command-line.rb +18 -13
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dc5ce22c06862354326d17dd565011e0a1400c2b
|
4
|
+
data.tar.gz: e807f8ba5aee6acbff65f4914e07a45cfe041e77
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 633740377edb77bc21209b85ef40fc0e12951e31deef6889311c34ba1e3175a355dc35105ee2bbe85f96681c3d5bbaea28bbd534f5eb76c297e2d7fc00119453
|
7
|
+
data.tar.gz: 36bf32376cd2e8bc619d133b0cae4e727bd64a8d7aff2ae78d5b7d8402f941d528272d861e51a00f97386842eb8b3c5a7d66bce27a2de90cce3bf8387ee9f36c
|
@@ -10,7 +10,13 @@ module Caliph
|
|
10
10
|
end
|
11
11
|
|
12
12
|
def escaped_command(*args, &block)
|
13
|
-
|
13
|
+
command = nil
|
14
|
+
if args.length == 1 and args.first.is_a? CommandLine
|
15
|
+
command = args.first
|
16
|
+
else
|
17
|
+
command = cmd(*args, &block)
|
18
|
+
end
|
19
|
+
ShellEscaped.new(command)
|
14
20
|
end
|
15
21
|
end
|
16
22
|
end
|
@@ -56,6 +56,7 @@ module Caliph
|
|
56
56
|
rescue
|
57
57
|
return false
|
58
58
|
end
|
59
|
+
alias succeeds? succeeded?
|
59
60
|
|
60
61
|
# Nicely formatted output of stdout and stderr - won't be intermixed, which
|
61
62
|
# may be different than what you'd see live in the shell
|
@@ -70,7 +71,7 @@ module Caliph
|
|
70
71
|
when 0
|
71
72
|
return exit_code
|
72
73
|
else
|
73
|
-
fail "Command #{@command.
|
74
|
+
fail "Command '#{@command.string_format}' failed with exit status #{exit_code}: \n#{format_streams}"
|
74
75
|
end
|
75
76
|
end
|
76
77
|
|
data/lib/caliph/shell-escaped.rb
CHANGED
data/lib/caliph/shell.rb
CHANGED
@@ -56,7 +56,7 @@ module Caliph
|
|
56
56
|
end
|
57
57
|
#raise InvalidCommand, "not a command line: #{command_line.inspect}"
|
58
58
|
#unless command_line.is_a? CommandLine
|
59
|
-
raise IncompleteCommand, "cannot run #{command_line}" unless command_line.valid?
|
59
|
+
raise IncompleteCommand, "cannot run #{command_line.inspect}" unless command_line.valid?
|
60
60
|
command_line
|
61
61
|
end
|
62
62
|
protected :normalize_command_line
|
@@ -24,44 +24,49 @@ module Caliph
|
|
24
24
|
alias exit_status exit_code
|
25
25
|
end
|
26
26
|
|
27
|
-
class
|
28
|
-
def self.execute(*args)
|
29
|
-
|
27
|
+
class MockShell
|
28
|
+
def self.execute(command_line, *args)
|
29
|
+
execute_string(command_line.string_format)
|
30
|
+
end
|
31
|
+
|
32
|
+
def self.execute_string(string)
|
33
|
+
fail "Command line executed in specs without 'expect_command' or 'expect_some_commands' (string was: #{string})"
|
30
34
|
end
|
31
35
|
end
|
32
36
|
|
33
37
|
module CommandLineExampleGroup
|
34
38
|
include CommandLineDSL
|
35
39
|
module MockingExecute
|
36
|
-
def execute
|
37
|
-
Caliph::
|
40
|
+
def execute(command)
|
41
|
+
Caliph::MockShell.execute(command)
|
38
42
|
end
|
39
43
|
end
|
40
44
|
|
41
|
-
|
42
45
|
def self.included(group)
|
43
46
|
group.before :each do
|
44
|
-
@original_execute = Caliph::
|
45
|
-
|
46
|
-
|
47
|
+
@original_execute = Caliph::Shell.instance_method(:execute)
|
48
|
+
@reporting_stream = StringIO.new
|
49
|
+
unless MockingExecute > Caliph::Shell
|
50
|
+
Caliph::Shell.send(:include, MockingExecute)
|
47
51
|
end
|
48
|
-
Caliph::
|
52
|
+
Caliph::Shell.send(:remove_method, :execute)
|
53
|
+
Caliph::Shell.any_instance.stub(:output_stream => @reporting_stream)
|
49
54
|
end
|
50
55
|
|
51
56
|
group.after :each do
|
52
|
-
Caliph::
|
57
|
+
Caliph::Shell.send(:define_method, :execute, @original_execute)
|
53
58
|
end
|
54
59
|
end
|
55
60
|
|
56
61
|
#Registers indifference as to exactly what commands get called
|
57
62
|
def expect_some_commands
|
58
|
-
Caliph::
|
63
|
+
Caliph::MockShell.should_receive(:execute_string).any_number_of_times.and_return(MockCommandResult.create(0))
|
59
64
|
end
|
60
65
|
|
61
66
|
#Registers an expectation about a command being run - expectations are
|
62
67
|
#ordered
|
63
68
|
def expect_command(cmd, *result)
|
64
|
-
Caliph::
|
69
|
+
Caliph::MockShell.should_receive(:execute_string, :expected_from => caller(1)[0]).with(cmd).ordered.and_return(MockCommandResult.create(*result))
|
65
70
|
end
|
66
71
|
end
|
67
72
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: caliph
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Evan Dorn
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-07-
|
12
|
+
date: 2014-07-17 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: |2
|
15
15
|
TDD-suitable Ruby tool for generating command-line commands via an OOP interface.
|
@@ -102,7 +102,7 @@ rdoc_options:
|
|
102
102
|
- --main
|
103
103
|
- doc/README
|
104
104
|
- --title
|
105
|
-
- caliph-0.3.
|
105
|
+
- caliph-0.3.1 Documentation
|
106
106
|
require_paths:
|
107
107
|
- lib/
|
108
108
|
required_ruby_version: !ruby/object:Gem::Requirement
|