caliph 0.1.2 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/caliph/command-chain.rb +12 -0
- data/lib/caliph/command-line-dsl.rb +14 -1
- data/lib/caliph/command-line.rb +1 -2
- data/lib/caliph/define-op.rb +4 -0
- data/spec/command-line-dsl.rb +18 -1
- 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: d4a677cfc00224f91e1cddbfd66ecf9310071deb
|
4
|
+
data.tar.gz: ba9069ed6aff7c72b2e1c5b9b40c00c694970a37
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 995b6ad0b4898b4f51ac2ce098a7fe92558773a63747ccb28db6d8324305ca3c43dcaaddafddc0b60843e0cb22f95c7cb154d4a8c54c10906a8291990f7e64d6
|
7
|
+
data.tar.gz: 125d12f8318ff484e2e74a67794dbf12569d66d5612fa62a8c9ccf3a800552d52ec0bf25be165fe5ff420258974789ebd7a8e19cfcb2bdf47675901bd632a667
|
data/lib/caliph/command-chain.rb
CHANGED
@@ -30,6 +30,18 @@ module Caliph
|
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
33
|
+
def redirect_to(stream, path)
|
34
|
+
@commands.last.redirect_to(stream, path)
|
35
|
+
end
|
36
|
+
|
37
|
+
def redirect_from(path, stream)
|
38
|
+
@commands.last.redirect_from(path, stream)
|
39
|
+
end
|
40
|
+
|
41
|
+
def copy_stream_to(from, to)
|
42
|
+
@commands.last.copy_stream_to(from, to)
|
43
|
+
end
|
44
|
+
|
33
45
|
def name
|
34
46
|
@name || @commands.last.name
|
35
47
|
end
|
@@ -1,7 +1,20 @@
|
|
1
1
|
module Caliph
|
2
2
|
module CommandLineDSL
|
3
|
+
class Watcher
|
4
|
+
attr_accessor :apex
|
5
|
+
|
6
|
+
def inspect
|
7
|
+
"Watcher@#{"%#0x" % apex.object_id}"
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
3
11
|
def cmd(*args, &block)
|
4
|
-
|
12
|
+
watcher = Watcher.new
|
13
|
+
cmd = CommandLine.new(*args)
|
14
|
+
cmd.definition_watcher = watcher
|
15
|
+
watcher.apex = cmd
|
16
|
+
yield cmd if block_given?
|
17
|
+
watcher.apex
|
5
18
|
end
|
6
19
|
|
7
20
|
def escaped_command(*args, &block)
|
data/lib/caliph/command-line.rb
CHANGED
@@ -20,6 +20,7 @@ module Caliph
|
|
20
20
|
end
|
21
21
|
|
22
22
|
attr_accessor :name, :executable, :options, :env, :output_stream, :verbose
|
23
|
+
attr_accessor :definition_watcher
|
23
24
|
attr_reader :redirections
|
24
25
|
|
25
26
|
alias_method :command_environment, :env
|
@@ -59,8 +60,6 @@ module Caliph
|
|
59
60
|
self
|
60
61
|
end
|
61
62
|
|
62
|
-
# Waits for the process to complete. If this takes longer that
|
63
|
-
# {consume_timeout},
|
64
63
|
def redirect_from(path, stream)
|
65
64
|
@redirections << "#{stream}<#{path}"
|
66
65
|
end
|
data/lib/caliph/define-op.rb
CHANGED
data/spec/command-line-dsl.rb
CHANGED
@@ -3,6 +3,24 @@ require 'caliph/command-line-dsl'
|
|
3
3
|
describe Caliph::CommandLineDSL do
|
4
4
|
include described_class
|
5
5
|
|
6
|
+
describe "complex commands in a block" do
|
7
|
+
let :command do
|
8
|
+
cmd("cd", "/tmp/trash") do |cmd|
|
9
|
+
cmd.redirect_stderr "file1"
|
10
|
+
cmd &= %w{rm -rf *}
|
11
|
+
cmd.redirect_stderr "file2"
|
12
|
+
end #=> returns whole chain
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should define commands" do
|
16
|
+
expect(command).to be_a(Caliph::CommandChain)
|
17
|
+
expect(command.commands.size).to eq(2)
|
18
|
+
expect(command.commands[0]).to be_an_instance_of(Caliph::CommandLine)
|
19
|
+
expect(command.commands[1]).to be_an_instance_of(Caliph::CommandLine)
|
20
|
+
expect(command.command).to eq("cd /tmp/trash 2>file1 && rm -rf * 2>file2")
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
6
24
|
describe "using the - operator" do
|
7
25
|
let :command do
|
8
26
|
cmd("sudo") - ["gem", "install", "bundler"]
|
@@ -33,7 +51,6 @@ describe Caliph::CommandLineDSL do
|
|
33
51
|
|
34
52
|
describe "using the & operator" do
|
35
53
|
let :command do
|
36
|
-
p method(:cmd).source_location
|
37
54
|
cmd("cd", "/tmp/trash") & %w{rm -rf *}
|
38
55
|
end
|
39
56
|
|
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.
|
4
|
+
version: 0.2.0
|
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-16 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.
|
@@ -101,7 +101,7 @@ rdoc_options:
|
|
101
101
|
- --main
|
102
102
|
- doc/README
|
103
103
|
- --title
|
104
|
-
- caliph-0.
|
104
|
+
- caliph-0.2.0 Documentation
|
105
105
|
require_paths:
|
106
106
|
- lib/
|
107
107
|
required_ruby_version: !ruby/object:Gem::Requirement
|