cmds 0.0.9 → 0.1.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.
@@ -2,7 +2,7 @@ require 'spec_helper'
2
2
 
3
3
  describe "Cmds.chomp" do
4
4
  it "gets echo output" do
5
- expect( Cmds.chomp "echo %s", ["hey there!"] ).to eq "hey there!"
5
+ expect( Cmds.chomp "echo %s", "hey there!" ).to eq "hey there!"
6
6
  end
7
7
 
8
8
  it "reads input" do
@@ -16,7 +16,7 @@ end # Cmds.chomp
16
16
 
17
17
  describe "Cmds.chomp!" do
18
18
  it "gets echo output" do
19
- expect( Cmds.chomp! "echo %s", ["hey there!"] ).to eq "hey there!"
19
+ expect( Cmds.chomp! "echo %s", "hey there!" ).to eq "hey there!"
20
20
  end
21
21
 
22
22
  it "reads input" do
@@ -34,12 +34,12 @@ end # Cmds.chomp!
34
34
 
35
35
  describe "Cmds#chomp" do
36
36
  it "gets echo output" do
37
- expect( Cmds.new("echo %s").chomp ["hey there!"] ).to eq "hey there!"
37
+ expect( Cmds::Cmd.new("echo %s").chomp "hey there!" ).to eq "hey there!"
38
38
  end
39
39
 
40
40
  it "reads input" do
