document.write('<div class="ruby" style="font-family: monospace;"><span style="color:#CC0066; font-weight:bold;">require</span> \'getoptlong\'<br />');
document.write('<span style="color:#CC0066; font-weight:bold;">require</span> \'tk\'<br />');
document.write('<br />');
document.write('<span style="color:#9966CC; font-weight:bold;">class</span> DummyFtpClient<br />');
document.write('<br />');
document.write('&nbsp; <span style="color:#9966CC; font-weight:bold;">def</span> initialize<br />');
document.write('&nbsp; &nbsp; <br />');
document.write('&nbsp; &nbsp; @host = <span style="color:#0000FF; font-weight:bold;">nil</span><br />');
document.write('&nbsp; &nbsp; @user = <span style="color:#0000FF; font-weight:bold;">nil</span><br />');
document.write('&nbsp; &nbsp; @password = <span style="color:#0000FF; font-weight:bold;">nil</span><br />');
document.write('&nbsp; &nbsp; <br />');
document.write('&nbsp; &nbsp; opts = GetoptLong.<span style="color:#9900CC;">new</span><span style="color:#006600; font-weight:bold;">&#40;</span><br />');
document.write('&nbsp; &nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#91;</span> <span style="color:#996600;">&quot;--host&quot;</span>,&nbsp; &nbsp; &nbsp;<span style="color:#996600;">&quot;-h&quot;</span>,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GetoptLong::OPTIONAL_ARGUMENT <span style="color:#006600; font-weight:bold;">&#93;</span>,<br />');
document.write('&nbsp; &nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#91;</span> <span style="color:#996600;">&quot;--user&quot;</span>,&nbsp; &nbsp; &nbsp;<span style="color:#996600;">&quot;-u&quot;</span>,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GetoptLong::OPTIONAL_ARGUMENT <span style="color:#006600; font-weight:bold;">&#93;</span>,<br />');
document.write('&nbsp; &nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#91;</span> <span style="color:#996600;">&quot;--password&quot;</span>, <span style="color:#996600;">&quot;-p&quot;</span>,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GetoptLong::OPTIONAL_ARGUMENT <span style="color:#006600; font-weight:bold;">&#93;</span><br />');
document.write('&nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#41;</span><br />');
document.write('&nbsp; &nbsp; opts.<span style="color:#9900CC;">each</span> <span style="color:#006600; font-weight:bold;">&#123;</span> |opt,arg|<br />');
document.write('&nbsp; &nbsp; &nbsp; <span style="color:#9966CC; font-weight:bold;">case</span> opt<br />');
document.write('&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#9966CC; font-weight:bold;">when</span> \'--host\'<br />');
document.write('&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; @host = arg<br />');
document.write('&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#9966CC; font-weight:bold;">when</span> \'--user\'<br />');
document.write('&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; @user = arg<br />');
document.write('&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#9966CC; font-weight:bold;">when</span> \'--password\'<br />');
document.write('&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; @password = arg<br />');
document.write('&nbsp; &nbsp; &nbsp; <span style="color:#9966CC; font-weight:bold;">end</span><br />');
document.write('&nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span><br />');
document.write('<br />');
document.write('&nbsp; &nbsp; <span style="color:#9966CC; font-weight:bold;">if</span> @host.<span style="color:#0000FF; font-weight:bold;">nil</span>? || @user.<span style="color:#0000FF; font-weight:bold;">nil</span>? || @password.<span style="color:#0000FF; font-weight:bold;">nil</span>?<br />');
document.write('&nbsp; &nbsp; &nbsp; get_missed_arguments<br />');
document.write('&nbsp; &nbsp; <span style="color:#9966CC; font-weight:bold;">end</span><br />');
document.write('&nbsp; <span style="color:#9966CC; font-weight:bold;">end</span><br />');
document.write('<br />');
document.write('&nbsp; <span style="color:#9966CC; font-weight:bold;">def</span> get_missed_arguments<br />');
document.write('&nbsp; &nbsp; root = TkRoot.<span style="color:#9900CC;">new</span><span style="color:#006600; font-weight:bold;">&#40;</span>\'title\' =&gt; \'Connection parameters\'<span style="color:#006600; font-weight:bold;">&#41;</span><br />');
document.write('<br />');
document.write('&nbsp; &nbsp; hostVar = add_entry<span style="color:#006600; font-weight:bold;">&#40;</span>root, \'Host:\', @host<span style="color:#006600; font-weight:bold;">&#41;</span><br />');
document.write('&nbsp; &nbsp; userVar = add_entry<span style="color:#006600; font-weight:bold;">&#40;</span>root, \'User:\', @user<span style="color:#006600; font-weight:bold;">&#41;</span><br />');
document.write('&nbsp; &nbsp; passwordVar = add_entry<span style="color:#006600; font-weight:bold;">&#40;</span>root, \'Password:\', @password<span style="color:#006600; font-weight:bold;">&#41;</span><br />');
document.write('<br />');
document.write('&nbsp; &nbsp; onConnect = <span style="color:#CC0066; font-weight:bold;">proc</span> <span style="color:#006600; font-weight:bold;">&#123;</span><br />');
document.write('&nbsp; &nbsp; &nbsp; @host = hostVar.<span style="color:#9900CC;">value</span> <span style="color:#9966CC; font-weight:bold;">unless</span> hostVar.<span style="color:#0000FF; font-weight:bold;">nil</span>?<br />');
document.write('&nbsp; &nbsp; &nbsp; @user = userVar.<span style="color:#9900CC;">value</span> <span style="color:#9966CC; font-weight:bold;">unless</span> userVar.<span style="color:#0000FF; font-weight:bold;">nil</span>?<br />');
document.write('&nbsp; &nbsp; &nbsp; @password = passwordVar.<span style="color:#9900CC;">value</span> <span style="color:#9966CC; font-weight:bold;">unless</span> passwordVar.<span style="color:#0000FF; font-weight:bold;">nil</span>?<br />');
document.write('&nbsp; &nbsp; &nbsp; Tk.<span style="color:#CC0066; font-weight:bold;">exit</span><br />');
document.write('&nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span><br />');
document.write('&nbsp; &nbsp; <br />');
document.write('&nbsp; &nbsp; TkButton.<span style="color:#9900CC;">new</span><span style="color:#006600; font-weight:bold;">&#40;</span>root<span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span><br />');
document.write('&nbsp; &nbsp; &nbsp; text \'Connect\'<br />');
document.write('&nbsp; &nbsp; &nbsp; command onConnect<br />');
document.write('&nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span>.<span style="color:#9900CC;">pack</span><span style="color:#006600; font-weight:bold;">&#40;</span>\'padx\' =&gt; <span style="color:#006666;">10</span>, \'pady\' =&gt; <span style="color:#006666;">10</span><span style="color:#006600; font-weight:bold;">&#41;</span><br />');
document.write('&nbsp; &nbsp; Tk.<span style="color:#9900CC;">mainloop</span><br />');
document.write('&nbsp; <span style="color:#9966CC; font-weight:bold;">end</span><br />');
document.write('<br />');
document.write('&nbsp; <span style="color:#9966CC; font-weight:bold;">def</span> add_entry<span style="color:#006600; font-weight:bold;">&#40;</span>root, prompt, value<span style="color:#006600; font-weight:bold;">&#41;</span><br />');
document.write('&nbsp; &nbsp; <span style="color:#9966CC; font-weight:bold;">if</span> value.<span style="color:#0000FF; font-weight:bold;">nil</span>?<br />');
document.write('&nbsp; &nbsp; &nbsp; tkVar = TkVariable.<span style="color:#9900CC;">new</span><br />');
document.write('&nbsp; &nbsp; &nbsp; tkVar.<span style="color:#9900CC;">value</span> = value<br />');
document.write('&nbsp; &nbsp; &nbsp; TkLabel.<span style="color:#9900CC;">new</span><span style="color:#006600; font-weight:bold;">&#40;</span>root<span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span><br />');
document.write('&nbsp; &nbsp; &nbsp; &nbsp; text prompt<br />');
document.write('&nbsp; &nbsp; &nbsp; &nbsp; pack <span style="color:#006600; font-weight:bold;">&#123;</span> padx <span style="color:#006666;">5</span>; pady <span style="color:#006666;">5</span> <span style="color:#006600; font-weight:bold;">&#125;</span><br />');
document.write('&nbsp; &nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span><br />');
document.write('&nbsp; &nbsp; &nbsp; TkEntry.<span style="color:#9900CC;">new</span><span style="color:#006600; font-weight:bold;">&#40;</span>root, \'textvariable\' =&gt; tkVar<span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span><br />');
document.write('&nbsp; &nbsp; &nbsp; &nbsp; pack <span style="color:#006600; font-weight:bold;">&#123;</span> padx <span style="color:#006666;">5</span>; pady <span style="color:#006666;">5</span> <span style="color:#006600; font-weight:bold;">&#125;</span><br />');
document.write('&nbsp; &nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span><br />');
document.write('&nbsp; &nbsp; &nbsp; <span style="color:#0000FF; font-weight:bold;">return</span> tkVar<br />');
document.write('&nbsp; &nbsp; <span style="color:#9966CC; font-weight:bold;">else</span><br />');
document.write('&nbsp; &nbsp; &nbsp; <span style="color:#0000FF; font-weight:bold;">return</span> <span style="color:#0000FF; font-weight:bold;">nil</span><br />');
document.write('&nbsp; &nbsp; <span style="color:#9966CC; font-weight:bold;">end</span><br />');
document.write('&nbsp; <span style="color:#9966CC; font-weight:bold;">end</span><br />');
document.write('<br />');
document.write('&nbsp; <span style="color:#9966CC; font-weight:bold;">def</span> connect<br />');
document.write('&nbsp; &nbsp; <span style="color:#CC0066; font-weight:bold;">puts</span> <span style="color:#996600;">&quot;About to connect to #{@host} as #{@user}/#{@password}&quot;</span><br />');
document.write('&nbsp; <span style="color:#9966CC; font-weight:bold;">end</span><br />');
document.write('&nbsp; <br />');
document.write('<span style="color:#9966CC; font-weight:bold;">end</span><br />');
document.write('<br />');
document.write('client = DummyFtpClient.<span style="color:#9900CC;">new</span><br />');
document.write('client.<span style="color:#9900CC;">connect</span></div>');
document.write('<br />&nbsp;<br /><div style="font-size: 12px">Brought to you by the community at <a href="http://www.bytemycode.com/snippets/snippet/503/1/" target="_blank">byteMyCode</a>.</div>');
