net-ssh-simple 1.6.0 → 1.6.1

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.
Files changed (69) hide show
  1. data/.gitignore +0 -1
  2. data/README.rdoc +9 -9
  3. data/coverage/.last_run.json +5 -0
  4. data/coverage/.resultset.json +771 -0
  5. data/coverage/assets/0.7.1/application.css +1110 -0
  6. data/coverage/assets/0.7.1/application.js +626 -0
  7. data/coverage/assets/0.7.1/fancybox/blank.gif +0 -0
  8. data/coverage/assets/0.7.1/fancybox/fancy_close.png +0 -0
  9. data/coverage/assets/0.7.1/fancybox/fancy_loading.png +0 -0
  10. data/coverage/assets/0.7.1/fancybox/fancy_nav_left.png +0 -0
  11. data/coverage/assets/0.7.1/fancybox/fancy_nav_right.png +0 -0
  12. data/coverage/assets/0.7.1/fancybox/fancy_shadow_e.png +0 -0
  13. data/coverage/assets/0.7.1/fancybox/fancy_shadow_n.png +0 -0
  14. data/coverage/assets/0.7.1/fancybox/fancy_shadow_ne.png +0 -0
  15. data/coverage/assets/0.7.1/fancybox/fancy_shadow_nw.png +0 -0
  16. data/coverage/assets/0.7.1/fancybox/fancy_shadow_s.png +0 -0
  17. data/coverage/assets/0.7.1/fancybox/fancy_shadow_se.png +0 -0
  18. data/coverage/assets/0.7.1/fancybox/fancy_shadow_sw.png +0 -0
  19. data/coverage/assets/0.7.1/fancybox/fancy_shadow_w.png +0 -0
  20. data/coverage/assets/0.7.1/fancybox/fancy_title_left.png +0 -0
  21. data/coverage/assets/0.7.1/fancybox/fancy_title_main.png +0 -0
  22. data/coverage/assets/0.7.1/fancybox/fancy_title_over.png +0 -0
  23. data/coverage/assets/0.7.1/fancybox/fancy_title_right.png +0 -0
  24. data/coverage/assets/0.7.1/fancybox/fancybox-x.png +0 -0
  25. data/coverage/assets/0.7.1/fancybox/fancybox-y.png +0 -0
  26. data/coverage/assets/0.7.1/fancybox/fancybox.png +0 -0
  27. data/coverage/assets/0.7.1/favicon_green.png +0 -0
  28. data/coverage/assets/0.7.1/favicon_red.png +0 -0
  29. data/coverage/assets/0.7.1/favicon_yellow.png +0 -0
  30. data/coverage/assets/0.7.1/loading.gif +0 -0
  31. data/coverage/assets/0.7.1/magnify.png +0 -0
  32. data/coverage/assets/0.7.1/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  33. data/coverage/assets/0.7.1/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  34. data/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  35. data/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  36. data/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  37. data/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  38. data/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  39. data/coverage/assets/0.7.1/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  40. data/coverage/assets/0.7.1/smoothness/images/ui-icons_222222_256x240.png +0 -0
  41. data/coverage/assets/0.7.1/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  42. data/coverage/assets/0.7.1/smoothness/images/ui-icons_454545_256x240.png +0 -0
  43. data/coverage/assets/0.7.1/smoothness/images/ui-icons_888888_256x240.png +0 -0
  44. data/coverage/assets/0.7.1/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  45. data/coverage/index.html +4672 -0
  46. data/doc/Net.html +117 -0
  47. data/doc/Net/SSH.html +117 -0
  48. data/doc/Net/SSH/Simple.html +2984 -0
  49. data/doc/Net/SSH/Simple/Error.html +432 -0
  50. data/doc/Net/SSH/Simple/Result.html +1640 -0
  51. data/doc/_index.html +162 -0
  52. data/doc/class_list.html +53 -0
  53. data/doc/css/common.css +1 -0
  54. data/doc/css/full_list.css +57 -0
  55. data/doc/css/style.css +328 -0
  56. data/doc/file.README.html +258 -0
  57. data/doc/file_list.html +55 -0
  58. data/doc/frames.html +28 -0
  59. data/doc/index.html +258 -0
  60. data/doc/js/app.js +214 -0
  61. data/doc/js/full_list.js +173 -0
  62. data/doc/js/jquery.js +4 -0
  63. data/doc/method_list.html +348 -0
  64. data/doc/methods_list.html +212 -0
  65. data/doc/top-level-namespace.html +112 -0
  66. data/lib/net/ssh/simple.rb +6 -0
  67. data/lib/net/ssh/simple/version.rb +1 -1
  68. data/net-ssh-simple.gemspec +1 -1
  69. metadata +125 -22