41
41
  expect(
42
- Cmds.new("ruby -e %{script}").chomp(script: "puts STDIN.read") {
42
+ Cmds::Cmd.new("ruby -e %{script}").chomp(script: "puts STDIN.read") {
43
43
  "hey there!"
44
44
  }
45
45
  ).to eq "hey there!"
@@ -48,18 +48,18 @@ end # Cmds#chomp
48
48
 
49
49
  describe "Cmds#chomp!" do
50
50
  it "gets echo output" do
51
- expect( Cmds.new("echo %s").chomp! ["hey there!"] ).to eq "hey there!"
51
+ expect( Cmds::Cmd.new("echo %s").chomp! "hey there!" ).to eq "hey there!"
52
52
  end
53
53
 
54
54
  it "reads input" do
55
55
  expect(
56
- Cmds.new("ruby -e %{script}").chomp!(script: "puts STDIN.read") {
56
+ Cmds::Cmd.new("ruby -e %{script}").chomp!(script: "puts STDIN.read") {
57
57
  "hey there!"
58
58
  }
59
59
  ).to eq "hey there!"
60
60
  end
61
61
 
62
62
  it "errors when the command fails" do
63
- expect { Cmds.new("false").chomp! }.to raise_error SystemCallError
63
+ expect { Cmds::Cmd.new("false").chomp! }.to raise_error SystemCallError
64
64
  end
65
65
  end # Cmds#chomp!
@@ -2,7 +2,7 @@ require 'spec_helper'
2
2
 
3
3
  describe "Cmds::curry" do
4
4
  it "currys" do
5
- base = Cmds.new "#{ ECHO_CMD } <%= x %> <%= y %>"
5
+ base = Cmds::Cmd.new "#{ ECHO_CMD } <%= x %> <%= y %>"
6
6
 
7
7
  x1 = base.curry x: 1
8
8
  x2 = base.curry x: 2
@@ -2,7 +2,7 @@ require 'spec_helper'
2
2
 
3
3
  describe "Cmds.err" do
4
4
  it "gets echo error output" do
5
- expect( Cmds.err "echo %s 1>&2", ["hey there!"] ).to eq "hey there!\n"
5
+ expect( Cmds.err "echo %s 1>&2", "hey there!" ).to eq "hey there!\n"
6
6
  end
7
7
 
8
8
  it "reads input" do
@@ -16,14 +16,17 @@ end # Cmds.err
16
16
 
17
17
  describe "Cmds#err" do
18
18
  it "gets echo error output" do
19
- expect( Cmds.new("echo %s 1>&2").err ["hey there!"] ).to eq "hey there!\n"
19
+ expect(
20
+ Cmds::Cmd.new("echo %s 1>&2").err "hey there!"
21
+ ).to eq "hey there!\n"
20
22
  end
21
23
 
22
24
  it "reads input" do
23
25
  expect(
24
- Cmds.new("ruby -e %{script}").err(script: "$stderr.puts STDIN.read") {
25
- "hey there!"
26
- }
26
+ Cmds::Cmd.new("ruby -e %{script}").
27
+ err(script: "$stderr.puts STDIN.read") {
28
+ "hey there!"
29
+ }
27
30
  ).to eq "hey there!\n"
28
31
  end
29
- end # Cmds#err
32
+ end # Cmds.err
@@ -1,13 +1,13 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe "Cmds::error?" do
3
+ describe "Cmds.error?" do
4
4
  it "works through instance method" do
5
- expect( Cmds.new("true").error? ).to be false
6
- expect( Cmds.new("false").error? ).to be true
5
+ expect( Cmds::Cmd.new("true").error? ).to be false
6
+ expect( Cmds::Cmd.new("false").error? ).to be true
7
7
  end
8
8
 
9
9
  it "works through class method" do
10
- expect( Cmds.error? "true").to be false
11
- expect( Cmds.error? "false").to be true
10
+ expect( Cmds.error? "true" ).to be false
11
+ expect( Cmds.error? "false" ).to be true
12
12
  end
13
- end # Cmds::error?
13
+ end # Cmds.error?
data/spec/cmds/ok_spec.rb CHANGED
@@ -2,8 +2,8 @@ require 'spec_helper'
2
2
 
3
3
  describe "Cmds::ok?" do
4
4
  it "works through instance method" do
5
- expect( Cmds.new("true").ok? ).to be true
6
- expect( Cmds.new("false").ok? ).to be false
5
+ expect( Cmds::Cmd.new("true").ok? ).to be true
6
+ expect( Cmds::Cmd.new("false").ok? ).to be false
7
7
  end
8
8
 
9
9
  it "works through class method" do
@@ -2,7 +2,7 @@ require 'spec_helper'
2
2
 
3
3
  describe "Cmds.out" do
4
4
  it "gets echo output" do
5
- expect( Cmds.out "echo %s", ["hey there!"] ).to eq "hey there!\n"
5
+ expect( Cmds.out "echo %s", "hey there!" ).to eq "hey there!\n"
6
6
  end
7
7
 
8
8
  it "reads input" do
@@ -16,7 +16,7 @@ end # Cmds.out
16
16
 
17
17
  describe "Cmds.out!" do
18
18
  it "gets echo output" do
19
- expect( Cmds.out! "echo %s", ["hey there!"] ).to eq "hey there!\n"
19
+ expect( Cmds.out! "echo %s", "hey there!" ).to eq "hey there!\n"
20
20
  end
21
21
 
22
22
  it "reads input" do
@@ -34,12 +34,12 @@ end # Cmds.out!
34
34
 
35
35
  describe "Cmds#out" do
36
36
  it "gets echo output" do
37
- expect( Cmds.new("echo %s").out ["hey there!"] ).to eq "hey there!\n"
37
+ expect( Cmds::Cmd.new("echo %s").out "hey there!" ).to eq "hey there!\n"
38
38
  end
39
39
 
40
40
  it "reads input" do
41
41
  expect(
42
- Cmds.new("ruby -e %{script}").out(script: "puts STDIN.read") {
42
+ Cmds::Cmd.new("ruby -e %{script}").out(script: "puts STDIN.read") {
43
43
  "hey there!"
44
44
  }
45
45
  ).to eq "hey there!\n"
@@ -48,18 +48,18 @@ end # Cmds#out
48
48
 
49
49
  describe "Cmds#out!" do
50
50
  it "gets echo output" do
51
- expect( Cmds.new("echo %s").out! ["hey there!"] ).to eq "hey there!\n"
51
+ expect( Cmds::Cmd.new("echo %s").out! "hey there!" ).to eq "hey there!\n"
52
52
  end
53
53
 
54
54
  it "reads input" do
55
55
  expect(
56
- Cmds.new("ruby -e %{script}").out!(script: "puts STDIN.read") {
56
+ Cmds::Cmd.new("ruby -e %{script}").out!(script: "puts STDIN.read") {
57
57
  "hey there!"
58
58
  }
59
59
  ).to eq "hey there!\n"
60
60
  end
61
61
 
62
62
  it "errors when the command fails" do
63
- expect { Cmds.new("false").out! }.to raise_error SystemCallError
63
+ expect { Cmds::Cmd.new("false").out! }.to raise_error SystemCallError
64
64
  end
65
65
  end # Cmds#out!
@@ -1,9 +1,9 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe "Cmds::sub" do
3
+ describe "Cmds.prepare" do
4
4
  it "should work with a keyword substitutions" do
5
5
  expect(
6
- Cmds.sub "psql <%= opts %> <%= database %> < <%= filepath %>",
6
+ Cmds.prepare "psql <%= opts %> <%= database %> < <%= filepath %>",
7
7
  [],
8
8
  database: "blah",
9
9
  filepath: "/where ever/it/is.psql",
@@ -17,41 +17,39 @@ describe "Cmds::sub" do
17
17
 
18
18
  it "should work with positional substitutions" do
19
19
  expect(
20
- Cmds.sub "psql <%= arg %> <%= arg %> < <%= arg %>", [
20
+ Cmds.prepare "psql <%= arg %> <%= arg %> < <%= arg %>",
21
21
  {
22
22
  username: "bingo bob",
23
23
  host: "localhost",
24
24
  port: 12345,
25
25
  },
26
26
  "blah",
27
- "/where ever/it/is.psql",
28
- ]
27
+ "/where ever/it/is.psql"
29
28
  ).to eq 'psql --host=localhost --port=12345 --username=bingo\ bob blah < /where\ ever/it/is.psql'
30
29
  end
31
30
 
32
31
  it "should work with no arguments" do
33
32
  expect(
34
- Cmds.sub "blah <% if true %>blow<% end %>"
33
+ Cmds.prepare "blah <% if true %>blow<% end %>"
35
34
  ).to eq "blah blow"
36
35
  end
37
-
36
+
38
37
  it "should work with positional and keyword substitutions" do
39
38
  expect(
40
- Cmds.sub "blah <%= arg %> <%= y %>", ["ex"], y: "why"
39
+ Cmds.prepare "blah <%= arg %> <%= y %>", "ex", y: "why"
41
40
  ).to eq "blah ex why"
42
41
  end
43
-
42
+
44
43
  it "should work with direct reference to args" do
45
44
  expect(
46
- Cmds.sub "psql <%= @args[2] %> <%= @args[0] %> < <%= @args[1] %>", [
45
+ Cmds.prepare "psql <%= @args[1] %> <%= @args[0] %> < <%= @args[2] %>",
47
46
  "blah",
48
- "/where ever/it/is.psql",
49
47
  {
50
48
  username: "bingo bob",
51
49
  host: "localhost",
52
50
  port: 12345,
53
51
  },
54
- ]
52
+ "/where ever/it/is.psql"
55
53
  ).to eq 'psql --host=localhost --port=12345 --username=bingo\ bob blah < /where\ ever/it/is.psql'
56
54
  end
57
55
 
@@ -68,7 +66,7 @@ describe "Cmds::sub" do
68
66
 
69
67
  it "should work when value is present" do
70
68
  expect(
71
- Cmds.sub tpl, [], current_host: 'xyz',
69
+ Cmds.prepare tpl, current_host: 'xyz',
72
70
  domain: 'com.nrser.blah',
73
71
  filepath: '/tmp/export.plist'
74
72
  ).to eq "defaults -currentHost xyz export com.nrser.blah /tmp/export.plist"
@@ -76,7 +74,7 @@ describe "Cmds::sub" do
76
74
 
77
75
  it "should work when value is missing" do
78
76
  expect(
79
- Cmds.sub tpl, [], domain: 'com.nrser.blah',
77
+ Cmds.prepare tpl, domain: 'com.nrser.blah',
80
78
  filepath: '/tmp/export.plist'
81
79
  ).to eq "defaults export com.nrser.blah /tmp/export.plist"
82
80
  end
@@ -94,7 +92,7 @@ describe "Cmds::sub" do
94
92
 
95
93
  it "should loop correctly and escape values" do
96
94
  expect(
97
- Cmds.sub tpl, [], domain: "com.nrser.blah",
95
+ Cmds.prepare tpl, domain: "com.nrser.blah",
98
96
  key: 'k',
99
97
  values: {x: '<ex>', y: 'why'}
100
98
  ).to eq "defaults write com.nrser.blah k -dict x \\<ex\\> y why"
@@ -109,54 +107,44 @@ describe "Cmds::sub" do
109
107
  }
110
108
 
111
109
  it "should omit the missing subs" do
112
- expect(Cmds.sub tpl, [], x: "ex", z: "zee").to eq "blah ex zee"
110
+ expect(Cmds.prepare tpl, x: "ex", z: "zee").to eq "blah ex zee"
113
111
  end
114
112
 
115
113
  it "should omit a sub if it's value is false" do
116
- expect(Cmds.sub "%{x?}", [], x: false).to eq ""
114
+ expect(Cmds.prepare "%{x?}", x: false).to eq ""
117
115
  end
118
116
  end
119
117
 
120
118
  context "errors" do
121
- it "should raise TypeError if subs in not an array or a hash" do
122
- expect{Cmds.sub "a <%= b %> <%= c %>", "dee!"}.to raise_error TypeError
123
- end
124
-
125
119
  it "should error when a kwarg is missing" do
126
120
  expect {
127
- Cmds.sub "a <%= b %> <%= c %>", [], b: 'bee!'
121
+ Cmds.prepare "a <%= b %> <%= c %>", b: 'bee!'
128
122
  }.to raise_error KeyError
129
123
  end
130
124
 
131
125
  it "should error when an arg is missing" do
132
126
  expect {
133
- Cmds.sub "a <%= arg %> <%= arg %>", ['bee!']
127
+ Cmds.prepare "a <%= arg %> <%= arg %>", 'bee!'
134
128
  }.to raise_error IndexError
135
129
  end
136
-
137
- it "should error when more than two args are passed" do
138
- expect {
139
- Cmds.sub "blah", 1, 2, 3
140
- }.to raise_error ArgumentError
141
- end
142
130
  end # errors
143
131
 
144
132
  context "shortcuts" do
145
133
  it "should replace %s" do
146
134
  expect(
147
- Cmds.sub "./test/echo_cmd.rb %s", ["hello world!"]
135
+ Cmds.prepare "./test/echo_cmd.rb %s", "hello world!"
148
136
  ).to eq './test/echo_cmd.rb hello\ world\!'
149
137
  end
150
138
 
151
139
  it "should replace %{key}" do
152
140
  expect(
153
- Cmds.sub "./test/echo_cmd.rb %{key}", [], key: "hello world!"
141
+ Cmds.prepare "./test/echo_cmd.rb %{key}", key: "hello world!"
154
142
  ).to eq './test/echo_cmd.rb hello\ world\!'
155
143
  end
156
144
 
157
145
  it "should replace %<key>s" do
158
146
  expect(
159
- Cmds.sub "./test/echo_cmd.rb %<key>s", [], key: "hello world!"
147
+ Cmds.prepare "./test/echo_cmd.rb %<key>s", key: "hello world!"
160
148
  ).to eq './test/echo_cmd.rb hello\ world\!'
161
149
  end
162
150
  end # shortcuts
@@ -5,7 +5,7 @@ describe "Cmds::stream" do
5
5
 
6
6
  it "writes to $stdout and $stderr by default" do
7
7
  out, err = temp_outs do
8
- Cmds.new('./test/tick.rb <%= times %>').stream times: times
8
+ Cmds::Cmd.new('./test/tick.rb <%= times %>').stream times: times
9
9
  end
10
10
 
11
11
  expect(out).to eq times.times.map{|_| "#{_}\n"}.join
@@ -15,7 +15,7 @@ describe "Cmds::stream" do
15
15
  it "handles writes in blocks" do
16
16
  out_count = 0
17
17
  err_count = 0
18
- Cmds.new('./test/tick.rb <%= times %>').stream(times: times) do |io|
18
+ Cmds::Cmd.new('./test/tick.rb <%= times %>').stream(times: times) do |io|
19
19
  io.on_out do |line|
20
20
  out_count += 1
21
21
  end
@@ -32,7 +32,7 @@ describe "Cmds::stream" do
32
32
  it "accepts string value input from a block" do
33
33
 
34
34
  out, err = temp_outs do
35
- Cmds.new("wc -l").stream do
35
+ Cmds::Cmd.new("wc -l").stream do
36
36
  <<-BLOCK
37
37
  one
38
38
  two
@@ -47,7 +47,7 @@ describe "Cmds::stream" do
47
47
 
48
48
  it "accepts stream value input from a block" do
49
49
  out, err = temp_outs do
50
- Cmds.new("wc -l").stream do
50
+ Cmds::Cmd.new("wc -l").stream do
51
51
  File.open "./test/lines.txt"
52
52
  end
53
53
  end
@@ -0,0 +1,119 @@
1
+ require 'spec_helper'
2
+
3
+ describe "Cmds.tokenize_option" do
4
+ context "default options" do
5
+ it "handles integer value" do
6
+ expect(Cmds.tokenize_option 'x', 1).to eq ["-x 1"]
7
+ expect(Cmds.tokenize_option 'blah', 1).to eq ["--blah=1"]
8
+ end
9
+
10
+ it "handles string value" do
11
+ expect(
12
+ Cmds.tokenize_option 'x', "hey there!"
13
+ ).to eq ["-x hey\\ there\\!"]
14
+
15
+ expect(
16
+ Cmds.tokenize_option 'blah', "hey there!"
17
+ ).to eq ["--blah=hey\\ there\\!"]
18
+ end
19
+
20
+ it "emits just name token for true value" do
21
+ expect(Cmds.tokenize_option 'x', true).to eq ["-x"]
22
+ expect(Cmds.tokenize_option 'blah', true).to eq ["--blah"]
23
+ end
24
+
25
+ it "omits token for false value" do
26
+ expect(Cmds.tokenize_option 'x', false).to eq []
27
+ expect(Cmds.tokenize_option 'blah', false).to eq []
28
+ end
29
+
30
+ it "omits token for nil value" do
31
+ expect(Cmds.tokenize_option 'x', nil).to eq []
32
+ expect(Cmds.tokenize_option 'blah', nil).to eq []
33
+ end
34
+ end # default options
35
+
36
+ describe "array_mode option" do
37
+ context "array_mode default" do
38
+ it "emits joined tokens for array value" do
39
+ expect(
40
+ Cmds.tokenize_option 'b', [1, 2, 3]
41
+ ).to eq ['-b 1,2,3']
42
+
43
+ expect(
44
+ Cmds.tokenize_option 'blah', [1, 2, 3]
45
+ ).to eq ['--blah=1,2,3']
46
+ end
47
+
48
+ it "flattens nested arrays" do
49
+ expect(
50
+ Cmds.tokenize_option 'blah', [1, [:a, [:b, 3]]]
51
+ ).to eq ['--blah=1,a,b,3']
52
+ end
53
+ end # default
54
+
55
+ context "array_mode = :join" do
56
+ def f(name, value)
57
+ Cmds.tokenize_option name, value, array_mode: :join
58
+ end
59
+
60
+ it "emits joined tokens for array value" do
61
+ expect(f 'b', [1, 2, 3]).to eq ['-b 1,2,3']
62
+
63
+ expect(f 'blah', [1, 2, 3]).to eq ['--blah=1,2,3']
64
+ end
65
+
66
+ it "flattens nested arrays" do
67
+ expect(f 'blah', [1, [:a, [:b, 3]]]).to eq ['--blah=1,a,b,3']
68
+ end
69
+
70
+ describe "array_join_string option" do
71
+ context "array_join_string = ', ' (has space in it)" do
72
+ def f(name, value)
73
+ Cmds.tokenize_option name, value,
74
+ array_mode: :join,
75
+ array_join_string: ', '
76
+ end
77
+
78
+ it "encodes the value as a single shell token" do
79
+ tokens = f 'b', [1, 2, 3]
80
+ expect(f 'b', [1, 2, 3]).to eq ['-b 1,\\ 2,\\ 3']
81
+
82
+ expect(tokens[0].shellsplit).to eq ['-b', '1, 2, 3']
83
+ end
84
+ end
85
+ end # array_join_string option
86
+ end # array_mode = :join
87
+
88
+ context "array_mode = :repeat" do
89
+ def f(name, value)
90
+ Cmds.tokenize_option name, value, array_mode: :repeat
91
+ end
92
+
93
+ it "emits multiple tokens for array value" do
94
+ expect(f 'b', [1, 2, 3]).to eq ['-b 1', '-b 2', '-b 3']
95
+ expect(f 'blah', [1, 2, 3]).to eq ['--blah=1', '--blah=2', '--blah=3']
96
+ end
97
+
98
+ it "flattens nested arrays" do
99
+ expect(f 'blah', [1, [:a, [:b, 3]]]).
100
+ to eq ['--blah=1', '--blah=a', '--blah=b', '--blah=3']
101
+ end
102
+ end # array_mode = :repeat
103
+
104
+ context "array_mode = :json" do
105
+ def f(name, value)
106
+ Cmds.tokenize_option name, value, array_mode: :json
107
+ end
108
+
109
+ it "emits single json token for array value" do
110
+ short_tokens = f 'b', [1, 2, 3]
111
+
112
+ expect(short_tokens.length).to be 1
113
+ expect(JSON.load short_tokens[0].shellsplit[1]).to eq [1, 2, 3]
114
+ end
115
+ end # array_mode = :json
116
+
117
+ end # array_mode option
118
+
119
+ end # .tokenize_option
data/spec/cmds_spec.rb CHANGED
@@ -4,4 +4,15 @@ describe Cmds do
4
4
  it 'has a version number' do
5
5
  expect(Cmds::VERSION).not_to be nil
6
6
  end
7
+
8
+ it "has dees syntax" do
9
+ expect(Cmds.chomp! "echo 'here'").to eq 'here'
10
+
11
+ expect(
12
+ Cmds::Cmd.new("head %{opts} %s").
13
+ prepare("/dev/random", opts: {c: 64})
14
+ ).to eq "head -c 64 /dev/random"
15
+
16
+ # expect(Cmds.chomp! "echo %s", 'here').to eq 'here'
17
+ end
7
18
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cmds
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - nrser
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-10-14 00:00:00.000000000 Z
11
+ date: 2017-03-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nrser
@@ -138,18 +138,24 @@ files:
138
138
  - Rakefile
139
139
  - ansible/dev.yml
140
140
  - ansible/hosts
141
+ - bin/rake
142
+ - bin/rspec
141
143
  - cmds.gemspec
142
144
  - lib/cmds.rb
143
- - lib/cmds/capture.rb
145
+ - lib/cmds/cmd.rb
144
146
  - lib/cmds/debug.rb
145
147
  - lib/cmds/erb_context.rb
146
148
  - lib/cmds/io_handler.rb
147
149
  - lib/cmds/pipe.rb
148
150
  - lib/cmds/result.rb
149
151
  - lib/cmds/shell_eruby.rb
150
- - lib/cmds/stream.rb
152
+ - lib/cmds/spawn.rb
151
153
  - lib/cmds/sugar.rb
152
154
  - lib/cmds/util.rb
155
+ - lib/cmds/util/defaults.rb
156
+ - lib/cmds/util/params.rb
157
+ - lib/cmds/util/tokenize_option.rb
158
+ - lib/cmds/util/tokenize_options.rb
153
159
  - lib/cmds/version.rb
154
160
  - scratch/erb.rb
155
161
  - scratch/popen3.rb
@@ -161,17 +167,16 @@ files:
161
167
  - spec/cmds/erb_context_spec.rb
162
168
  - spec/cmds/err_spec.rb
163
169
  - spec/cmds/error_spec.rb
164
- - spec/cmds/expand_option_hash_spec.rb
165
170
  - spec/cmds/ok_spec.rb
166
171
  - spec/cmds/out_spec.rb
172
+ - spec/cmds/prepare_spec.rb
167
173
  - spec/cmds/replace_shortcuts_spec.rb
168
174
  - spec/cmds/stream_spec.rb
169
- - spec/cmds/sub_spec.rb
175
+ - spec/cmds/util/tokenize_option_spec.rb
170
176
  - spec/cmds_spec.rb
171
177
  - spec/debug_helper.rb
172
178
  - spec/spec_helper.rb
173
179
  - test/answers.txt
174
- - test/bin/dspec
175
180
  - test/echo_cmd.rb
176
181
  - test/lines.txt
177
182
  - test/questions.rb
@@ -196,7 +201,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
196
201
  version: '0'
197
202
  requirements: []
198
203
  rubyforge_project:
199
- rubygems_version: 2.2.2
204
+ rubygems_version: 2.6.11
200
205
  signing_key:
201
206
  specification_version: 4
202
207
  summary: helps read, write and remember commands.
@@ -208,19 +213,17 @@ test_files:
208
213
  - spec/cmds/erb_context_spec.rb
209
214
  - spec/cmds/err_spec.rb
210
215
  - spec/cmds/error_spec.rb
211
- - spec/cmds/expand_option_hash_spec.rb
212
216
  - spec/cmds/ok_spec.rb
213
217
  - spec/cmds/out_spec.rb
218
+ - spec/cmds/prepare_spec.rb
214
219
  - spec/cmds/replace_shortcuts_spec.rb
215
220
  - spec/cmds/stream_spec.rb
216
- - spec/cmds/sub_spec.rb
221
+ - spec/cmds/util/tokenize_option_spec.rb
217
222
  - spec/cmds_spec.rb
218
223
  - spec/debug_helper.rb
219
224
  - spec/spec_helper.rb
220
225
  - test/answers.txt
221
- - test/bin/dspec
222
226
  - test/echo_cmd.rb
223
227
  - test/lines.txt
224
228
  - test/questions.rb
225
229
  - test/tick.rb
226
- has_rdoc:
data/lib/cmds/capture.rb DELETED
@@ -1,47 +0,0 @@
1
- class Cmds
2
- # invokes the command and returns a Result with the captured outputs
3
- def capture *subs, &input_block
4
- Cmds.debug "entering Cmds#capture",
5
- subs: subs,
6
- input_block: input_block
7
-
8
- # merge any stored args and kwds and replace input if provided
9
- options = merge_options subs, input_block
10
- Cmds.debug "merged options:",
11
- options: options
12
-
13
- # build the command string
14
- cmd = Cmds.sub @template, options[:args], options[:kwds]
15
- Cmds.debug "built command string: #{ cmd.inspect }"
16
-
17
- out = ''
18
- err = ''
19
-
20
- Cmds.debug "calling Cmds#really_stream..."
21
- status = really_stream cmd, options do |io|
22
- # send the input to stream, which sends it to spawn
23
- io.in = options[:input]
24
-
25
- # and concat the output lines as they come in
26
- io.on_out do |line|
27
- out += line
28
- end
29
-
30
- io.on_err do |line|
31
- err += line
32
- end
33
- end
34
- Cmds.debug "Cmds#really_stream completed",
35
- status: status
36
-
37
- # build a Result
38
- # result = Cmds::Result.new cmd, status, out_reader.value, err_reader.value
39
- result = Cmds::Result.new cmd, status, out, err
40
-
41
- # tell the Result to assert if the Cmds has been told to, which will
42
- # raise a SystemCallError with the exit status if it was non-zero
43
- result.assert if @assert
44
-
45
- return result
46
- end # #capture
47
- end