data/doc/Net.html ADDED
@@ -0,0 +1,117 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6
+ <title>
7
+ Module: Net
8
+
9
+ &mdash; Documentation by YARD 0.8.3
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
14
+
15
+ <link rel="stylesheet" href="css/common.css" type="text/css" media="screen" charset="utf-8" />
16
+
17
+ <script type="text/javascript" charset="utf-8">
18
+ hasFrames = window.top.frames.main ? true : false;
19
+ relpath = '';
20
+ framesUrl = "frames.html#!" + escape(window.location.href);
21
+ </script>
22
+
23
+
24
+ <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
25
+
26
+ <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
27
+
28
+
29
+ </head>
30
+ <body>
31
+ <div id="header">
32
+ <div id="menu">
33
+
34
+ <a href="_index.html">Index (N)</a> &raquo;
35
+
36
+
37
+ <span class="title">Net</span>
38
+
39
+
40
+ <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
41
+ </div>
42
+
43
+ <div id="search">
44
+
45
+ <a class="full_list_link" id="class_list_link"
46
+ href="class_list.html">
47
+ Class List
48
+ </a>
49
+
50
+ <a class="full_list_link" id="method_list_link"
51
+ href="method_list.html">
52
+ Method List
53
+ </a>
54
+
55
+ <a class="full_list_link" id="file_list_link"
56
+ href="file_list.html">
57
+ File List
58
+ </a>
59
+
60
+ </div>
61
+ <div class="clear"></div>
62
+ </div>
63
+
64
+ <iframe id="search_frame"></iframe>
65
+
66
+ <div id="content"><h1>Module: Net
67
+
68
+
69
+
70
+ </h1>
71
+
72
+ <dl class="box">
73
+
74
+
75
+
76
+
77
+
78
+
79
+
80
+
81
+ <dt class="r1 last">Defined in:</dt>
82
+ <dd class="r1 last">lib/net/ssh/simple.rb<span class="defines">,<br />
83
+ lib/net/ssh/simple.rb,<br /> lib/net/ssh/simple/version.rb</span>
84
+ </dd>
85
+
86
+ </dl>
87
+ <div class="clear"></div>
88
+
89
+ <h2>Defined Under Namespace</h2>
90
+ <p class="children">
91
+
92
+
93
+ <strong class="modules">Modules:</strong> <span class='object_link'><a href="Net/SSH.html" title="Net::SSH (module)">SSH</a></span>
94
+
95
+
96
+
97
+
98
+ </p>
99
+
100
+
101
+
102
+
103
+
104
+
105
+
106
+
107
+
108
+ </div>
109
+
110
+ <div id="footer">
111
+ Generated on Sat Jan 26 17:16:23 2013 by
112
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
113
+ 0.8.3 (ruby-1.9.3).
114
+ </div>
115
+
116
+ </body>
117
+ </html>
data/doc/Net/SSH.html ADDED
@@ -0,0 +1,117 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6
+ <title>
7
+ Module: Net::SSH
8
+
9
+ &mdash; Documentation by YARD 0.8.3
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="../css/style.css" type="text/css" media="screen" charset="utf-8" />
14
+
15
+ <link rel="stylesheet" href="../css/common.css" type="text/css" media="screen" charset="utf-8" />
16
+
17
+ <script type="text/javascript" charset="utf-8">
18
+ hasFrames = window.top.frames.main ? true : false;
19
+ relpath = '../';
20
+ framesUrl = "../frames.html#!" + escape(window.location.href);
21
+ </script>
22
+
23
+
24
+ <script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
25
+
26
+ <script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
27
+
28
+
29
+ </head>
30
+ <body>
31
+ <div id="header">
32
+ <div id="menu">
33
+
34
+ <a href="../_index.html">Index (S)</a> &raquo;
35
+ <span class='title'><span class='object_link'><a href="../Net.html" title="Net (module)">Net</a></span></span>
36
+ &raquo;
37
+ <span class="title">SSH</span>
38
+
39
+
40
+ <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
41
+ </div>
42
+
43
+ <div id="search">
44
+
45
+ <a class="full_list_link" id="class_list_link"
46
+ href="../class_list.html">
47
+ Class List
48
+ </a>
49
+
50
+ <a class="full_list_link" id="method_list_link"
51
+ href="../method_list.html">
52
+ Method List
53
+ </a>
54
+
55
+ <a class="full_list_link" id="file_list_link"
56
+ href="../file_list.html">
57
+ File List
58
+ </a>
59
+
60
+ </div>
61
+ <div class="clear"></div>
62
+ </div>
63
+
64
+ <iframe id="search_frame"></iframe>
65
+
66
+ <div id="content"><h1>Module: Net::SSH
67
+
68
+
69
+
70
+ </h1>
71
+
72
+ <dl class="box">
73
+
74
+
75
+
76
+
77
+
78
+
79
+
80
+
81
+ <dt class="r1 last">Defined in:</dt>
82
+ <dd class="r1 last">lib/net/ssh/simple.rb<span class="defines">,<br />
83
+ lib/net/ssh/simple.rb,<br /> lib/net/ssh/simple/version.rb</span>
84
+ </dd>
85
+
86
+ </dl>
87
+ <div class="clear"></div>
88
+
89
+ <h2>Defined Under Namespace</h2>
90
+ <p class="children">
91
+
92
+
93
+
94
+
95
+ <strong class="classes">Classes:</strong> <span class='object_link'><a href="SSH/Simple.html" title="Net::SSH::Simple (class)">Simple</a></span>
96
+
97
+
98
+ </p>
99
+
100
+
101
+
102
+
103
+
104
+
105
+
106
+
107
+
108
+ </div>
109
+
110
+ <div id="footer">
111
+ Generated on Sat Jan 26 17:16:23 2013 by
112
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
113
+ 0.8.3 (ruby-1.9.3).
114
+ </div>
115
+
116
+ </body>
117
+ </html>
@@ -0,0 +1,2984 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6
+ <title>
7
+ Class: Net::SSH::Simple
8
+
9
+ &mdash; Documentation by YARD 0.8.3
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="../../css/style.css" type="text/css" media="screen" charset="utf-8" />
14
+
15
+ <link rel="stylesheet" href="../../css/common.css" type="text/css" media="screen" charset="utf-8" />
16
+
17
+ <script type="text/javascript" charset="utf-8">
18
+ hasFrames = window.top.frames.main ? true : false;
19
+ relpath = '../../';
20
+ framesUrl = "../../frames.html#!" + escape(window.location.href);
21
+ </script>
22
+
23
+
24
+ <script type="text/javascript" charset="utf-8" src="../../js/jquery.js"></script>
25
+
26
+ <script type="text/javascript" charset="utf-8" src="../../js/app.js"></script>
27
+
28
+
29
+ </head>
30
+ <body>
31
+ <div id="header">
32
+ <div id="menu">
33
+
34
+ <a href="../../_index.html">Index (S)</a> &raquo;
35
+ <span class='title'><span class='object_link'><a href="../../Net.html" title="Net (module)">Net</a></span></span> &raquo; <span class='title'><span class='object_link'><a href="../SSH.html" title="Net::SSH (module)">SSH</a></span></span>
36
+ &raquo;
37
+ <span class="title">Simple</span>
38
+
39
+
40
+ <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
41
+ </div>
42
+
43
+ <div id="search">
44
+
45
+ <a class="full_list_link" id="class_list_link"
46
+ href="../../class_list.html">
47
+ Class List
48
+ </a>
49
+
50
+ <a class="full_list_link" id="method_list_link"
51
+ href="../../method_list.html">
52
+ Method List
53
+ </a>
54
+
55
+ <a class="full_list_link" id="file_list_link"
56
+ href="../../file_list.html">
57
+ File List
58
+ </a>
59
+
60
+ </div>
61
+ <div class="clear"></div>
62
+ </div>
63
+
64
+ <iframe id="search_frame"></iframe>
65
+
66
+ <div id="content"><h1>Class: Net::SSH::Simple
67
+
68
+
69
+
70
+ </h1>
71
+
72
+ <dl class="box">
73
+
74
+ <dt class="r1">Inherits:</dt>
75
+ <dd class="r1">
76
+ <span class="inheritName">Object</span>
77
+
78
+ <ul class="fullTree">
79
+ <li>Object</li>
80
+
81
+ <li class="next">Net::SSH::Simple</li>
82
+
83
+ </ul>
84
+ <a href="#" class="inheritanceTree">show all</a>
85
+
86
+ </dd>
87
+
88
+
89
+
90
+
91
+
92
+
93
+ <dt class="r2">Includes:</dt>
94
+ <dd class="r2">Blockenspiel::DSL</dd>
95
+
96
+
97
+
98
+
99
+
100
+ <dt class="r1 last">Defined in:</dt>
101
+ <dd class="r1 last">lib/net/ssh/simple.rb<span class="defines">,<br />
102
+ lib/net/ssh/simple.rb,<br /> lib/net/ssh/simple/version.rb</span>
103
+ </dd>
104
+
105
+ </dl>
106
+ <div class="clear"></div>
107
+
108
+ <h2>Overview</h2><div class="docstring">
109
+ <div class="discussion">
110
+
111
+ <p>Net::SSH::Simple is a simple wrapper around Net::SSH and Net::SCP.</p>
112
+
113
+
114
+ </div>
115
+ </div>
116
+ <div class="tags">
117
+
118
+ <div class="examples">
119
+ <p class="tag_title">Examples:</p>
120
+
121
+
122
+ <pre class="example code"><span class='comment'># Block Syntax (synchronous)
123
+ </span><span class='const'>Net</span><span class='op'>::</span><span class='const'>SSH</span><span class='op'>::</span><span class='const'>Simple</span><span class='period'>.</span><span class='id identifier rubyid_sync'>sync</span> <span class='kw'>do</span>
124
+ <span class='id identifier rubyid_r'>r</span> <span class='op'>=</span> <span class='id identifier rubyid_ssh'>ssh</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>example1.com</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>echo &quot;Hello World.&quot;</span><span class='tstring_end'>'</span></span>
125
+ <span class='id identifier rubyid_puts'>puts</span> <span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_stdout'>stdout</span> <span class='comment'>#=&gt; &quot;Hello World.&quot;
126
+ </span> <span class='id identifier rubyid_puts'>puts</span> <span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_exit_code'>exit_code</span> <span class='comment'>#=&gt; 0
127
+ </span>
128
+ <span class='id identifier rubyid_scp_put'>scp_put</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>example2.com</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/tmp/local_foo</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/tmp/remote_bar</span><span class='tstring_end'>'</span></span>
129
+ <span class='id identifier rubyid_scp_get'>scp_get</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>example3.com</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/tmp/remote_foo</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/tmp/local_bar</span><span class='tstring_end'>'</span></span>
130
+ <span class='kw'>end</span></pre>
131
+
132
+
133
+ <pre class="example code"><span class='comment'># Block Syntax (asynchronous)
134
+ </span><span class='id identifier rubyid_t1'>t1</span> <span class='op'>=</span> <span class='const'>Net</span><span class='op'>::</span><span class='const'>SSH</span><span class='op'>::</span><span class='const'>Simple</span><span class='period'>.</span><span class='id identifier rubyid_async'>async</span> <span class='kw'>do</span>
135
+ <span class='id identifier rubyid_scp_put'>scp_put</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>example1.com</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/tmp/local_foo</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/tmp/remote_bar</span><span class='tstring_end'>'</span></span>
136
+ <span class='id identifier rubyid_ssh'>ssh</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>example3.com</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>echo &quot;Hello World A.&quot;</span><span class='tstring_end'>'</span></span>
137
+ <span class='kw'>end</span>
138
+ <span class='id identifier rubyid_t2'>t2</span> <span class='op'>=</span> <span class='const'>Net</span><span class='op'>::</span><span class='const'>SSH</span><span class='op'>::</span><span class='const'>Simple</span><span class='period'>.</span><span class='id identifier rubyid_async'>async</span> <span class='kw'>do</span>
139
+ <span class='id identifier rubyid_scp_get'>scp_get</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>example6.com</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/tmp/remote_foo</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/tmp/local_bar</span><span class='tstring_end'>'</span></span>
140
+ <span class='id identifier rubyid_ssh'>ssh</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>example7.com</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>echo &quot;Hello World B.&quot;</span><span class='tstring_end'>'</span></span>
141
+ <span class='kw'>end</span>
142
+ <span class='id identifier rubyid_r1'>r1</span> <span class='op'>=</span> <span class='id identifier rubyid_t1'>t1</span><span class='period'>.</span><span class='id identifier rubyid_value'>value</span> <span class='comment'># wait for t1 to finish and grab return value
143
+ </span><span class='id identifier rubyid_r2'>r2</span> <span class='op'>=</span> <span class='id identifier rubyid_t2'>t2</span><span class='period'>.</span><span class='id identifier rubyid_value'>value</span> <span class='comment'># wait for t2 to finish and grab return value
144
+ </span>
145
+ <span class='id identifier rubyid_puts'>puts</span> <span class='id identifier rubyid_r1'>r1</span><span class='period'>.</span><span class='id identifier rubyid_stdout'>stdout</span> <span class='comment'>#=&gt; &quot;Hello World A.&quot;
146
+ </span><span class='id identifier rubyid_puts'>puts</span> <span class='id identifier rubyid_r2'>r2</span><span class='period'>.</span><span class='id identifier rubyid_stdout'>stdout</span> <span class='comment'>#=&gt; &quot;Hello World B.&quot;</span></pre>
147
+
148
+
149
+ <pre class="example code"><span class='comment'># Using an instance
150
+ </span><span class='id identifier rubyid_s'>s</span> <span class='op'>=</span> <span class='const'>Net</span><span class='op'>::</span><span class='const'>SSH</span><span class='op'>::</span><span class='const'>Simple</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
151
+ <span class='id identifier rubyid_s'>s</span><span class='period'>.</span><span class='id identifier rubyid_ssh'>ssh</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>example1.com</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>echo &quot;Hello World.&quot;</span><span class='tstring_end'>'</span></span>
152
+ <span class='id identifier rubyid_s'>s</span><span class='period'>.</span><span class='id identifier rubyid_scp_put'>scp_put</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>example2.com</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/tmp/local_foo</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/tmp/remote_bar</span><span class='tstring_end'>'</span></span>
153
+ <span class='id identifier rubyid_s'>s</span><span class='period'>.</span><span class='id identifier rubyid_scp_get'>scp_get</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>example3.com</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/tmp/remote_foo</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/tmp/local_bar</span><span class='tstring_end'>'</span></span>
154
+ <span class='id identifier rubyid_s'>s</span><span class='period'>.</span><span class='id identifier rubyid_close'>close</span></pre>
155
+
156
+
157
+ <pre class="example code"><span class='comment'># Using no instance
158
+ </span><span class='comment'># Note: This will create a new connection for each operation!
159
+ </span><span class='comment'># Use instance- or block-syntax for better performance.
160
+ </span><span class='const'>Net</span><span class='op'>::</span><span class='const'>SSH</span><span class='op'>::</span><span class='const'>Simple</span><span class='period'>.</span><span class='id identifier rubyid_ssh'>ssh</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>example1.com</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>echo &quot;Hello World.&quot;</span><span class='tstring_end'>'</span></span>
161
+ <span class='const'>Net</span><span class='op'>::</span><span class='const'>SSH</span><span class='op'>::</span><span class='const'>Simple</span><span class='period'>.</span><span class='id identifier rubyid_scp_put'>scp_put</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>example2.com</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/tmp/local_foo</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/tmp/remote_bar</span><span class='tstring_end'>'</span></span>
162
+ <span class='const'>Net</span><span class='op'>::</span><span class='const'>SSH</span><span class='op'>::</span><span class='const'>Simple</span><span class='period'>.</span><span class='id identifier rubyid_scp_get'>scp_get</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>example3.com</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/tmp/remote_foo</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/tmp/local_bar</span><span class='tstring_end'>'</span></span></pre>
163
+
164
+
165
+ <pre class="example code"><span class='comment'># Error Handling with Block Syntax (synchronous)
166
+ </span><span class='kw'>begin</span>
167
+ <span class='const'>Net</span><span class='op'>::</span><span class='const'>SSH</span><span class='op'>::</span><span class='const'>Simple</span><span class='period'>.</span><span class='id identifier rubyid_sync'>sync</span> <span class='kw'>do</span>
168
+ <span class='id identifier rubyid_r'>r</span> <span class='op'>=</span> <span class='id identifier rubyid_ssh'>ssh</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>example1.com</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>echo &quot;Hello World.&quot;</span><span class='tstring_end'>'</span></span>
169
+ <span class='kw'>if</span> <span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_success'>success</span> <span class='kw'>and</span> <span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_stdout'>stdout</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>Hello World.</span><span class='tstring_end'>'</span></span>
170
+ <span class='id identifier rubyid_puts'>puts</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Success! I Helloed World.</span><span class='tstring_end'>&quot;</span></span>
171
+ <span class='kw'>end</span>
172
+
173
+ <span class='id identifier rubyid_r'>r</span> <span class='op'>=</span> <span class='id identifier rubyid_scp_put'>scp_put</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>example2.com</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/tmp/local_foo</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/tmp/remote_bar</span><span class='tstring_end'>'</span></span>
174
+ <span class='kw'>if</span> <span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_success'>success</span> <span class='kw'>and</span> <span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_sent'>sent</span> <span class='op'>==</span> <span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_total'>total</span>
175
+ <span class='id identifier rubyid_puts'>puts</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Success! Uploaded </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_sent'>sent</span><span class='rbrace'>}</span><span class='tstring_content'> of </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_total'>total</span><span class='rbrace'>}</span><span class='tstring_content'> bytes.</span><span class='tstring_end'>&quot;</span></span>
176
+ <span class='kw'>end</span>
177
+
178
+ <span class='id identifier rubyid_r'>r</span> <span class='op'>=</span> <span class='id identifier rubyid_scp_get'>scp_get</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>example3.com</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/tmp/remote_foo</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/tmp/local_bar</span><span class='tstring_end'>'</span></span>
179
+ <span class='kw'>if</span> <span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_success'>success</span> <span class='kw'>and</span> <span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_sent'>sent</span> <span class='op'>==</span> <span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_total'>total</span>
180
+ <span class='id identifier rubyid_puts'>puts</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Success! Downloaded </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_sent'>sent</span><span class='rbrace'>}</span><span class='tstring_content'> of </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_total'>total</span><span class='rbrace'>}</span><span class='tstring_content'> bytes.</span><span class='tstring_end'>&quot;</span></span>
181
+ <span class='kw'>end</span>
182
+ <span class='kw'>end</span>
183
+ <span class='kw'>rescue</span> <span class='const'>Net</span><span class='op'>::</span><span class='const'>SSH</span><span class='op'>::</span><span class='const'>Simple</span><span class='op'>::</span><span class='const'>Error</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_e'>e</span>
184
+ <span class='id identifier rubyid_puts'>puts</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Something bad happened!</span><span class='tstring_end'>&quot;</span></span>
185
+ <span class='id identifier rubyid_puts'>puts</span> <span class='id identifier rubyid_e'>e</span> <span class='comment'># Human readable error
186
+ </span> <span class='id identifier rubyid_puts'>puts</span> <span class='id identifier rubyid_e'>e</span><span class='period'>.</span><span class='id identifier rubyid_wrapped'>wrapped</span> <span class='comment'># Original Exception
187
+ </span> <span class='id identifier rubyid_puts'>puts</span> <span class='id identifier rubyid_e'>e</span><span class='period'>.</span><span class='id identifier rubyid_result'>result</span> <span class='comment'># Net::SSH::Simple::Result
188
+ </span><span class='kw'>end</span></pre>
189
+
190
+
191
+ <pre class="example code"><span class='comment'># Error Handling with Block Syntax (asynchronous)
192
+ </span><span class='comment'>#
193
+ </span><span class='comment'># Exceptions are raised inside your thread.
194
+ </span><span class='comment'># You are free to handle them or pass them outwards.
195
+ </span>
196
+ <span class='id identifier rubyid_a'>a</span> <span class='op'>=</span> <span class='const'>Net</span><span class='op'>::</span><span class='const'>SSH</span><span class='op'>::</span><span class='const'>Simple</span><span class='period'>.</span><span class='id identifier rubyid_async'>async</span> <span class='kw'>do</span>
197
+ <span class='kw'>begin</span>
198
+ <span class='id identifier rubyid_ssh'>ssh</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>example1.com</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>echo &quot;Hello World.&quot;</span><span class='tstring_end'>'</span></span>
199
+ <span class='id identifier rubyid_scp_put'>scp_put</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>example2.com</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/tmp/local_foo</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/tmp/remote_bar</span><span class='tstring_end'>'</span></span>
200
+ <span class='id identifier rubyid_scp_get'>scp_get</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>example3.com</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/tmp/remote_foo</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/tmp/local_bar</span><span class='tstring_end'>'</span></span>
201
+ <span class='kw'>rescue</span> <span class='const'>Net</span><span class='op'>::</span><span class='const'>SSH</span><span class='op'>::</span><span class='const'>Simple</span><span class='op'>::</span><span class='const'>Error</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_e'>e</span>
202
+ <span class='comment'># return our exception to the parent thread
203
+ </span> <span class='id identifier rubyid_e'>e</span>
204
+ <span class='kw'>end</span>
205
+ <span class='kw'>end</span>
206
+ <span class='id identifier rubyid_r'>r</span> <span class='op'>=</span> <span class='id identifier rubyid_a'>a</span><span class='period'>.</span><span class='id identifier rubyid_value'>value</span> <span class='comment'># Wait for thread to finish and capture result
207
+ </span>
208
+ <span class='kw'>unless</span> <span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span> <span class='const'>Net</span><span class='op'>::</span><span class='const'>SSH</span><span class='op'>::</span><span class='const'>Simple</span><span class='op'>::</span><span class='const'>Result</span>
209
+ <span class='id identifier rubyid_puts'>puts</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Something bad happened!</span><span class='tstring_end'>&quot;</span></span>
210
+ <span class='id identifier rubyid_puts'>puts</span> <span class='id identifier rubyid_r'>r</span>
211
+ <span class='kw'>end</span></pre>
212
+
213
+
214
+ <pre class="example code"><span class='comment'># Error Handling with an instance
215
+ </span><span class='id identifier rubyid_s'>s</span> <span class='op'>=</span> <span class='const'>Net</span><span class='op'>::</span><span class='const'>SSH</span><span class='op'>::</span><span class='const'>Simple</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
216
+ <span class='kw'>begin</span>
217
+ <span class='id identifier rubyid_r'>r</span> <span class='op'>=</span> <span class='id identifier rubyid_s'>s</span><span class='period'>.</span><span class='id identifier rubyid_ssh'>ssh</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>example1.com</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>echo &quot;Hello World.&quot;</span><span class='tstring_end'>'</span></span>
218
+ <span class='kw'>if</span> <span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_success'>success</span> <span class='kw'>and</span> <span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_stdout'>stdout</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>Hello World.</span><span class='tstring_end'>'</span></span>
219
+ <span class='id identifier rubyid_puts'>puts</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Success! I Helloed World.</span><span class='tstring_end'>&quot;</span></span>
220
+ <span class='kw'>end</span>
221
+
222
+ <span class='id identifier rubyid_r'>r</span> <span class='op'>=</span> <span class='id identifier rubyid_s'>s</span><span class='period'>.</span><span class='id identifier rubyid_scp_put'>scp_put</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>example2.com</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/tmp/local_foo</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/tmp/remote_bar</span><span class='tstring_end'>'</span></span>
223
+ <span class='kw'>if</span> <span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_success'>success</span> <span class='kw'>and</span> <span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_sent'>sent</span> <span class='op'>==</span> <span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_total'>total</span>
224
+ <span class='id identifier rubyid_puts'>puts</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Success! Uploaded </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_sent'>sent</span><span class='rbrace'>}</span><span class='tstring_content'> of </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_total'>total</span><span class='rbrace'>}</span><span class='tstring_content'> bytes.</span><span class='tstring_end'>&quot;</span></span>
225
+ <span class='kw'>end</span>
226
+
227
+ <span class='id identifier rubyid_r'>r</span> <span class='op'>=</span> <span class='id identifier rubyid_s'>s</span><span class='period'>.</span><span class='id identifier rubyid_scp_get'>scp_get</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>example3.com</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/tmp/remote_foo</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/tmp/local_bar</span><span class='tstring_end'>'</span></span>
228
+ <span class='kw'>if</span> <span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_success'>success</span> <span class='kw'>and</span> <span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_sent'>sent</span> <span class='op'>==</span> <span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_total'>total</span>
229
+ <span class='id identifier rubyid_puts'>puts</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Success! Downloaded </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_sent'>sent</span><span class='rbrace'>}</span><span class='tstring_content'> of </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_total'>total</span><span class='rbrace'>}</span><span class='tstring_content'> bytes.</span><span class='tstring_end'>&quot;</span></span>
230
+ <span class='kw'>end</span>
231
+ <span class='kw'>rescue</span> <span class='const'>Net</span><span class='op'>::</span><span class='const'>SSH</span><span class='op'>::</span><span class='const'>Simple</span><span class='op'>::</span><span class='const'>Error</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_e'>e</span>
232
+ <span class='id identifier rubyid_puts'>puts</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Something bad happened!</span><span class='tstring_end'>&quot;</span></span>
233
+ <span class='id identifier rubyid_puts'>puts</span> <span class='id identifier rubyid_e'>e</span> <span class='comment'># Human readable error
234
+ </span> <span class='id identifier rubyid_puts'>puts</span> <span class='id identifier rubyid_e'>e</span><span class='period'>.</span><span class='id identifier rubyid_wrapped'>wrapped</span> <span class='comment'># Original Exception
235
+ </span> <span class='id identifier rubyid_puts'>puts</span> <span class='id identifier rubyid_e'>e</span><span class='period'>.</span><span class='id identifier rubyid_result'>result</span> <span class='comment'># Net::SSH::Simple::Result (partial result)
236
+ </span><span class='kw'>ensure</span>
237
+ <span class='id identifier rubyid_s'>s</span><span class='period'>.</span><span class='id identifier rubyid_close'>close</span> <span class='comment'># don't forget the clean up!
238
+ </span><span class='kw'>end</span></pre>
239
+
240
+
241
+ <pre class="example code"><span class='comment'># Parameters
242
+ </span><span class='const'>Net</span><span class='op'>::</span><span class='const'>SSH</span><span class='op'>::</span><span class='const'>Simple</span><span class='period'>.</span><span class='id identifier rubyid_sync'>sync</span> <span class='kw'>do</span>
243
+ <span class='id identifier rubyid_ssh'>ssh</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>example1.com</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>echo &quot;Hello World.&quot;</span><span class='tstring_end'>'</span></span><span class='comma'>,</span>
244
+ <span class='lbrace'>{</span><span class='symbol'>:user</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>tom</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='symbol'>:password</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>jerry</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='symbol'>:port</span> <span class='op'>=&gt;</span> <span class='int'>1234</span><span class='rbrace'>}</span><span class='rparen'>)</span>
245
+ <span class='kw'>end</span>
246
+
247
+ <span class='comment'># Parameter inheritance
248
+ </span><span class='const'>Net</span><span class='op'>::</span><span class='const'>SSH</span><span class='op'>::</span><span class='const'>Simple</span><span class='period'>.</span><span class='id identifier rubyid_sync'>sync</span><span class='lparen'>(</span><span class='lbrace'>{</span><span class='symbol'>:user</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>tom</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='symbol'>:port</span> <span class='op'>=&gt;</span> <span class='int'>1234</span><span class='rbrace'>}</span><span class='rparen'>)</span> <span class='kw'>do</span>
249
+ <span class='comment'># Both commands will inherit :user and :port
250
+ </span> <span class='id identifier rubyid_ssh'>ssh</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>example1.com</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>echo &quot;Hello World.&quot;</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='lbrace'>{</span><span class='symbol'>:password</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>jerry</span><span class='tstring_end'>'</span></span><span class='rbrace'>}</span><span class='rparen'>)</span>
251
+ <span class='id identifier rubyid_scp_put'>scp_put</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>example2.com</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/tmp/a</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/tmp/a</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='lbrace'>{</span><span class='symbol'>:password</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>s3cr3t</span><span class='tstring_end'>'</span></span><span class='rbrace'>}</span><span class='rparen'>)</span>
252
+ <span class='kw'>end</span></pre>
253
+
254
+
255
+ <pre class="example code"><span class='comment'># Using the SCP progress callback
256
+ </span><span class='const'>Net</span><span class='op'>::</span><span class='const'>SSH</span><span class='op'>::</span><span class='const'>Simple</span><span class='period'>.</span><span class='id identifier rubyid_sync'>sync</span> <span class='kw'>do</span>
257
+ <span class='id identifier rubyid_scp_put'>scp_put</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>example1.com</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/tmp/local_foo</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/tmp/remote_bar</span><span class='tstring_end'>'</span></span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_sent'>sent</span><span class='comma'>,</span> <span class='id identifier rubyid_total'>total</span><span class='op'>|</span>
258
+ <span class='id identifier rubyid_puts'>puts</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Bytes uploaded: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_sent'>sent</span><span class='rbrace'>}</span><span class='tstring_content'> of </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_total'>total</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span>
259
+ <span class='kw'>end</span>
260
+ <span class='kw'>end</span></pre>
261
+
262
+
263
+ <pre class="example code"><span class='comment'>#
264
+ </span><span class='comment'># Here be dragons: Using the event-API for a stdin-&gt;stdout pipeline
265
+ </span><span class='comment'>#
266
+ </span><span class='id identifier rubyid_r'>r</span> <span class='op'>=</span> <span class='const'>Net</span><span class='op'>::</span><span class='const'>SSH</span><span class='op'>::</span><span class='const'>Simple</span><span class='period'>.</span><span class='id identifier rubyid_sync'>sync</span> <span class='kw'>do</span>
267
+ <span class='comment'># open a shell
268
+ </span> <span class='id identifier rubyid_ssh'>ssh</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>localhost</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/bin/sh</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_e'>e</span><span class='comma'>,</span><span class='id identifier rubyid_c'>c</span><span class='comma'>,</span><span class='id identifier rubyid_d'>d</span><span class='op'>|</span>
269
+ <span class='comment'># e = :start, :stdout, :stderr, :exit_code, :exit_signal or :finish
270
+ </span> <span class='comment'># c = our Net::SSH::Connection::Channel instance
271
+ </span> <span class='comment'># d = data for this event
272
+ </span> <span class='kw'>case</span> <span class='id identifier rubyid_e'>e</span>
273
+ <span class='comment'># :start is triggered exactly once per connection
274
+ </span> <span class='kw'>when</span> <span class='symbol'>:start</span>
275
+ <span class='comment'># we can send data using Channel#send_data
276
+ </span> <span class='id identifier rubyid_c'>c</span><span class='period'>.</span><span class='id identifier rubyid_send_data'>send_data</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>echo 'hello stdout'\n</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
277
+ <span class='id identifier rubyid_c'>c</span><span class='period'>.</span><span class='id identifier rubyid_send_data'>send_data</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>echo 'hello stderr' 1&gt;&amp;2\n</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
278
+ <span class='comment'># don't forget to eof when done feeding!
279
+ </span> <span class='id identifier rubyid_c'>c</span><span class='period'>.</span><span class='id identifier rubyid_eof!'>eof!</span>
280
+
281
+ <span class='comment'># :stdout is triggered when there's stdout data from remote.
282
+ </span> <span class='comment'># by default the data is also appended to result[:stdout].
283
+ </span> <span class='comment'># you may return :no_append as seen below to avoid that.
284
+ </span> <span class='kw'>when</span> <span class='symbol'>:stdout</span>
285
+ <span class='comment'># read the input line-wise (it *will* arrive fragmented!)
286
+ </span> <span class='lparen'>(</span><span class='ivar'>@buf</span> <span class='op'>||=</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_d'>d</span>
287
+ <span class='kw'>while</span> <span class='id identifier rubyid_line'>line</span> <span class='op'>=</span> <span class='ivar'>@buf</span><span class='period'>.</span><span class='id identifier rubyid_slice!'>slice!</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>(.*)\r?\n</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span>
288
+ <span class='id identifier rubyid_puts'>puts</span> <span class='id identifier rubyid_line'>line</span> <span class='comment'>#=&gt; &quot;hello stdout&quot;
289
+ </span> <span class='kw'>end</span>
290
+ <span class='symbol'>:no_append</span>
291
+
292
+ <span class='comment'># :stderr is triggered when there's stderr data from remote.
293
+ </span> <span class='comment'># by default the data is also appended to result[:stderr].
294
+ </span> <span class='comment'># you may return :no_append as seen below to avoid that.
295
+ </span> <span class='kw'>when</span> <span class='symbol'>:stderr</span>
296
+ <span class='comment'># read the input line-wise (it *will* arrive fragmented!)
297
+ </span> <span class='lparen'>(</span><span class='ivar'>@buf</span> <span class='op'>||=</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_d'>d</span>
298
+ <span class='kw'>while</span> <span class='id identifier rubyid_line'>line</span> <span class='op'>=</span> <span class='ivar'>@buf</span><span class='period'>.</span><span class='id identifier rubyid_slice!'>slice!</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>(.*)\r?\n</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span>
299
+ <span class='id identifier rubyid_puts'>puts</span> <span class='id identifier rubyid_line'>line</span> <span class='comment'>#=&gt; &quot;hello stderr&quot;
300
+ </span> <span class='kw'>end</span>
301
+ <span class='symbol'>:no_append</span>
302
+
303
+ <span class='comment'># :exit_code is triggered when the remote process exits normally.
304
+ </span> <span class='comment'># it does *not* trigger when the remote process exits by signal!
305
+ </span> <span class='kw'>when</span> <span class='symbol'>:exit_code</span>
306
+ <span class='id identifier rubyid_puts'>puts</span> <span class='id identifier rubyid_d'>d</span> <span class='comment'>#=&gt; 0
307
+ </span>
308
+ <span class='comment'># :exit_signal is triggered when the remote is killed by signal.
309
+ </span> <span class='comment'># this would normally raise a Net::SSH::Simple::Error but
310
+ </span> <span class='comment'># we suppress that here by returning :no_raise
311
+ </span> <span class='kw'>when</span> <span class='symbol'>:exit_signal</span>
312
+ <span class='id identifier rubyid_puts'>puts</span> <span class='id identifier rubyid_d'>d</span> <span class='comment'># won't fire in this example, could be &quot;TERM&quot;
313
+ </span> <span class='symbol'>:no_raise</span>
314
+
315
+ <span class='comment'># :finish triggers after :exit_code when the command exits normally.
316
+ </span> <span class='comment'># it does *not* trigger when the remote process exits by signal!
317
+ </span> <span class='kw'>when</span> <span class='symbol'>:finish</span>
318
+ <span class='id identifier rubyid_puts'>puts</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>we are finished!</span><span class='tstring_end'>&quot;</span></span>
319
+ <span class='kw'>end</span>
320
+ <span class='kw'>end</span>
321
+ <span class='kw'>end</span>
322
+
323
+ <span class='comment'># Our Result has been populated normally, except for
324
+ </span><span class='comment'># :stdout and :stdin (because we used :no_append).
325
+ </span><span class='id identifier rubyid_puts'>puts</span> <span class='id identifier rubyid_r'>r</span> <span class='comment'>#=&gt; Net::SSH::Simple::Result
326
+ </span><span class='id identifier rubyid_puts'>puts</span> <span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_exit_code'>exit_code</span> <span class='comment'>#=&gt; 0
327
+ </span><span class='id identifier rubyid_puts'>puts</span> <span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_stdout'>stdout</span> <span class='comment'>#=&gt; ''
328
+ </span><span class='id identifier rubyid_puts'>puts</span> <span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_stderr'>stderr</span> <span class='comment'>#=&gt; ''</span></pre>
329
+
330
+ </div>
331
+
332
+ <p class="tag_title">Author:</p>
333
+ <ul class="author">
334
+
335
+ <li>
336
+
337
+
338
+
339
+
340
+
341
+ <div class='inline'>
342
+ <p>moe@busyloop.net</p>
343
+ </div>
344
+
345
+ </li>
346
+
347
+ </ul>
348
+
349
+ </div><h2>Defined Under Namespace</h2>
350
+ <p class="children">
351
+
352
+
353
+
354
+
355
+ <strong class="classes">Classes:</strong> <span class='object_link'><a href="Simple/Error.html" title="Net::SSH::Simple::Error (class)">Error</a></span>, <span class='object_link'><a href="Simple/Result.html" title="Net::SSH::Simple::Result (class)">Result</a></span>
356
+
357
+
358
+ </p>
359
+
360
+ <h2>Constant Summary</h2>
361
+
362
+ <dl class="constants">
363
+
364
+ <dt id="VERSION-constant" class="">VERSION =
365
+
366
+ </dt>
367
+ <dd><pre class="code"><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>1.6.0</span><span class='tstring_end'>&quot;</span></span></pre></dd>
368
+
369
+ </dl>
370
+
371
+
372
+
373
+
374
+
375
+ <h2>Instance Attribute Summary <small>(<a href="#" class="summary_toggle">collapse</a>)</small></h2>
376
+ <ul class="summary">
377
+
378
+ <li class="public ">
379
+ <span class="summary_signature">
380
+
381
+ <a href="#result-instance_method" title="#result (instance method)">- (Net::SSH::Simple::Result) <strong>result</strong> </a>
382
+
383
+
384
+
385
+ </span>
386
+
387
+
388
+
389
+
390
+ <span class="note title readonly">readonly</span>
391
+
392
+
393
+
394
+
395
+
396
+
397
+
398
+
399
+
400
+ <span class="summary_desc"><div class='inline'>
401
+ <p>Result of the current Net::SSH::Simple::Operation.</p>
402
+ </div></span>
403
+
404
+ </li>
405
+
406
+
407
+ </ul>
408
+
409
+
410
+
411
+
412
+
413
+ <h2>
414
+ Class Method Summary
415
+ <small>(<a href="#" class="summary_toggle">collapse</a>)</small>
416
+ </h2>
417
+
418
+ <ul class="summary">
419
+
420
+ <li class="public ">
421
+ <span class="summary_signature">
422
+
423
+ <a href="#async-class_method" title="async (class method)">+ (Thread) <strong>async</strong>(opts = {}, &amp;block) </a>
424
+
425
+
426
+
427
+ </span>
428
+
429
+
430
+
431
+
432
+
433
+
434
+
435
+
436
+
437
+ <span class="summary_desc"><div class='inline'>
438
+ <p>Spawn a Thread to perform a sequence of ssh/scp operations.</p>
439
+ </div></span>
440
+
441
+ </li>
442
+
443
+
444
+ <li class="public deprecated">
445
+ <span class="summary_signature">
446
+
447
+ <a href="#scp_dl-class_method" title="scp_dl (class method)">+ (Object) <strong>scp_dl</strong>(*args, &amp;block) </a>
448
+
449
+
450
+
451
+ </span>
452
+
453
+
454
+
455
+
456
+
457
+ <span class="deprecated note title">deprecated</span>
458
+
459
+
460
+
461
+ <span class="summary_desc"><strong>Deprecated.</strong> <div class='inline'>
462
+ <p>Use scp_get instead.</p>
463
+ </div></span>
464
+
465
+ </li>
466
+
467
+
468
+ <li class="public ">
469
+ <span class="summary_signature">
470
+
471
+ <a href="#scp_get-class_method" title="scp_get (class method)">+ (Net::SSH::Simple::Result) <strong>scp_get</strong>(*args, &amp;block) </a>
472
+
473
+
474
+
475
+ </span>
476
+
477
+
478
+
479
+
480
+
481
+
482
+
483
+
484
+
485
+ <span class="summary_desc"><div class='inline'>
486
+ <p>SCP download from a remote host.</p>
487
+ </div></span>
488
+
489
+ </li>
490
+
491
+
492
+ <li class="public ">
493
+ <span class="summary_signature">
494
+
495
+ <a href="#scp_put-class_method" title="scp_put (class method)">+ (Net::SSH::Simple::Result) <strong>scp_put</strong>(*args, &amp;block) </a>
496
+
497
+
498
+
499
+ </span>
500
+
501
+
502
+
503
+
504
+
505
+
506
+
507
+
508
+
509
+ <span class="summary_desc"><div class='inline'>
510
+ <p>SCP upload to a remote host.</p>
511
+ </div></span>
512
+
513
+ </li>
514
+
515
+
516
+ <li class="public deprecated">
517
+ <span class="summary_signature">
518
+
519
+ <a href="#scp_ul-class_method" title="scp_ul (class method)">+ (Object) <strong>scp_ul</strong>(*args, &amp;block) </a>
520
+
521
+
522
+
523
+ </span>
524
+
525
+
526
+
527
+
528
+
529
+ <span class="deprecated note title">deprecated</span>
530
+
531
+
532
+
533
+ <span class="summary_desc"><strong>Deprecated.</strong> <div class='inline'>
534
+ <p>Use scp_put instead.</p>
535
+ </div></span>
536
+
537
+ </li>
538
+
539
+
540
+ <li class="public ">
541
+ <span class="summary_signature">
542
+
543
+ <a href="#ssh-class_method" title="ssh (class method)">+ (Net::SSH::Simple::Result) <strong>ssh</strong>(*args, &amp;block) </a>
544
+
545
+
546
+
547
+ </span>
548
+
549
+
550
+
551
+
552
+
553
+
554
+
555
+
556
+
557
+ <span class="summary_desc"><div class='inline'>
558
+ <p>Perform ssh command on a remote host and capture the result.</p>
559
+ </div></span>
560
+
561
+ </li>
562
+
563
+
564
+ <li class="public ">
565
+ <span class="summary_signature">
566
+
567
+ <a href="#sync-class_method" title="sync (class method)">+ (Net::SSH::Simple::Result) <strong>sync</strong>(opts = {}, &amp;block) </a>
568
+
569
+
570
+
571
+ </span>
572
+
573
+
574
+
575
+
576
+
577
+
578
+
579
+
580
+
581
+ <span class="summary_desc"><div class='inline'>
582
+ <p>Perform a sequence of ssh/scp operations.</p>
583
+ </div></span>
584
+
585
+ </li>
586
+
587
+
588
+ </ul>
589
+
590
+ <h2>
591
+ Instance Method Summary
592
+ <small>(<a href="#" class="summary_toggle">collapse</a>)</small>
593
+ </h2>
594
+
595
+ <ul class="summary">
596
+
597
+ <li class="public ">
598
+ <span class="summary_signature">
599
+
600
+ <a href="#async-instance_method" title="#async (instance method)">- (Thread) <strong>async</strong>(opts = {}, &amp;block) </a>
601
+
602
+
603
+
604
+ </span>
605
+
606
+
607
+
608
+
609
+
610
+
611
+
612
+
613
+
614
+ <span class="summary_desc"><div class='inline'>
615
+ <p>Spawn a Thread to perform a sequence of ssh/scp operations.</p>
616
+ </div></span>
617
+
618
+ </li>
619
+
620
+
621
+ <li class="public ">
622
+ <span class="summary_signature">
623
+
624
+ <a href="#close-instance_method" title="#close (instance method)">- (Net::SSH::Simple::Result) <strong>close</strong> </a>
625
+
626
+
627
+
628
+ </span>
629
+
630
+
631
+
632
+
633
+
634
+
635
+
636
+
637
+
638
+ <span class="summary_desc"><div class='inline'>
639
+ <p>Close and cleanup.</p>
640
+ </div></span>
641
+
642
+ </li>
643
+
644
+
645
+ <li class="public ">
646
+ <span class="summary_signature">
647
+
648
+ <a href="#initialize-instance_method" title="#initialize (instance method)">- (Simple) <strong>initialize</strong>(opts = {}) </a>
649
+
650
+
651
+
652
+ </span>
653
+
654
+
655
+ <span class="note title constructor">constructor</span>
656
+
657
+
658
+
659
+
660
+
661
+
662
+
663
+
664
+ <span class="summary_desc"><div class='inline'>
665
+ <p>A new instance of Simple.</p>
666
+ </div></span>
667
+
668
+ </li>
669
+
670
+
671
+ <li class="public deprecated">
672
+ <span class="summary_signature">
673
+
674
+ <a href="#scp_dl-instance_method" title="#scp_dl (instance method)">- (Object) <strong>scp_dl</strong>(host, src, dst, opts = {}, &amp;block) </a>
675
+
676
+
677
+
678
+ </span>
679
+
680
+
681
+
682
+
683
+
684
+ <span class="deprecated note title">deprecated</span>
685
+
686
+
687
+
688
+ <span class="summary_desc"><strong>Deprecated.</strong> <div class='inline'>
689
+ <p>Use scp_get instead.</p>
690
+ </div></span>
691
+
692
+ </li>
693
+
694
+
695
+ <li class="public ">
696
+ <span class="summary_signature">
697
+
698
+ <a href="#scp_get-instance_method" title="#scp_get (instance method)">- (Net::SSH::Simple::Result) <strong>scp_get</strong>(host, src, dst, opts = {}, &amp;block) </a>
699
+
700
+
701
+
702
+ </span>
703
+
704
+
705
+
706
+
707
+
708
+
709
+
710
+
711
+
712
+ <span class="summary_desc"><div class='inline'>
713
+ <p>SCP download from a remote host.</p>
714
+ </div></span>
715
+
716
+ </li>
717
+
718
+
719
+ <li class="public ">
720
+ <span class="summary_signature">
721
+
722
+ <a href="#scp_put-instance_method" title="#scp_put (instance method)">- (Net::SSH::Simple::Result) <strong>scp_put</strong>(host, src, dst, opts = {}, &amp;block) </a>
723
+
724
+
725
+
726
+ </span>
727
+
728
+
729
+
730
+
731
+
732
+
733
+
734
+
735
+
736
+ <span class="summary_desc"><div class='inline'>
737
+ <p>SCP upload to a remote host.</p>
738
+ </div></span>
739
+
740
+ </li>
741
+
742
+
743
+ <li class="public deprecated">
744
+ <span class="summary_signature">
745
+
746
+ <a href="#scp_ul-instance_method" title="#scp_ul (instance method)">- (Object) <strong>scp_ul</strong>(host, src, dst, opts = {}, &amp;block) </a>
747
+
748
+
749
+
750
+ </span>
751
+
752
+
753
+
754
+
755
+
756
+ <span class="deprecated note title">deprecated</span>
757
+
758
+
759
+
760
+ <span class="summary_desc"><strong>Deprecated.</strong> <div class='inline'>
761
+ <p>Use scp_put instead.</p>
762
+ </div></span>
763
+
764
+ </li>
765
+
766
+
767
+ <li class="public ">
768
+ <span class="summary_signature">
769
+
770
+ <a href="#ssh-instance_method" title="#ssh (instance method)">- (Net::SSH::Simple::Result) <strong>ssh</strong>(host, cmd, opts = {}, &amp;block) </a>
771
+
772
+
773
+
774
+ </span>
775
+
776
+
777
+
778
+
779
+
780
+
781
+
782
+
783
+
784
+ <span class="summary_desc"><div class='inline'>
785
+ <p>Perform SSH operation on a remote host and capture the result.</p>
786
+ </div></span>
787
+
788
+ </li>
789
+
790
+
791
+ </ul>
792
+
793
+
794
+
795
+ <div id="constructor_details" class="method_details_list">
796
+ <h2>Constructor Details</h2>
797
+
798
+ <div class="method_details first">
799
+ <h3 class="signature first" id="initialize-instance_method">
800
+
801
+ - (<tt><span class='object_link'><a href="" title="Net::SSH::Simple (class)">Simple</a></span></tt>) <strong>initialize</strong>(opts = {})
802
+
803
+
804
+
805
+
806
+
807
+ </h3><div class="docstring">
808
+ <div class="discussion">
809
+
810
+ <p>A new instance of Simple</p>
811
+
812
+
813
+ </div>
814
+ </div>
815
+ <div class="tags">
816
+
817
+
818
+ </div><table class="source_code">
819
+ <tr>
820
+ <td>
821
+ <pre class="lines">
822
+
823
+
824
+ 562
825
+ 563
826
+ 564
827
+ 565
828
+ 566</pre>
829
+ </td>
830
+ <td>
831
+ <pre class="code"><span class="info file"># File 'lib/net/ssh/simple.rb', line 562</span>
832
+
833
+ <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='op'>=</span><span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
834
+ <span class='ivar'>@opts</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span>
835
+ <span class='const'>Thread</span><span class='period'>.</span><span class='id identifier rubyid_current'>current</span><span class='lbracket'>[</span><span class='symbol'>:ssh_simple_sessions</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
836
+ <span class='ivar'>@result</span> <span class='op'>=</span> <span class='const'>Result</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
837
+ <span class='kw'>end</span></pre>
838
+ </td>
839
+ </tr>
840
+ </table>
841
+ </div>
842
+
843
+ </div>
844
+
845
+ <div id="instance_attr_details" class="attr_details">
846
+ <h2>Instance Attribute Details</h2>
847
+
848
+
849
+ <span id=""></span>
850
+ <div class="method_details first">
851
+ <h3 class="signature first" id="result-instance_method">
852
+
853
+ - (<tt><span class='object_link'><a href="Simple/Result.html" title="Net::SSH::Simple::Result (class)">Net::SSH::Simple::Result</a></span></tt>) <strong>result</strong> <span class="extras">(readonly)</span>
854
+
855
+
856
+
857
+
858
+
859
+ </h3><div class="docstring">
860
+ <div class="discussion">
861
+
862
+ <p>Result of the current Net::SSH::Simple::Operation.</p>
863
+
864
+
865
+ </div>
866
+ </div>
867
+ <div class="tags">
868
+
869
+ <p class="tag_title">Returns:</p>
870
+ <ul class="return">
871
+
872
+ <li>
873
+
874
+
875
+ <span class='type'>(<tt><span class='object_link'><a href="Simple/Result.html" title="Net::SSH::Simple::Result (class)">Net::SSH::Simple::Result</a></span></tt>)</span>
876
+
877
+
878
+
879
+ &mdash;
880
+ <div class='inline'>
881
+ <p>Result of the current operation</p>
882
+ </div>
883
+
884
+ </li>
885
+
886
+ </ul>
887
+
888
+ </div><table class="source_code">
889
+ <tr>
890
+ <td>
891
+ <pre class="lines">
892
+
893
+
894
+ 253
895
+ 254
896
+ 255</pre>
897
+ </td>
898
+ <td>
899
+ <pre class="code"><span class="info file"># File 'lib/net/ssh/simple.rb', line 253</span>
900
+
901
+ <span class='kw'>def</span> <span class='id identifier rubyid_result'>result</span>
902
+ <span class='ivar'>@result</span>
903
+ <span class='kw'>end</span></pre>
904
+ </td>
905
+ </tr>
906
+ </table>
907
+ </div>
908
+
909
+ </div>
910
+
911
+
912
+ <div id="class_method_details" class="method_details_list">
913
+ <h2>Class Method Details</h2>
914
+
915
+
916
+ <div class="method_details first">
917
+ <h3 class="signature first" id="async-class_method">
918
+
919
+ + (<tt>Thread</tt>) <strong>async</strong>(opts = {}, &amp;block)
920
+
921
+
922
+
923
+
924
+
925
+ </h3><div class="docstring">
926
+ <div class="discussion">
927
+
928
+ <p>Spawn a Thread to perform a sequence of ssh/scp operations.</p>
929
+
930
+
931
+ </div>
932
+ </div>
933
+ <div class="tags">
934
+ <p class="tag_title">Parameters:</p>
935
+ <ul class="param">
936
+
937
+ <li>
938
+
939
+ <span class='name'>block</span>
940
+
941
+
942
+ <span class='type'>(<tt>Block</tt>)</span>
943
+
944
+
945
+
946
+ </li>
947
+
948
+ <li>
949
+
950
+ <span class='name'>opts</span>
951
+
952
+
953
+ <span class='type'>(<tt>Hash</tt>)</span>
954
+
955
+
956
+ <em class="default">(defaults to: <tt>{}</tt>)</em>
957
+
958
+
959
+ &mdash;
960
+ <div class='inline'>
961
+ <p>SSH options</p>
962
+ </div>
963
+
964
+ </li>
965
+
966
+ </ul>
967
+
968
+ <p class="tag_title">Returns:</p>
969
+ <ul class="return">
970
+
971
+ <li>
972
+
973
+
974
+ <span class='type'>(<tt>Thread</tt>)</span>
975
+
976
+
977
+
978
+ &mdash;
979
+ <div class='inline'>
980
+ <p>Thread executing the SSH-Block.</p>
981
+ </div>
982
+
983
+ </li>
984
+
985
+ </ul>
986
+
987
+ </div><table class="source_code">
988
+ <tr>
989
+ <td>
990
+ <pre class="lines">
991
+
992
+
993
+ 575
994
+ 576
995
+ 577
996
+ 578
997
+ 579</pre>
998
+ </td>
999
+ <td>
1000
+ <pre class="code"><span class="info file"># File 'lib/net/ssh/simple.rb', line 575</span>
1001
+
1002
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_async'>async</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='op'>=</span><span class='lbrace'>{</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
1003
+ <span class='const'>Thread</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span> <span class='kw'>do</span>
1004
+ <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_sync'>sync</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
1005
+ <span class='kw'>end</span>
1006
+ <span class='kw'>end</span></pre>
1007
+ </td>
1008
+ </tr>
1009
+ </table>
1010
+ </div>
1011
+
1012
+ <div class="method_details ">
1013
+ <h3 class="signature " id="scp_dl-class_method">
1014
+
1015
+ + (<tt>Object</tt>) <strong>scp_dl</strong>(*args, &amp;block)
1016
+
1017
+
1018
+
1019
+
1020
+
1021
+ </h3><div class="docstring">
1022
+ <div class="discussion">
1023
+ <div class="note deprecated"><strong>Deprecated.</strong> <div class='inline'>
1024
+ <p>Use scp_get instead.</p>
1025
+ </div></div>
1026
+
1027
+
1028
+ </div>
1029
+ </div>
1030
+ <div class="tags">
1031
+
1032
+
1033
+ </div><table class="source_code">
1034
+ <tr>
1035
+ <td>
1036
+ <pre class="lines">
1037
+
1038
+
1039
+ 331
1040
+ 332
1041
+ 333
1042
+ 334</pre>
1043
+ </td>
1044
+ <td>
1045
+ <pre class="code"><span class="info file"># File 'lib/net/ssh/simple.rb', line 331</span>
1046
+
1047
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_scp_dl'>scp_dl</span><span class='lparen'>(</span><span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
1048
+ <span class='id identifier rubyid_warn'>warn</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>[DEPRECATION] Net::SSH::Simple.scp_dl is deprecated. Please use .scp_get instead (usage is identical, the method was only renamed).</span><span class='tstring_end'>&quot;</span></span>
1049
+ <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_scp_get'>scp_get</span><span class='lparen'>(</span><span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
1050
+ <span class='kw'>end</span></pre>
1051
+ </td>
1052
+ </tr>
1053
+ </table>
1054
+ </div>
1055
+
1056
+ <div class="method_details ">
1057
+ <h3 class="signature " id="scp_get-class_method">
1058
+
1059
+ + (<tt><span class='object_link'><a href="Simple/Result.html" title="Net::SSH::Simple::Result (class)">Net::SSH::Simple::Result</a></span></tt>) <strong>scp_get</strong>(*args, &amp;block)
1060
+
1061
+
1062
+
1063
+
1064
+
1065
+ </h3><div class="docstring">
1066
+ <div class="discussion">
1067
+
1068
+ <p>SCP download from a remote host. This will create a new connection for each
1069
+ invocation.</p>
1070
+
1071
+
1072
+ </div>
1073
+ </div>
1074
+ <div class="tags">
1075
+
1076
+ <div class="examples">
1077
+ <p class="tag_title">Examples:</p>
1078
+
1079
+
1080
+ <pre class="example code"><span class='comment'># SCP Download
1081
+ </span><span class='const'>Net</span><span class='op'>::</span><span class='const'>SSH</span><span class='op'>::</span><span class='const'>Simple</span><span class='period'>.</span><span class='id identifier rubyid_scp_get'>scp_get</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>localhost</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/tmp/remote_foo</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/tmp/local_bar</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span></pre>
1082
+
1083
+
1084
+ <pre class="example code"><span class='comment'># Pass a block to monitor progress
1085
+ </span><span class='const'>Net</span><span class='op'>::</span><span class='const'>SSH</span><span class='op'>::</span><span class='const'>Simple</span><span class='period'>.</span><span class='id identifier rubyid_scp_get'>scp_get</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>localhost</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/tmp/remote_foo</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/tmp/local_bar</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_sent'>sent</span><span class='comma'>,</span> <span class='id identifier rubyid_total'>total</span><span class='op'>|</span>
1086
+ <span class='id identifier rubyid_puts'>puts</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Bytes downloaded: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_sent'>sent</span><span class='rbrace'>}</span><span class='tstring_content'> of </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_total'>total</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span>
1087
+ <span class='kw'>end</span></pre>
1088
+
1089
+ </div>
1090
+ <p class="tag_title">Parameters:</p>
1091
+ <ul class="param">
1092
+
1093
+ <li>
1094
+
1095
+ <span class='name'>host</span>
1096
+
1097
+
1098
+ <span class='type'>(<tt>String</tt>)</span>
1099
+
1100
+
1101
+
1102
+ &mdash;
1103
+ <div class='inline'>
1104
+ <p>Destination hostname or ip-address</p>
1105
+ </div>
1106
+
1107
+ </li>
1108
+
1109
+ <li>
1110
+
1111
+ <span class='name'>src</span>
1112
+
1113
+
1114
+ <span class='type'>(<tt>String</tt>)</span>
1115
+
1116
+
1117
+
1118
+ &mdash;
1119
+ <div class='inline'>
1120
+ <p>Source path (on remote host)</p>
1121
+ </div>
1122
+
1123
+ </li>
1124
+
1125
+ <li>
1126
+
1127
+ <span class='name'>dst</span>
1128
+
1129
+
1130
+ <span class='type'>(<tt>String</tt>)</span>
1131
+
1132
+
1133
+
1134
+ &mdash;
1135
+ <div class='inline'>
1136
+ <p>Destination path (on localhost)</p>
1137
+ </div>
1138
+
1139
+ </li>
1140
+
1141
+ <li>
1142
+
1143
+ <span class='name'>block</span>
1144
+
1145
+
1146
+ <span class='type'>(<tt>Block</tt>)</span>
1147
+
1148
+
1149
+
1150
+ &mdash;
1151
+ <div class='inline'>
1152
+ <p>Progress callback (optional)</p>
1153
+ </div>
1154
+
1155
+ </li>
1156
+
1157
+ <li>
1158
+
1159
+ <span class='name'>opts</span>
1160
+
1161
+
1162
+ <span class='type'>(<tt>Hash</tt>)</span>
1163
+
1164
+
1165
+
1166
+ &mdash;
1167
+ <div class='inline'>
1168
+ <p>SSH options</p>
1169
+ </div>
1170
+
1171
+ </li>
1172
+
1173
+ </ul>
1174
+
1175
+ <p class="tag_title">Returns:</p>
1176
+ <ul class="return">
1177
+
1178
+ <li>
1179
+
1180
+
1181
+ <span class='type'>(<tt><span class='object_link'><a href="Simple/Result.html" title="Net::SSH::Simple::Result (class)">Net::SSH::Simple::Result</a></span></tt>)</span>
1182
+
1183
+
1184
+
1185
+ &mdash;
1186
+ <div class='inline'>
1187
+ <p>Result</p>
1188
+ </div>
1189
+
1190
+ </li>
1191
+
1192
+ </ul>
1193
+ <p class="tag_title">Raises:</p>
1194
+ <ul class="raise">
1195
+
1196
+ <li>
1197
+
1198
+
1199
+ <span class='type'>(<tt><span class='object_link'><a href="Simple/Error.html" title="Net::SSH::Simple::Error (class)">Net::SSH::Simple::Error</a></span></tt>)</span>
1200
+
1201
+
1202
+
1203
+ </li>
1204
+
1205
+ </ul>
1206
+
1207
+ </div><table class="source_code">
1208
+ <tr>
1209
+ <td>
1210
+ <pre class="lines">
1211
+
1212
+
1213
+ 317
1214
+ 318
1215
+ 319
1216
+ 320
1217
+ 321
1218
+ 322</pre>
1219
+ </td>
1220
+ <td>
1221
+ <pre class="code"><span class="info file"># File 'lib/net/ssh/simple.rb', line 317</span>
1222
+
1223
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_scp_get'>scp_get</span><span class='lparen'>(</span><span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
1224
+ <span class='id identifier rubyid_s'>s</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
1225
+ <span class='id identifier rubyid_r'>r</span> <span class='op'>=</span> <span class='id identifier rubyid_s'>s</span><span class='period'>.</span><span class='id identifier rubyid_scp_get'>scp_get</span><span class='lparen'>(</span><span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
1226
+ <span class='id identifier rubyid_s'>s</span><span class='period'>.</span><span class='id identifier rubyid_close'>close</span>
1227
+ <span class='id identifier rubyid_r'>r</span>
1228
+ <span class='kw'>end</span></pre>
1229
+ </td>
1230
+ </tr>
1231
+ </table>
1232
+ </div>
1233
+
1234
+ <div class="method_details ">
1235
+ <h3 class="signature " id="scp_put-class_method">
1236
+
1237
+ + (<tt><span class='object_link'><a href="Simple/Result.html" title="Net::SSH::Simple::Result (class)">Net::SSH::Simple::Result</a></span></tt>) <strong>scp_put</strong>(*args, &amp;block)
1238
+
1239
+
1240
+
1241
+
1242
+
1243
+ </h3><div class="docstring">
1244
+ <div class="discussion">
1245
+
1246
+ <p>SCP upload to a remote host. This will create a new connection for each
1247
+ invocation.</p>
1248
+
1249
+
1250
+ </div>
1251
+ </div>
1252
+ <div class="tags">
1253
+
1254
+ <div class="examples">
1255
+ <p class="tag_title">Examples:</p>
1256
+
1257
+
1258
+ <pre class="example code"><span class='comment'># SCP Upload
1259
+ </span><span class='const'>Net</span><span class='op'>::</span><span class='const'>SSH</span><span class='op'>::</span><span class='const'>Simple</span><span class='period'>.</span><span class='id identifier rubyid_scp_put'>scp_put</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>localhost</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/tmp/local_foo</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/tmp/remote_bar</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span></pre>
1260
+
1261
+
1262
+ <pre class="example code"><span class='comment'># Pass a block to monitor progress
1263
+ </span><span class='const'>Net</span><span class='op'>::</span><span class='const'>SSH</span><span class='op'>::</span><span class='const'>Simple</span><span class='period'>.</span><span class='id identifier rubyid_scp_put'>scp_put</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>localhost</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/tmp/local_foo</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/tmp/remote_bar</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_sent'>sent</span><span class='comma'>,</span> <span class='id identifier rubyid_total'>total</span><span class='op'>|</span>
1264
+ <span class='id identifier rubyid_puts'>puts</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Bytes uploaded: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_sent'>sent</span><span class='rbrace'>}</span><span class='tstring_content'> of </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_total'>total</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span>
1265
+ <span class='kw'>end</span></pre>
1266
+
1267
+ </div>
1268
+ <p class="tag_title">Parameters:</p>
1269
+ <ul class="param">
1270
+
1271
+ <li>
1272
+
1273
+ <span class='name'>host</span>
1274
+
1275
+
1276
+ <span class='type'>(<tt>String</tt>)</span>
1277
+
1278
+
1279
+
1280
+ &mdash;
1281
+ <div class='inline'>
1282
+ <p>Destination hostname or ip-address</p>
1283
+ </div>
1284
+
1285
+ </li>
1286
+
1287
+ <li>
1288
+
1289
+ <span class='name'>src</span>
1290
+
1291
+
1292
+ <span class='type'>(<tt>String</tt>)</span>
1293
+
1294
+
1295
+
1296
+ &mdash;
1297
+ <div class='inline'>
1298
+ <p>Source path (on localhost)</p>
1299
+ </div>
1300
+
1301
+ </li>
1302
+
1303
+ <li>
1304
+
1305
+ <span class='name'>dst</span>
1306
+
1307
+
1308
+ <span class='type'>(<tt>String</tt>)</span>
1309
+
1310
+
1311
+
1312
+ &mdash;
1313
+ <div class='inline'>
1314
+ <p>Destination path (on remote host)</p>
1315
+ </div>
1316
+
1317
+ </li>
1318
+
1319
+ <li>
1320
+
1321
+ <span class='name'>block</span>
1322
+
1323
+
1324
+ <span class='type'>(<tt>Block</tt>)</span>
1325
+
1326
+
1327
+
1328
+ &mdash;
1329
+ <div class='inline'>
1330
+ <p>Progress callback (optional)</p>
1331
+ </div>
1332
+
1333
+ </li>
1334
+
1335
+ <li>
1336
+
1337
+ <span class='name'>opts</span>
1338
+
1339
+
1340
+ <span class='type'>(<tt>Hash</tt>)</span>
1341
+
1342
+
1343
+
1344
+ &mdash;
1345
+ <div class='inline'>
1346
+ <p>SSH options</p>
1347
+ </div>
1348
+
1349
+ </li>
1350
+
1351
+ </ul>
1352
+
1353
+ <p class="tag_title">Returns:</p>
1354
+ <ul class="return">
1355
+
1356
+ <li>
1357
+
1358
+
1359
+ <span class='type'>(<tt><span class='object_link'><a href="Simple/Result.html" title="Net::SSH::Simple::Result (class)">Net::SSH::Simple::Result</a></span></tt>)</span>
1360
+
1361
+
1362
+
1363
+ &mdash;
1364
+ <div class='inline'>
1365
+ <p>Result</p>
1366
+ </div>
1367
+
1368
+ </li>
1369
+
1370
+ </ul>
1371
+ <p class="tag_title">Raises:</p>
1372
+ <ul class="raise">
1373
+
1374
+ <li>
1375
+
1376
+
1377
+ <span class='type'>(<tt><span class='object_link'><a href="Simple/Error.html" title="Net::SSH::Simple::Error (class)">Net::SSH::Simple::Error</a></span></tt>)</span>
1378
+
1379
+
1380
+
1381
+ </li>
1382
+
1383
+ </ul>
1384
+
1385
+ </div><table class="source_code">
1386
+ <tr>
1387
+ <td>
1388
+ <pre class="lines">
1389
+
1390
+
1391
+ 292
1392
+ 293
1393
+ 294
1394
+ 295
1395
+ 296
1396
+ 297</pre>
1397
+ </td>
1398
+ <td>
1399
+ <pre class="code"><span class="info file"># File 'lib/net/ssh/simple.rb', line 292</span>
1400
+
1401
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_scp_put'>scp_put</span><span class='lparen'>(</span><span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
1402
+ <span class='id identifier rubyid_s'>s</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
1403
+ <span class='id identifier rubyid_r'>r</span> <span class='op'>=</span> <span class='id identifier rubyid_s'>s</span><span class='period'>.</span><span class='id identifier rubyid_scp_put'>scp_put</span><span class='lparen'>(</span><span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
1404
+ <span class='id identifier rubyid_s'>s</span><span class='period'>.</span><span class='id identifier rubyid_close'>close</span>
1405
+ <span class='id identifier rubyid_r'>r</span>
1406
+ <span class='kw'>end</span></pre>
1407
+ </td>
1408
+ </tr>
1409
+ </table>
1410
+ </div>
1411
+
1412
+ <div class="method_details ">
1413
+ <h3 class="signature " id="scp_ul-class_method">
1414
+
1415
+ + (<tt>Object</tt>) <strong>scp_ul</strong>(*args, &amp;block)
1416
+
1417
+
1418
+
1419
+
1420
+
1421
+ </h3><div class="docstring">
1422
+ <div class="discussion">
1423
+ <div class="note deprecated"><strong>Deprecated.</strong> <div class='inline'>
1424
+ <p>Use scp_put instead.</p>
1425
+ </div></div>
1426
+
1427
+
1428
+ </div>
1429
+ </div>
1430
+ <div class="tags">
1431
+
1432
+
1433
+ </div><table class="source_code">
1434
+ <tr>
1435
+ <td>
1436
+ <pre class="lines">
1437
+
1438
+
1439
+ 325
1440
+ 326
1441
+ 327
1442
+ 328</pre>
1443
+ </td>
1444
+ <td>
1445
+ <pre class="code"><span class="info file"># File 'lib/net/ssh/simple.rb', line 325</span>
1446
+
1447
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_scp_ul'>scp_ul</span><span class='lparen'>(</span><span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
1448
+ <span class='id identifier rubyid_warn'>warn</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>[DEPRECATION] Net::SSH::Simple.scp_ul is deprecated. Please use .scp_put instead (usage is identical, the method was only renamed).</span><span class='tstring_end'>&quot;</span></span>
1449
+ <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_scp_put'>scp_put</span><span class='lparen'>(</span><span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
1450
+ <span class='kw'>end</span></pre>
1451
+ </td>
1452
+ </tr>
1453
+ </table>
1454
+ </div>
1455
+
1456
+ <div class="method_details ">
1457
+ <h3 class="signature " id="ssh-class_method">
1458
+
1459
+ + (<tt><span class='object_link'><a href="Simple/Result.html" title="Net::SSH::Simple::Result (class)">Net::SSH::Simple::Result</a></span></tt>) <strong>ssh</strong>(*args, &amp;block)
1460
+
1461
+
1462
+
1463
+
1464
+
1465
+ </h3><div class="docstring">
1466
+ <div class="discussion">
1467
+
1468
+ <p>Perform ssh command on a remote host and capture the result. This will
1469
+ create a new connection for each invocation.</p>
1470
+
1471
+
1472
+ </div>
1473
+ </div>
1474
+ <div class="tags">
1475
+
1476
+ <div class="examples">
1477
+ <p class="tag_title">Examples:</p>
1478
+
1479
+
1480
+ <pre class="example code"><span class='const'>Net</span><span class='op'>::</span><span class='const'>SSH</span><span class='op'>::</span><span class='const'>Simple</span><span class='period'>.</span><span class='id identifier rubyid_ssh'>ssh</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>localhost</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>echo Hello</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span> <span class='comment'>#=&gt; Net::SSH::Simple::Result</span></pre>
1481
+
1482
+
1483
+ <pre class="example code"><span class='const'>Net</span><span class='op'>::</span><span class='const'>SSH</span><span class='op'>::</span><span class='const'>Simple</span><span class='period'>.</span><span class='id identifier rubyid_ssh'>ssh</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>localhost</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>echo Hello</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_stdout'>stdout</span> <span class='comment'>#=&gt; &quot;Hello&quot;</span></pre>
1484
+
1485
+ </div>
1486
+ <p class="tag_title">Parameters:</p>
1487
+ <ul class="param">
1488
+
1489
+ <li>
1490
+
1491
+ <span class='name'>host</span>
1492
+
1493
+
1494
+ <span class='type'>(<tt>String</tt>)</span>
1495
+
1496
+
1497
+
1498
+ &mdash;
1499
+ <div class='inline'>
1500
+ <p>Destination hostname or ip-address</p>
1501
+ </div>
1502
+
1503
+ </li>
1504
+
1505
+ <li>
1506
+
1507
+ <span class='name'>cmd</span>
1508
+
1509
+
1510
+ <span class='type'>(<tt>String</tt>)</span>
1511
+
1512
+
1513
+
1514
+ &mdash;
1515
+ <div class='inline'>
1516
+ <p>Shell command to execute</p>
1517
+ </div>
1518
+
1519
+ </li>
1520
+
1521
+ <li>
1522
+
1523
+ <span class='name'>block</span>
1524
+
1525
+
1526
+ <span class='type'>(<tt>Block</tt>)</span>
1527
+
1528
+
1529
+
1530
+ &mdash;
1531
+ <div class='inline'>
1532
+ <p>Use the event-API (see example above)</p>
1533
+ </div>
1534
+
1535
+ </li>
1536
+
1537
+ <li>
1538
+
1539
+ <span class='name'>opts</span>
1540
+
1541
+
1542
+ <span class='type'>(<tt>Hash</tt>)</span>
1543
+
1544
+
1545
+
1546
+ &mdash;
1547
+ <div class='inline'>
1548
+ <p>SSH options</p>
1549
+ </div>
1550
+
1551
+ </li>
1552
+
1553
+ </ul>
1554
+
1555
+ <p class="tag_title">Returns:</p>
1556
+ <ul class="return">
1557
+
1558
+ <li>
1559
+
1560
+
1561
+ <span class='type'>(<tt><span class='object_link'><a href="Simple/Result.html" title="Net::SSH::Simple::Result (class)">Net::SSH::Simple::Result</a></span></tt>)</span>
1562
+
1563
+
1564
+
1565
+ &mdash;
1566
+ <div class='inline'>
1567
+ <p>Result</p>
1568
+ </div>
1569
+
1570
+ </li>
1571
+
1572
+ </ul>
1573
+ <p class="tag_title">Raises:</p>
1574
+ <ul class="raise">
1575
+
1576
+ <li>
1577
+
1578
+
1579
+ <span class='type'>(<tt><span class='object_link'><a href="Simple/Error.html" title="Net::SSH::Simple::Error (class)">Net::SSH::Simple::Error</a></span></tt>)</span>
1580
+
1581
+
1582
+
1583
+ </li>
1584
+
1585
+ </ul>
1586
+
1587
+ </div><table class="source_code">
1588
+ <tr>
1589
+ <td>
1590
+ <pre class="lines">
1591
+
1592
+
1593
+ 268
1594
+ 269
1595
+ 270
1596
+ 271
1597
+ 272
1598
+ 273</pre>
1599
+ </td>
1600
+ <td>
1601
+ <pre class="code"><span class="info file"># File 'lib/net/ssh/simple.rb', line 268</span>
1602
+
1603
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_ssh'>ssh</span><span class='lparen'>(</span><span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
1604
+ <span class='id identifier rubyid_s'>s</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
1605
+ <span class='id identifier rubyid_r'>r</span> <span class='op'>=</span> <span class='id identifier rubyid_s'>s</span><span class='period'>.</span><span class='id identifier rubyid_ssh'>ssh</span><span class='lparen'>(</span><span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
1606
+ <span class='id identifier rubyid_s'>s</span><span class='period'>.</span><span class='id identifier rubyid_close'>close</span>
1607
+ <span class='id identifier rubyid_r'>r</span>
1608
+ <span class='kw'>end</span></pre>
1609
+ </td>
1610
+ </tr>
1611
+ </table>
1612
+ </div>
1613
+
1614
+ <div class="method_details ">
1615
+ <h3 class="signature " id="sync-class_method">
1616
+
1617
+ + (<tt><span class='object_link'><a href="Simple/Result.html" title="Net::SSH::Simple::Result (class)">Net::SSH::Simple::Result</a></span></tt>) <strong>sync</strong>(opts = {}, &amp;block)
1618
+
1619
+
1620
+
1621
+
1622
+
1623
+ </h3><div class="docstring">
1624
+ <div class="discussion">
1625
+
1626
+ <p>Perform a sequence of ssh/scp operations.</p>
1627
+
1628
+
1629
+ </div>
1630
+ </div>
1631
+ <div class="tags">
1632
+ <p class="tag_title">Parameters:</p>
1633
+ <ul class="param">
1634
+
1635
+ <li>
1636
+
1637
+ <span class='name'>opts</span>
1638
+
1639
+
1640
+ <span class='type'>(<tt>Hash</tt>)</span>
1641
+
1642
+
1643
+ <em class="default">(defaults to: <tt>{}</tt>)</em>
1644
+
1645
+
1646
+ &mdash;
1647
+ <div class='inline'>
1648
+ <p>SSH options</p>
1649
+ </div>
1650
+
1651
+ </li>
1652
+
1653
+ </ul>
1654
+
1655
+ <p class="tag_title">Returns:</p>
1656
+ <ul class="return">
1657
+
1658
+ <li>
1659
+
1660
+
1661
+ <span class='type'>(<tt><span class='object_link'><a href="Simple/Result.html" title="Net::SSH::Simple::Result (class)">Net::SSH::Simple::Result</a></span></tt>)</span>
1662
+
1663
+
1664
+
1665
+ &mdash;
1666
+ <div class='inline'>
1667
+ <p>Result</p>
1668
+ </div>
1669
+
1670
+ </li>
1671
+
1672
+ </ul>
1673
+
1674
+ </div><table class="source_code">
1675
+ <tr>
1676
+ <td>
1677
+ <pre class="lines">
1678
+
1679
+
1680
+ 599
1681
+ 600
1682
+ 601
1683
+ 602
1684
+ 603
1685
+ 604</pre>
1686
+ </td>
1687
+ <td>
1688
+ <pre class="code"><span class="info file"># File 'lib/net/ssh/simple.rb', line 599</span>
1689
+
1690
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_sync'>sync</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='op'>=</span><span class='lbrace'>{</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
1691
+ <span class='id identifier rubyid_s'>s</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='rparen'>)</span>
1692
+ <span class='id identifier rubyid_r'>r</span> <span class='op'>=</span> <span class='const'>Blockenspiel</span><span class='period'>.</span><span class='id identifier rubyid_invoke'>invoke</span><span class='lparen'>(</span><span class='id identifier rubyid_block'>block</span><span class='comma'>,</span> <span class='id identifier rubyid_s'>s</span><span class='rparen'>)</span>
1693
+ <span class='id identifier rubyid_s'>s</span><span class='period'>.</span><span class='id identifier rubyid_close'>close</span>
1694
+ <span class='id identifier rubyid_r'>r</span>
1695
+ <span class='kw'>end</span></pre>
1696
+ </td>
1697
+ </tr>
1698
+ </table>
1699
+ </div>
1700
+
1701
+ </div>
1702
+
1703
+ <div id="instance_method_details" class="method_details_list">
1704
+ <h2>Instance Method Details</h2>
1705
+
1706
+
1707
+ <div class="method_details first">
1708
+ <h3 class="signature first" id="async-instance_method">
1709
+
1710
+ - (<tt>Thread</tt>) <strong>async</strong>(opts = {}, &amp;block)
1711
+
1712
+
1713
+
1714
+
1715
+
1716
+ </h3><div class="docstring">
1717
+ <div class="discussion">
1718
+
1719
+ <p>Spawn a Thread to perform a sequence of ssh/scp operations.</p>
1720
+
1721
+
1722
+ </div>
1723
+ </div>
1724
+ <div class="tags">
1725
+ <p class="tag_title">Parameters:</p>
1726
+ <ul class="param">
1727
+
1728
+ <li>
1729
+
1730
+ <span class='name'>block</span>
1731
+
1732
+
1733
+ <span class='type'>(<tt>Block</tt>)</span>
1734
+
1735
+
1736
+
1737
+ </li>
1738
+
1739
+ <li>
1740
+
1741
+ <span class='name'>opts</span>
1742
+
1743
+
1744
+ <span class='type'>(<tt>Hash</tt>)</span>
1745
+
1746
+
1747
+ <em class="default">(defaults to: <tt>{}</tt>)</em>
1748
+
1749
+
1750
+ &mdash;
1751
+ <div class='inline'>
1752
+ <p>SSH options</p>
1753
+ </div>
1754
+
1755
+ </li>
1756
+
1757
+ </ul>
1758
+
1759
+ <p class="tag_title">Returns:</p>
1760
+ <ul class="return">
1761
+
1762
+ <li>
1763
+
1764
+
1765
+ <span class='type'>(<tt>Thread</tt>)</span>
1766
+
1767
+
1768
+
1769
+ &mdash;
1770
+ <div class='inline'>
1771
+ <p>Thread executing the SSH-Block.</p>
1772
+ </div>
1773
+
1774
+ </li>
1775
+
1776
+ </ul>
1777
+
1778
+ </div><table class="source_code">
1779
+ <tr>
1780
+ <td>
1781
+ <pre class="lines">
1782
+
1783
+
1784
+ 588
1785
+ 589
1786
+ 590
1787
+ 591</pre>
1788
+ </td>
1789
+ <td>
1790
+ <pre class="code"><span class="info file"># File 'lib/net/ssh/simple.rb', line 588</span>
1791
+
1792
+ <span class='kw'>def</span> <span class='id identifier rubyid_async'>async</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='op'>=</span><span class='lbrace'>{</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
1793
+ <span class='id identifier rubyid_opts'>opts</span> <span class='op'>=</span> <span class='ivar'>@opts</span><span class='period'>.</span><span class='id identifier rubyid_merge'>merge</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='rparen'>)</span>
1794
+ <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid_async'>async</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
1795
+ <span class='kw'>end</span></pre>
1796
+ </td>
1797
+ </tr>
1798
+ </table>
1799
+ </div>
1800
+
1801
+ <div class="method_details ">
1802
+ <h3 class="signature " id="close-instance_method">
1803
+
1804
+ - (<tt><span class='object_link'><a href="Simple/Result.html" title="Net::SSH::Simple::Result (class)">Net::SSH::Simple::Result</a></span></tt>) <strong>close</strong>
1805
+
1806
+
1807
+
1808
+
1809
+
1810
+ </h3><div class="docstring">
1811
+ <div class="discussion">
1812
+
1813
+ <p>Close and cleanup.</p>
1814
+
1815
+
1816
+ </div>
1817
+ </div>
1818
+ <div class="tags">
1819
+
1820
+ <p class="tag_title">Returns:</p>
1821
+ <ul class="return">
1822
+
1823
+ <li>
1824
+
1825
+
1826
+ <span class='type'>(<tt><span class='object_link'><a href="Simple/Result.html" title="Net::SSH::Simple::Result (class)">Net::SSH::Simple::Result</a></span></tt>)</span>
1827
+
1828
+
1829
+
1830
+ &mdash;
1831
+ <div class='inline'>
1832
+ <p>Result</p>
1833
+ </div>
1834
+
1835
+ </li>
1836
+
1837
+ </ul>
1838
+
1839
+ </div><table class="source_code">
1840
+ <tr>
1841
+ <td>
1842
+ <pre class="lines">
1843
+
1844
+
1845
+ 611
1846
+ 612
1847
+ 613
1848
+ 614
1849
+ 615
1850
+ 616
1851
+ 617
1852
+ 618
1853
+ 619
1854
+ 620
1855
+ 621
1856
+ 622
1857
+ 623</pre>
1858
+ </td>
1859
+ <td>
1860
+ <pre class="code"><span class="info file"># File 'lib/net/ssh/simple.rb', line 611</span>
1861
+
1862
+ <span class='kw'>def</span> <span class='id identifier rubyid_close'>close</span>
1863
+ <span class='const'>Thread</span><span class='period'>.</span><span class='id identifier rubyid_current'>current</span><span class='lbracket'>[</span><span class='symbol'>:ssh_simple_sessions</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_values'>values</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_session'>session</span><span class='op'>|</span>
1864
+ <span class='kw'>begin</span>
1865
+ <span class='const'>Timeout</span><span class='period'>.</span><span class='id identifier rubyid_timeout'>timeout</span><span class='lparen'>(</span><span class='ivar'>@opts</span><span class='lbracket'>[</span><span class='symbol'>:close_timeout</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='int'>5</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='id identifier rubyid_session'>session</span><span class='period'>.</span><span class='id identifier rubyid_close'>close</span> <span class='rbrace'>}</span>
1866
+ <span class='kw'>rescue</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_e'>e</span>
1867
+ <span class='kw'>begin</span>
1868
+ <span class='id identifier rubyid_session'>session</span><span class='period'>.</span><span class='id identifier rubyid_shutdown!'>shutdown!</span>
1869
+ <span class='kw'>rescue</span>
1870
+ <span class='kw'>end</span>
1871
+ <span class='kw'>end</span>
1872
+ <span class='kw'>end</span>
1873
+ <span class='ivar'>@result</span>
1874
+ <span class='kw'>end</span></pre>
1875
+ </td>
1876
+ </tr>
1877
+ </table>
1878
+ </div>
1879
+
1880
+ <div class="method_details ">
1881
+ <h3 class="signature " id="scp_dl-instance_method">
1882
+
1883
+ - (<tt>Object</tt>) <strong>scp_dl</strong>(host, src, dst, opts = {}, &amp;block)
1884
+
1885
+
1886
+
1887
+
1888
+
1889
+ </h3><div class="docstring">
1890
+ <div class="discussion">
1891
+ <div class="note deprecated"><strong>Deprecated.</strong> <div class='inline'>
1892
+ <p>Use scp_get instead.</p>
1893
+ </div></div>
1894
+
1895
+
1896
+ </div>
1897
+ </div>
1898
+ <div class="tags">
1899
+
1900
+
1901
+ </div><table class="source_code">
1902
+ <tr>
1903
+ <td>
1904
+ <pre class="lines">
1905
+
1906
+
1907
+ 378
1908
+ 379
1909
+ 380
1910
+ 381</pre>
1911
+ </td>
1912
+ <td>
1913
+ <pre class="code"><span class="info file"># File 'lib/net/ssh/simple.rb', line 378</span>
1914
+
1915
+ <span class='kw'>def</span> <span class='id identifier rubyid_scp_dl'>scp_dl</span><span class='lparen'>(</span><span class='id identifier rubyid_host'>host</span><span class='comma'>,</span> <span class='id identifier rubyid_src'>src</span><span class='comma'>,</span> <span class='id identifier rubyid_dst'>dst</span><span class='comma'>,</span> <span class='id identifier rubyid_opts'>opts</span><span class='op'>=</span><span class='lbrace'>{</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
1916
+ <span class='id identifier rubyid_warn'>warn</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>[DEPRECATION] Net::SSH::Simple#scp_dl is deprecated. Please use #scp_get instead (usage is identical, the method was only renamed).</span><span class='tstring_end'>&quot;</span></span>
1917
+ <span class='id identifier rubyid_scp_get'>scp_get</span><span class='lparen'>(</span><span class='id identifier rubyid_host'>host</span><span class='comma'>,</span> <span class='id identifier rubyid_src'>src</span><span class='comma'>,</span> <span class='id identifier rubyid_dst'>dst</span><span class='comma'>,</span> <span class='id identifier rubyid_opts'>opts</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
1918
+ <span class='kw'>end</span></pre>
1919
+ </td>
1920
+ </tr>
1921
+ </table>
1922
+ </div>
1923
+
1924
+ <div class="method_details ">
1925
+ <h3 class="signature " id="scp_get-instance_method">
1926
+
1927
+ - (<tt><span class='object_link'><a href="Simple/Result.html" title="Net::SSH::Simple::Result (class)">Net::SSH::Simple::Result</a></span></tt>) <strong>scp_get</strong>(host, src, dst, opts = {}, &amp;block)
1928
+
1929
+
1930
+
1931
+
1932
+
1933
+ </h3><div class="docstring">
1934
+ <div class="discussion">
1935
+
1936
+ <p>SCP download from a remote host. The underlying Net::SSH::Simple instance
1937
+ will re-use existing connections for optimal performance.</p>
1938
+
1939
+
1940
+ </div>
1941
+ </div>
1942
+ <div class="tags">
1943
+ <p class="tag_title">Parameters:</p>
1944
+ <ul class="param">
1945
+
1946
+ <li>
1947
+
1948
+ <span class='name'>host</span>
1949
+
1950
+
1951
+ <span class='type'>(<tt>String</tt>)</span>
1952
+
1953
+
1954
+
1955
+ &mdash;
1956
+ <div class='inline'>
1957
+ <p>Destination hostname or ip-address</p>
1958
+ </div>
1959
+
1960
+ </li>
1961
+
1962
+ <li>
1963
+
1964
+ <span class='name'>src</span>
1965
+
1966
+
1967
+ <span class='type'>(<tt>String</tt>)</span>
1968
+
1969
+
1970
+
1971
+ &mdash;
1972
+ <div class='inline'>
1973
+ <p>Source path (on remote host)</p>
1974
+ </div>
1975
+
1976
+ </li>
1977
+
1978
+ <li>
1979
+
1980
+ <span class='name'>dst</span>
1981
+
1982
+
1983
+ <span class='type'>(<tt>String</tt>)</span>
1984
+
1985
+
1986
+
1987
+ &mdash;
1988
+ <div class='inline'>
1989
+ <p>Destination path (on localhost)</p>
1990
+ </div>
1991
+
1992
+ </li>
1993
+
1994
+ <li>
1995
+
1996
+ <span class='name'>block</span>
1997
+
1998
+
1999
+ <span class='type'>(<tt>Block</tt>)</span>
2000
+
2001
+
2002
+
2003
+ &mdash;
2004
+ <div class='inline'>
2005
+ <p>Progress callback (optional)</p>
2006
+ </div>
2007
+
2008
+ </li>
2009
+
2010
+ <li>
2011
+
2012
+ <span class='name'>opts</span>
2013
+
2014
+
2015
+ <span class='type'>(<tt>Hash</tt>)</span>
2016
+
2017
+
2018
+ <em class="default">(defaults to: <tt>{}</tt>)</em>
2019
+
2020
+
2021
+ &mdash;
2022
+ <div class='inline'>
2023
+ <p>SSH options</p>
2024
+ </div>
2025
+
2026
+ </li>
2027
+
2028
+ </ul>
2029
+
2030
+ <p class="tag_title">Returns:</p>
2031
+ <ul class="return">
2032
+
2033
+ <li>
2034
+
2035
+
2036
+ <span class='type'>(<tt><span class='object_link'><a href="Simple/Result.html" title="Net::SSH::Simple::Result (class)">Net::SSH::Simple::Result</a></span></tt>)</span>
2037
+
2038
+
2039
+
2040
+ &mdash;
2041
+ <div class='inline'>
2042
+ <p>Result</p>
2043
+ </div>
2044
+
2045
+ </li>
2046
+
2047
+ </ul>
2048
+
2049
+ <p class="tag_title">See Also:</p>
2050
+ <ul class="see">
2051
+
2052
+ <li><span class='object_link'><a href="#scp_put-instance_method" title="Net::SSH::Simple#scp_put (method)">#scp_put</a></span></li>
2053
+
2054
+ </ul>
2055
+
2056
+ </div><table class="source_code">
2057
+ <tr>
2058
+ <td>
2059
+ <pre class="lines">
2060
+
2061
+
2062
+ 366
2063
+ 367
2064
+ 368
2065
+ 369</pre>
2066
+ </td>
2067
+ <td>
2068
+ <pre class="code"><span class="info file"># File 'lib/net/ssh/simple.rb', line 366</span>
2069
+
2070
+ <span class='kw'>def</span> <span class='id identifier rubyid_scp_get'>scp_get</span><span class='lparen'>(</span><span class='id identifier rubyid_host'>host</span><span class='comma'>,</span> <span class='id identifier rubyid_src'>src</span><span class='comma'>,</span> <span class='id identifier rubyid_dst'>dst</span><span class='comma'>,</span> <span class='id identifier rubyid_opts'>opts</span><span class='op'>=</span><span class='lbrace'>{</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
2071
+ <span class='id identifier rubyid_opts'>opts</span> <span class='op'>=</span> <span class='ivar'>@opts</span><span class='period'>.</span><span class='id identifier rubyid_merge'>merge</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='rparen'>)</span>
2072
+ <span class='id identifier rubyid_scp'>scp</span><span class='lparen'>(</span><span class='symbol'>:download</span><span class='comma'>,</span> <span class='id identifier rubyid_host'>host</span><span class='comma'>,</span> <span class='id identifier rubyid_src'>src</span><span class='comma'>,</span> <span class='id identifier rubyid_dst'>dst</span><span class='comma'>,</span> <span class='id identifier rubyid_opts'>opts</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
2073
+ <span class='kw'>end</span></pre>
2074
+ </td>
2075
+ </tr>
2076
+ </table>
2077
+ </div>
2078
+
2079
+ <div class="method_details ">
2080
+ <h3 class="signature " id="scp_put-instance_method">
2081
+
2082
+ - (<tt><span class='object_link'><a href="Simple/Result.html" title="Net::SSH::Simple::Result (class)">Net::SSH::Simple::Result</a></span></tt>) <strong>scp_put</strong>(host, src, dst, opts = {}, &amp;block)
2083
+
2084
+
2085
+
2086
+
2087
+
2088
+ </h3><div class="docstring">
2089
+ <div class="discussion">
2090
+
2091
+ <p>SCP upload to a remote host. The underlying Net::SSH::Simple instance will
2092
+ re-use existing connections for optimal performance.</p>
2093
+
2094
+
2095
+ </div>
2096
+ </div>
2097
+ <div class="tags">
2098
+ <p class="tag_title">Parameters:</p>
2099
+ <ul class="param">
2100
+
2101
+ <li>
2102
+
2103
+ <span class='name'>host</span>
2104
+
2105
+
2106
+ <span class='type'>(<tt>String</tt>)</span>
2107
+
2108
+
2109
+
2110
+ &mdash;
2111
+ <div class='inline'>
2112
+ <p>Destination hostname or ip-address</p>
2113
+ </div>
2114
+
2115
+ </li>
2116
+
2117
+ <li>
2118
+
2119
+ <span class='name'>src</span>
2120
+
2121
+
2122
+ <span class='type'>(<tt>String</tt>)</span>
2123
+
2124
+
2125
+
2126
+ &mdash;
2127
+ <div class='inline'>
2128
+ <p>Source path (on localhost)</p>
2129
+ </div>
2130
+
2131
+ </li>
2132
+
2133
+ <li>
2134
+
2135
+ <span class='name'>dst</span>
2136
+
2137
+
2138
+ <span class='type'>(<tt>String</tt>)</span>
2139
+
2140
+
2141
+
2142
+ &mdash;
2143
+ <div class='inline'>
2144
+ <p>Destination path (on remote host)</p>
2145
+ </div>
2146
+
2147
+ </li>
2148
+
2149
+ <li>
2150
+
2151
+ <span class='name'>block</span>
2152
+
2153
+
2154
+ <span class='type'>(<tt>Block</tt>)</span>
2155
+
2156
+
2157
+
2158
+ &mdash;
2159
+ <div class='inline'>
2160
+ <p>Progress callback (optional)</p>
2161
+ </div>
2162
+
2163
+ </li>
2164
+
2165
+ <li>
2166
+
2167
+ <span class='name'>opts</span>
2168
+
2169
+
2170
+ <span class='type'>(<tt>Hash</tt>)</span>
2171
+
2172
+
2173
+ <em class="default">(defaults to: <tt>{}</tt>)</em>
2174
+
2175
+
2176
+ &mdash;
2177
+ <div class='inline'>
2178
+ <p>SSH options</p>
2179
+ </div>
2180
+
2181
+ </li>
2182
+
2183
+ </ul>
2184
+
2185
+ <p class="tag_title">Returns:</p>
2186
+ <ul class="return">
2187
+
2188
+ <li>
2189
+
2190
+
2191
+ <span class='type'>(<tt><span class='object_link'><a href="Simple/Result.html" title="Net::SSH::Simple::Result (class)">Net::SSH::Simple::Result</a></span></tt>)</span>
2192
+
2193
+
2194
+
2195
+ &mdash;
2196
+ <div class='inline'>
2197
+ <p>Result</p>
2198
+ </div>
2199
+
2200
+ </li>
2201
+
2202
+ </ul>
2203
+
2204
+ </div><table class="source_code">
2205
+ <tr>
2206
+ <td>
2207
+ <pre class="lines">
2208
+
2209
+
2210
+ 348
2211
+ 349
2212
+ 350
2213
+ 351</pre>
2214
+ </td>
2215
+ <td>
2216
+ <pre class="code"><span class="info file"># File 'lib/net/ssh/simple.rb', line 348</span>
2217
+
2218
+ <span class='kw'>def</span> <span class='id identifier rubyid_scp_put'>scp_put</span><span class='lparen'>(</span><span class='id identifier rubyid_host'>host</span><span class='comma'>,</span> <span class='id identifier rubyid_src'>src</span><span class='comma'>,</span> <span class='id identifier rubyid_dst'>dst</span><span class='comma'>,</span> <span class='id identifier rubyid_opts'>opts</span><span class='op'>=</span><span class='lbrace'>{</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
2219
+ <span class='id identifier rubyid_opts'>opts</span> <span class='op'>=</span> <span class='ivar'>@opts</span><span class='period'>.</span><span class='id identifier rubyid_merge'>merge</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='rparen'>)</span>
2220
+ <span class='id identifier rubyid_scp'>scp</span><span class='lparen'>(</span><span class='symbol'>:upload</span><span class='comma'>,</span> <span class='id identifier rubyid_host'>host</span><span class='comma'>,</span> <span class='id identifier rubyid_src'>src</span><span class='comma'>,</span> <span class='id identifier rubyid_dst'>dst</span><span class='comma'>,</span> <span class='id identifier rubyid_opts'>opts</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
2221
+ <span class='kw'>end</span></pre>
2222
+ </td>
2223
+ </tr>
2224
+ </table>
2225
+ </div>
2226
+
2227
+ <div class="method_details ">
2228
+ <h3 class="signature " id="scp_ul-instance_method">
2229
+
2230
+ - (<tt>Object</tt>) <strong>scp_ul</strong>(host, src, dst, opts = {}, &amp;block)
2231
+
2232
+
2233
+
2234
+
2235
+
2236
+ </h3><div class="docstring">
2237
+ <div class="discussion">
2238
+ <div class="note deprecated"><strong>Deprecated.</strong> <div class='inline'>
2239
+ <p>Use scp_put instead.</p>
2240
+ </div></div>
2241
+
2242
+
2243
+ </div>
2244
+ </div>
2245
+ <div class="tags">
2246
+
2247
+
2248
+ </div><table class="source_code">
2249
+ <tr>
2250
+ <td>
2251
+ <pre class="lines">
2252
+
2253
+
2254
+ 372
2255
+ 373
2256
+ 374
2257
+ 375</pre>
2258
+ </td>
2259
+ <td>
2260
+ <pre class="code"><span class="info file"># File 'lib/net/ssh/simple.rb', line 372</span>
2261
+
2262
+ <span class='kw'>def</span> <span class='id identifier rubyid_scp_ul'>scp_ul</span><span class='lparen'>(</span><span class='id identifier rubyid_host'>host</span><span class='comma'>,</span> <span class='id identifier rubyid_src'>src</span><span class='comma'>,</span> <span class='id identifier rubyid_dst'>dst</span><span class='comma'>,</span> <span class='id identifier rubyid_opts'>opts</span><span class='op'>=</span><span class='lbrace'>{</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
2263
+ <span class='id identifier rubyid_warn'>warn</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>[DEPRECATION] Net::SSH::Simple#scp_ul is deprecated. Please use #scp_put instead (usage is identical, the method was only renamed).</span><span class='tstring_end'>&quot;</span></span>
2264
+ <span class='id identifier rubyid_scp_put'>scp_put</span><span class='lparen'>(</span><span class='id identifier rubyid_host'>host</span><span class='comma'>,</span> <span class='id identifier rubyid_src'>src</span><span class='comma'>,</span> <span class='id identifier rubyid_dst'>dst</span><span class='comma'>,</span> <span class='id identifier rubyid_opts'>opts</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
2265
+ <span class='kw'>end</span></pre>
2266
+ </td>
2267
+ </tr>
2268
+ </table>
2269
+ </div>
2270
+
2271
+ <div class="method_details ">
2272
+ <h3 class="signature " id="ssh-instance_method">
2273
+
2274
+ - (<tt><span class='object_link'><a href="Simple/Result.html" title="Net::SSH::Simple::Result (class)">Net::SSH::Simple::Result</a></span></tt>) <strong>ssh</strong>(host, cmd, opts = {}, &amp;block)
2275
+
2276
+
2277
+
2278
+
2279
+
2280
+ </h3><div class="docstring">
2281
+ <div class="discussion">
2282
+
2283
+ <p>Perform SSH operation on a remote host and capture the result. The
2284
+ underlying Net::SSH::Simple instance will re-use existing connections for
2285
+ optimal performance.</p>
2286
+
2287
+
2288
+ </div>
2289
+ </div>
2290
+ <div class="tags">
2291
+ <p class="tag_title">Parameters:</p>
2292
+ <ul class="param">
2293
+
2294
+ <li>
2295
+
2296
+ <span class='name'>host</span>
2297
+
2298
+
2299
+ <span class='type'>(<tt>String</tt>)</span>
2300
+
2301
+
2302
+
2303
+ &mdash;
2304
+ <div class='inline'>
2305
+ <p>Destination hostname or ip-address</p>
2306
+ </div>
2307
+
2308
+ </li>
2309
+
2310
+ <li>
2311
+
2312
+ <span class='name'>cmd</span>
2313
+
2314
+
2315
+ <span class='type'>(<tt>String</tt>)</span>
2316
+
2317
+
2318
+
2319
+ &mdash;
2320
+ <div class='inline'>
2321
+ <p>Shell command to execute</p>
2322
+ </div>
2323
+
2324
+ </li>
2325
+
2326
+ <li>
2327
+
2328
+ <span class='name'>block</span>
2329
+
2330
+
2331
+ <span class='type'>(<tt>Block</tt>)</span>
2332
+
2333
+
2334
+
2335
+ &mdash;
2336
+ <div class='inline'>
2337
+ <p>Use the event-API (see example above)</p>
2338
+ </div>
2339
+
2340
+ </li>
2341
+
2342
+ <li>
2343
+
2344
+ <span class='name'>opts</span>
2345
+
2346
+
2347
+ <span class='type'>(<tt>Hash</tt>)</span>
2348
+
2349
+
2350
+ <em class="default">(defaults to: <tt>{}</tt>)</em>
2351
+
2352
+
2353
+ &mdash;
2354
+ <div class='inline'>
2355
+ <p>SSH options</p>
2356
+ </div>
2357
+
2358
+ </li>
2359
+
2360
+ </ul>
2361
+
2362
+
2363
+
2364
+
2365
+
2366
+
2367
+
2368
+
2369
+ <p class="tag_title">Options Hash (<tt>opts</tt>):</p>
2370
+ <ul class="option">
2371
+
2372
+ <li>
2373
+ <span class="name">:auth_methods</span>
2374
+ <span class="type">(<tt>Array</tt>)</span>
2375
+ <span class="default">
2376
+
2377
+ </span>
2378
+
2379
+ &mdash; <div class='inline'>
2380
+ <p>an array of authentication methods to try</p>
2381
+ </div>
2382
+
2383
+ </li>
2384
+
2385
+ <li>
2386
+ <span class="name">:compression</span>
2387
+ <span class="type">(<tt>String</tt>)</span>
2388
+ <span class="default">
2389
+
2390
+ </span>
2391
+
2392
+ &mdash; <div class='inline'>
2393
+ <p>the compression algorithm to use, or true to use whatever is supported.</p>
2394
+ </div>
2395
+
2396
+ </li>
2397
+
2398
+ <li>
2399
+ <span class="name">:compression_level</span>
2400
+ <span class="type">(<tt>Number</tt>)</span>
2401
+ <span class="default">
2402
+
2403
+ </span>
2404
+
2405
+ &mdash; <div class='inline'>
2406
+ <p>the compression level to use when sending data</p>
2407
+ </div>
2408
+
2409
+ </li>
2410
+
2411
+ <li>
2412
+ <span class="name">:opts</span>
2413
+ <span class="type">(<tt>String/boolean</tt>)</span>
2414
+ <span class="default">
2415
+
2416
+ &mdash; default:
2417
+ <tt>true</tt>
2418
+
2419
+ </span>
2420
+
2421
+ &mdash; <div class='inline'>
2422
+ <p>set to true to load the default OpenSSH opts files (~/.ssh/opts,
2423
+ /etc/ssh_opts), or to false to not load them, or to a file-name (or array
2424
+ of file-names) to load those specific configuration files.</p>
2425
+ </div>
2426
+
2427
+ </li>
2428
+
2429
+ <li>
2430
+ <span class="name">:encryption</span>
2431
+ <span class="type">(<tt>Array</tt>)</span>
2432
+ <span class="default">
2433
+
2434
+ </span>
2435
+
2436
+ &mdash; <div class='inline'>
2437
+ <p>the encryption cipher (or ciphers) to use</p>
2438
+ </div>
2439
+
2440
+ </li>
2441
+
2442
+ <li>
2443
+ <span class="name">:forward_agent</span>
2444
+ <span class="type">(<tt>boolean</tt>)</span>
2445
+ <span class="default">
2446
+
2447
+ </span>
2448
+
2449
+ &mdash; <div class='inline'>
2450
+ <p>set to true if you want the SSH agent connection to be forwarded</p>
2451
+ </div>
2452
+
2453
+ </li>
2454
+
2455
+ <li>
2456
+ <span class="name">:global_known_hosts_file</span>
2457
+ <span class="type">(<tt>String/Array</tt>)</span>
2458
+ <span class="default">
2459
+
2460
+ &mdash; default:
2461
+ <tt>['/etc/ssh/known_hosts'</tt>, <tt>'/etc/ssh/known_hosts2']</tt>
2462
+
2463
+ </span>
2464
+
2465
+ &mdash; <div class='inline'>
2466
+ <p>the location of the global known hosts file. Set to an array if you want to
2467
+ specify multiple global known hosts files.</p>
2468
+ </div>
2469
+
2470
+ </li>
2471
+
2472
+ <li>
2473
+ <span class="name">:hmac</span>
2474
+ <span class="type">(<tt>String/Array</tt>)</span>
2475
+ <span class="default">
2476
+
2477
+ </span>
2478
+
2479
+ &mdash; <div class='inline'>
2480
+ <p>the hmac algorithm (or algorithms) to use</p>
2481
+ </div>
2482
+
2483
+ </li>
2484
+
2485
+ <li>
2486
+ <span class="name">:host_key</span>
2487
+ <span class="type">(<tt>String</tt>)</span>
2488
+ <span class="default">
2489
+
2490
+ </span>
2491
+
2492
+ &mdash; <div class='inline'>
2493
+ <p>the host key algorithm (or algorithms) to use</p>
2494
+ </div>
2495
+
2496
+ </li>
2497
+
2498
+ <li>
2499
+ <span class="name">:host_key_alias</span>
2500
+ <span class="type">(<tt>String</tt>)</span>
2501
+ <span class="default">
2502
+
2503
+ </span>
2504
+
2505
+ &mdash; <div class='inline'>
2506
+ <p>the host name to use when looking up or adding a host to a known_hosts
2507
+ dictionary file</p>
2508
+ </div>
2509
+
2510
+ </li>
2511
+
2512
+ <li>
2513
+ <span class="name">:host_name</span>
2514
+ <span class="type">(<tt>String</tt>)</span>
2515
+ <span class="default">
2516
+
2517
+ </span>
2518
+
2519
+ &mdash; <div class='inline'>
2520
+ <p>the real host name or IP to log into. This is used instead of the host
2521
+ parameter, and is primarily only useful when specified in an SSH
2522
+ configuration file. It lets you specify an alias, similarly to adding an
2523
+ entry in /etc/hosts but without needing to modify /etc/hosts.</p>
2524
+ </div>
2525
+
2526
+ </li>
2527
+
2528
+ <li>
2529
+ <span class="name">:kex</span>
2530
+ <span class="type">(<tt>String/Array</tt>)</span>
2531
+ <span class="default">
2532
+
2533
+ </span>
2534
+
2535
+ &mdash; <div class='inline'>
2536
+ <p>the key exchange algorithm (or algorithms) to use</p>
2537
+ </div>
2538
+
2539
+ </li>
2540
+
2541
+ <li>
2542
+ <span class="name">:keys</span>
2543
+ <span class="type">(<tt>Array</tt>)</span>
2544
+ <span class="default">
2545
+
2546
+ </span>
2547
+
2548
+ &mdash; <div class='inline'>
2549
+ <p>an array of file names of private keys to use for publickey and hostbased
2550
+ authentication</p>
2551
+ </div>
2552
+
2553
+ </li>
2554
+
2555
+ <li>
2556
+ <span class="name">:key_data</span>
2557
+ <span class="type">(<tt>Array</tt>)</span>
2558
+ <span class="default">
2559
+
2560
+ </span>
2561
+
2562
+ &mdash; <div class='inline'>
2563
+ <p>an array of strings, with each element of the array being a raw private key
2564
+ in PEM format.</p>
2565
+ </div>
2566
+
2567
+ </li>
2568
+
2569
+ <li>
2570
+ <span class="name">:keys_only</span>
2571
+ <span class="type">(<tt>boolean</tt>)</span>
2572
+ <span class="default">
2573
+
2574
+ </span>
2575
+
2576
+ &mdash; <div class='inline'>
2577
+ <p>set to true to use only private keys from keys and key_data parameters,
2578
+ even if ssh-agent offers more identities. This option is intended for
2579
+ situations where ssh-agent offers many different identites.</p>
2580
+ </div>
2581
+
2582
+ </li>
2583
+
2584
+ <li>
2585
+ <span class="name">:logger</span>
2586
+ <span class="type">(<tt>Logger</tt>)</span>
2587
+ <span class="default">
2588
+
2589
+ </span>
2590
+
2591
+ &mdash; <div class='inline'>
2592
+ <p>the logger instance to use when logging</p>
2593
+ </div>
2594
+
2595
+ </li>
2596
+
2597
+ <li>
2598
+ <span class="name">:paranoid</span>
2599
+ <span class="type">(<tt>boolean/:very</tt>)</span>
2600
+ <span class="default">
2601
+
2602
+ </span>
2603
+
2604
+ &mdash; <div class='inline'>
2605
+ <p>either true, false, or :very, specifying how strict host-key verification
2606
+ should be</p>
2607
+ </div>
2608
+
2609
+ </li>
2610
+
2611
+ <li>
2612
+ <span class="name">:passphrase</span>
2613
+ <span class="type">(<tt>String</tt>)</span>
2614
+ <span class="default">
2615
+
2616
+ &mdash; default:
2617
+ <tt>nil</tt>
2618
+
2619
+ </span>
2620
+
2621
+ &mdash; <div class='inline'>
2622
+ <p>the passphrase to use when loading a private key (default is nil, for no
2623
+ passphrase)</p>
2624
+ </div>
2625
+
2626
+ </li>
2627
+
2628
+ <li>
2629
+ <span class="name">:password</span>
2630
+ <span class="type">(<tt>String</tt>)</span>
2631
+ <span class="default">
2632
+
2633
+ </span>
2634
+
2635
+ &mdash; <div class='inline'>
2636
+ <p>the password to use to login</p>
2637
+ </div>
2638
+
2639
+ </li>
2640
+
2641
+ <li>
2642
+ <span class="name">:port</span>
2643
+ <span class="type">(<tt>Integer</tt>)</span>
2644
+ <span class="default">
2645
+
2646
+ </span>
2647
+
2648
+ &mdash; <div class='inline'>
2649
+ <p>the port to use when connecting to the remote host</p>
2650
+ </div>
2651
+
2652
+ </li>
2653
+
2654
+ <li>
2655
+ <span class="name">:properties</span>
2656
+ <span class="type">(<tt>Hash</tt>)</span>
2657
+ <span class="default">
2658
+
2659
+ </span>
2660
+
2661
+ &mdash; <div class='inline'>
2662
+ <p>a hash of key/value pairs to add to the new connection's properties (see
2663
+ Net::SSH::Connection::Session#properties)</p>
2664
+ </div>
2665
+
2666
+ </li>
2667
+
2668
+ <li>
2669
+ <span class="name">:proxy</span>
2670
+ <span class="type">(<tt>String</tt>)</span>
2671
+ <span class="default">
2672
+
2673
+ </span>
2674
+
2675
+ &mdash; <div class='inline'>
2676
+ <p>a proxy instance (see Proxy) to use when connecting</p>
2677
+ </div>
2678
+
2679
+ </li>
2680
+
2681
+ <li>
2682
+ <span class="name">:rekey_blocks_limit</span>
2683
+ <span class="type">(<tt>Integer</tt>)</span>
2684
+ <span class="default">
2685
+
2686
+ </span>
2687
+
2688
+ &mdash; <div class='inline'>
2689
+ <p>the max number of blocks to process before rekeying</p>
2690
+ </div>
2691
+
2692
+ </li>
2693
+
2694
+ <li>
2695
+ <span class="name">:rekey_limit</span>
2696
+ <span class="type">(<tt>Integer</tt>)</span>
2697
+ <span class="default">
2698
+
2699
+ </span>
2700
+
2701
+ &mdash; <div class='inline'>
2702
+ <p>the max number of bytes to process before rekeying</p>
2703
+ </div>
2704
+
2705
+ </li>
2706
+
2707
+ <li>
2708
+ <span class="name">:rekey_packet_limit</span>
2709
+ <span class="type">(<tt>Integer</tt>)</span>
2710
+ <span class="default">
2711
+
2712
+ </span>
2713
+
2714
+ &mdash; <div class='inline'>
2715
+ <p>the max number of packets to process before rekeying</p>
2716
+ </div>
2717
+
2718
+ </li>
2719
+
2720
+ <li>
2721
+ <span class="name">:timeout</span>
2722
+ <span class="type">(<tt>Integer</tt>)</span>
2723
+ <span class="default">
2724
+
2725
+ &mdash; default:
2726
+ <tt>60</tt>
2727
+
2728
+ </span>
2729
+
2730
+ &mdash; <div class='inline'>
2731
+ <p>maximum idle time before a connection will time out (0 = disable).</p>
2732
+ </div>
2733
+
2734
+ </li>
2735
+
2736
+ <li>
2737
+ <span class="name">:operation_timeout</span>
2738
+ <span class="type">(<tt>Integer</tt>)</span>
2739
+ <span class="default">
2740
+
2741
+ &mdash; default:
2742
+ <tt>3600</tt>
2743
+
2744
+ </span>
2745
+
2746
+ &mdash; <div class='inline'>
2747
+ <p>maximum time before aborting an operation (0 = disable). you may use this
2748
+ to guard against run-away processes.</p>
2749
+ </div>
2750
+
2751
+ </li>
2752
+
2753
+ <li>
2754
+ <span class="name">:keepalive_interval</span>
2755
+ <span class="type">(<tt>Integer</tt>)</span>
2756
+ <span class="default">
2757
+
2758
+ &mdash; default:
2759
+ <tt>60</tt>
2760
+
2761
+ </span>
2762
+
2763
+ &mdash; <div class='inline'>
2764
+ <p>send keep-alive probes at this interval to prevent connections from timing
2765
+ out unexpectedly.</p>
2766
+ </div>
2767
+
2768
+ </li>
2769
+
2770
+ <li>
2771
+ <span class="name">:close_timeout</span>
2772
+ <span class="type">(<tt>Integer</tt>)</span>
2773
+ <span class="default">
2774
+
2775
+ &mdash; default:
2776
+ <tt>5</tt>
2777
+
2778
+ </span>
2779
+
2780
+ &mdash; <div class='inline'>
2781
+ <p>grace-period on close before the connection will be terminated forcefully
2782
+ (0 = terminate immediately).</p>
2783
+ </div>
2784
+
2785
+ </li>
2786
+
2787
+ <li>
2788
+ <span class="name">:user</span>
2789
+ <span class="type">(<tt>String</tt>)</span>
2790
+ <span class="default">
2791
+
2792
+ </span>
2793
+
2794
+ &mdash; <div class='inline'>
2795
+ <p>the username to log in as</p>
2796
+ </div>
2797
+
2798
+ </li>
2799
+
2800
+ <li>
2801
+ <span class="name">:user_known_hosts_file</span>
2802
+ <span class="type">(<tt>String/Array</tt>)</span>
2803
+ <span class="default">
2804
+
2805
+ &mdash; default:
2806
+ <tt>['~/.ssh/known_hosts</tt>, <tt>~/.ssh/known_hosts2']</tt>
2807
+
2808
+ </span>
2809
+
2810
+ &mdash; <div class='inline'>
2811
+ <p>the location of the user known hosts file. Set to an array to specify
2812
+ multiple user known hosts files.</p>
2813
+ </div>
2814
+
2815
+ </li>
2816
+
2817
+ <li>
2818
+ <span class="name">:verbose</span>
2819
+ <span class="type">(<tt>Symbol</tt>)</span>
2820
+ <span class="default">
2821
+
2822
+ </span>
2823
+
2824
+ &mdash; <div class='inline'>
2825
+ <p>how verbose to be (Logger verbosity constants, Logger::DEBUG is very
2826
+ verbose, Logger::FATAL is all but silent). Logger::FATAL is the default.
2827
+ The symbols :debug, :info, :warn, :error, and :fatal are also supported and
2828
+ are translated to the corresponding Logger constant.</p>
2829
+ </div>
2830
+
2831
+ </li>
2832
+
2833
+ </ul>
2834
+
2835
+
2836
+
2837
+
2838
+ <p class="tag_title">Returns:</p>
2839
+ <ul class="return">
2840
+
2841
+ <li>
2842
+
2843
+
2844
+ <span class='type'>(<tt><span class='object_link'><a href="Simple/Result.html" title="Net::SSH::Simple::Result (class)">Net::SSH::Simple::Result</a></span></tt>)</span>
2845
+
2846
+
2847
+
2848
+ &mdash;
2849
+ <div class='inline'>
2850
+ <p>Result</p>
2851
+ </div>
2852
+
2853
+ </li>
2854
+
2855
+ </ul>
2856
+
2857
+ <p class="tag_title">See Also:</p>
2858
+ <ul class="see">
2859
+
2860
+ <li><a href="http://net-ssh.github.com/ssh/v2/api/classes/Net/SSH.html#M000002" target="_parent" title="Net::SSH documentation for the 'opts'-hash">Net::SSH documentation for the 'opts'-hash</a></li>
2861
+
2862
+ </ul>
2863
+
2864
+ </div><table class="source_code">
2865
+ <tr>
2866
+ <td>
2867
+ <pre class="lines">
2868
+
2869
+
2870
+ 512
2871
+ 513
2872
+ 514
2873
+ 515
2874
+ 516
2875
+ 517
2876
+ 518
2877
+ 519
2878
+ 520
2879
+ 521
2880
+ 522
2881
+ 523
2882
+ 524
2883
+ 525
2884
+ 526
2885
+ 527
2886
+ 528
2887
+ 529
2888
+ 530
2889
+ 531
2890
+ 532
2891
+ 533
2892
+ 534
2893
+ 535
2894
+ 536
2895
+ 537
2896
+ 538
2897
+ 539
2898
+ 540
2899
+ 541
2900
+ 542
2901
+ 543
2902
+ 544
2903
+ 545
2904
+ 546
2905
+ 547
2906
+ 548
2907
+ 549
2908
+ 550
2909
+ 551
2910
+ 552
2911
+ 553
2912
+ 554
2913
+ 555
2914
+ 556
2915
+ 557
2916
+ 558</pre>
2917
+ </td>
2918
+ <td>
2919
+ <pre class="code"><span class="info file"># File 'lib/net/ssh/simple.rb', line 512</span>
2920
+
2921
+ <span class='kw'>def</span> <span class='id identifier rubyid_ssh'>ssh</span><span class='lparen'>(</span><span class='id identifier rubyid_host'>host</span><span class='comma'>,</span> <span class='id identifier rubyid_cmd'>cmd</span><span class='comma'>,</span> <span class='id identifier rubyid_opts'>opts</span><span class='op'>=</span><span class='lbrace'>{</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
2922
+ <span class='id identifier rubyid_opts'>opts</span> <span class='op'>=</span> <span class='ivar'>@opts</span><span class='period'>.</span><span class='id identifier rubyid_merge'>merge</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='rparen'>)</span>
2923
+ <span class='id identifier rubyid_with_session'>with_session</span><span class='lparen'>(</span><span class='id identifier rubyid_host'>host</span><span class='comma'>,</span> <span class='id identifier rubyid_opts'>opts</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_session'>session</span><span class='op'>|</span>
2924
+ <span class='ivar'>@result</span> <span class='op'>=</span> <span class='const'>Result</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span>
2925
+ <span class='lbrace'>{</span> <span class='symbol'>:op</span> <span class='op'>=&gt;</span> <span class='symbol'>:ssh</span><span class='comma'>,</span> <span class='symbol'>:host</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_host'>host</span><span class='comma'>,</span> <span class='symbol'>:cmd</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_cmd'>cmd</span><span class='comma'>,</span> <span class='symbol'>:start_at</span> <span class='op'>=&gt;</span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='comma'>,</span>
2926
+ <span class='symbol'>:last_event_at</span> <span class='op'>=&gt;</span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='comma'>,</span> <span class='symbol'>:opts</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_opts'>opts</span><span class='comma'>,</span> <span class='symbol'>:stdout</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='symbol'>:stderr</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_end'>'</span></span><span class='comma'>,</span>
2927
+ <span class='symbol'>:success</span> <span class='op'>=&gt;</span> <span class='kw'>nil</span>
2928
+ <span class='rbrace'>}</span> <span class='rparen'>)</span>
2929
+
2930
+ <span class='id identifier rubyid_channel'>channel</span> <span class='op'>=</span> <span class='id identifier rubyid_session'>session</span><span class='period'>.</span><span class='id identifier rubyid_open_channel'>open_channel</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_chan'>chan</span><span class='op'>|</span>
2931
+ <span class='id identifier rubyid_chan'>chan</span><span class='period'>.</span><span class='id identifier rubyid_exec'>exec</span> <span class='id identifier rubyid_cmd'>cmd</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_ch'>ch</span><span class='comma'>,</span> <span class='id identifier rubyid_success'>success</span><span class='op'>|</span>
2932
+ <span class='ivar'>@result</span><span class='lbracket'>[</span><span class='symbol'>:success</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_success'>success</span>
2933
+ <span class='id identifier rubyid_ch'>ch</span><span class='period'>.</span><span class='id identifier rubyid_on_data'>on_data</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_c'>c</span><span class='comma'>,</span> <span class='id identifier rubyid_data'>data</span><span class='op'>|</span>
2934
+ <span class='ivar'>@result</span><span class='lbracket'>[</span><span class='symbol'>:last_event_at</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
2935
+ <span class='id identifier rubyid_r'>r</span> <span class='op'>=</span> <span class='id identifier rubyid_block'>block</span><span class='period'>.</span><span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='symbol'>:stdout</span><span class='comma'>,</span> <span class='id identifier rubyid_ch'>ch</span><span class='comma'>,</span> <span class='id identifier rubyid_data'>data</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_block'>block</span>
2936
+ <span class='ivar'>@result</span><span class='lbracket'>[</span><span class='symbol'>:stdout</span><span class='rbracket'>]</span> <span class='op'>+=</span> <span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span> <span class='kw'>unless</span> <span class='id identifier rubyid_r'>r</span> <span class='op'>==</span> <span class='symbol'>:no_append</span>
2937
+ <span class='kw'>end</span>
2938
+ <span class='id identifier rubyid_ch'>ch</span><span class='period'>.</span><span class='id identifier rubyid_on_extended_data'>on_extended_data</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_c'>c</span><span class='comma'>,</span> <span class='id identifier rubyid_type'>type</span><span class='comma'>,</span> <span class='id identifier rubyid_data'>data</span><span class='op'>|</span>
2939
+ <span class='ivar'>@result</span><span class='lbracket'>[</span><span class='symbol'>:last_event_at</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
2940
+ <span class='id identifier rubyid_r'>r</span> <span class='op'>=</span> <span class='id identifier rubyid_block'>block</span><span class='period'>.</span><span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='symbol'>:stderr</span><span class='comma'>,</span> <span class='id identifier rubyid_ch'>ch</span><span class='comma'>,</span> <span class='id identifier rubyid_data'>data</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_block'>block</span>
2941
+ <span class='ivar'>@result</span><span class='lbracket'>[</span><span class='symbol'>:stderr</span><span class='rbracket'>]</span> <span class='op'>+=</span> <span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span> <span class='kw'>unless</span> <span class='id identifier rubyid_r'>r</span> <span class='op'>==</span> <span class='symbol'>:no_append</span>
2942
+ <span class='kw'>end</span>
2943
+ <span class='id identifier rubyid_ch'>ch</span><span class='period'>.</span><span class='id identifier rubyid_on_request'>on_request</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>exit-status</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_c'>c</span><span class='comma'>,</span> <span class='id identifier rubyid_data'>data</span><span class='op'>|</span>
2944
+ <span class='ivar'>@result</span><span class='lbracket'>[</span><span class='symbol'>:last_event_at</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
2945
+ <span class='id identifier rubyid_exit_code'>exit_code</span> <span class='op'>=</span> <span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_read_long'>read_long</span>
2946
+ <span class='id identifier rubyid_block'>block</span><span class='period'>.</span><span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='symbol'>:exit_code</span><span class='comma'>,</span> <span class='id identifier rubyid_ch'>ch</span><span class='comma'>,</span> <span class='id identifier rubyid_exit_code'>exit_code</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_block'>block</span>
2947
+ <span class='ivar'>@result</span><span class='lbracket'>[</span><span class='symbol'>:exit_code</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_exit_code'>exit_code</span>
2948
+ <span class='kw'>end</span>
2949
+ <span class='id identifier rubyid_ch'>ch</span><span class='period'>.</span><span class='id identifier rubyid_on_request'>on_request</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>exit-signal</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_c'>c</span><span class='comma'>,</span> <span class='id identifier rubyid_data'>data</span><span class='op'>|</span>
2950
+ <span class='ivar'>@result</span><span class='lbracket'>[</span><span class='symbol'>:last_event_at</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
2951
+ <span class='id identifier rubyid_exit_signal'>exit_signal</span> <span class='op'>=</span> <span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_read_string'>read_string</span>
2952
+ <span class='id identifier rubyid_r'>r</span> <span class='op'>=</span> <span class='id identifier rubyid_block'>block</span><span class='period'>.</span><span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='symbol'>:exit_signal</span><span class='comma'>,</span> <span class='id identifier rubyid_ch'>ch</span><span class='comma'>,</span> <span class='id identifier rubyid_exit_signal'>exit_signal</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_block'>block</span>
2953
+ <span class='ivar'>@result</span><span class='lbracket'>[</span><span class='symbol'>:exit_signal</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_exit_signal'>exit_signal</span>
2954
+ <span class='ivar'>@result</span><span class='lbracket'>[</span><span class='symbol'>:success</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='kw'>false</span>
2955
+ <span class='kw'>unless</span> <span class='id identifier rubyid_r'>r</span> <span class='op'>==</span> <span class='symbol'>:no_raise</span>
2956
+ <span class='id identifier rubyid_raise'>raise</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Killed by SIG</span><span class='embexpr_beg'>#{</span><span class='ivar'>@result</span><span class='lbracket'>[</span><span class='symbol'>:exit_signal</span><span class='rbracket'>]</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span>
2957
+ <span class='kw'>end</span>
2958
+ <span class='kw'>end</span>
2959
+ <span class='id identifier rubyid_block'>block</span><span class='period'>.</span><span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='symbol'>:start</span><span class='comma'>,</span> <span class='id identifier rubyid_ch'>ch</span><span class='comma'>,</span> <span class='kw'>nil</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_block'>block</span>
2960
+ <span class='kw'>end</span>
2961
+ <span class='kw'>end</span>
2962
+ <span class='id identifier rubyid_wait_for_channel'>wait_for_channel</span> <span class='id identifier rubyid_session'>session</span><span class='comma'>,</span> <span class='id identifier rubyid_channel'>channel</span><span class='comma'>,</span> <span class='ivar'>@result</span><span class='comma'>,</span> <span class='id identifier rubyid_opts'>opts</span>
2963
+ <span class='ivar'>@result</span><span class='lbracket'>[</span><span class='symbol'>:finish_at</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
2964
+ <span class='id identifier rubyid_block'>block</span><span class='period'>.</span><span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='symbol'>:finish</span><span class='comma'>,</span> <span class='id identifier rubyid_channel'>channel</span><span class='comma'>,</span> <span class='kw'>nil</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_block'>block</span>
2965
+ <span class='ivar'>@result</span>
2966
+ <span class='kw'>end</span>
2967
+ <span class='kw'>end</span></pre>
2968
+ </td>
2969
+ </tr>
2970
+ </table>
2971
+ </div>
2972
+
2973
+ </div>
2974
+
2975
+ </div>
2976
+
2977
+ <div id="footer">
2978
+ Generated on Sat Jan 26 17:16:24 2013 by
2979
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
2980
+ 0.8.3 (ruby-1.9.3).
2981
+ </div>
2982
+
2983
+ </body>
2984
+ </html>