  
<div id="snippet_305" class="snippet">
  <h2><a href="/snippets/305-Example-of-how-to-use-Ruby-s-NET-HTTP" title="Example of how to use Ruby's NET::HTTP - Ruby - net::http, http, ruby, example, debug, https, timeout, proxy">Example of how to use Ruby's NET::HTTP</a></h2>
  <div class="details">
    <a style="background-color: #FFFF94;" href="http://snippets.aktagon.com/languages/124-Ruby">
      Ruby</a> posted about 1 year ago by christian
          
  </div>

  <div class="body">
    <p>I always forget how to use <span class="caps">NET</span>:<span class="caps">HTTP</span> and examples online are usually of little help, so I use this code as a starting point when I work with <span class="caps">NET</span>:<span class="caps">HTTP</span>:</p>
<p><pre class="active4d"><span class="line-numbers">   1 </span> <span class="Keyword">require</span> <span class="String"><span class="String">'</span>net/http<span class="String">'</span></span>
<span class="line-numbers">   2 </span> <span class="Keyword">require</span> <span class="String"><span class="String">'</span>net/https<span class="String">'</span></span>
<span class="line-numbers">   3 </span> <span class="Keyword">require</span> <span class="String"><span class="String">'</span>uri<span class="String">'</span></span>
<span class="line-numbers">   4 </span> 
<span class="line-numbers">   5 </span> <span class="Keyword">class</span> <span class="TypeName">HTTP</span>
<span class="line-numbers">   6 </span> 
<span class="line-numbers">   7 </span>   <span class="Keyword">class</span> <span class="TypeName"><span class="Variable"><span class="Variable">&lt;&lt;</span> self</span></span>
<span class="line-numbers">   8 </span>     <span class="Keyword">def</span> <span class="FunctionName">get_proxy</span>
<span class="line-numbers">   9 </span>       http_proxy <span class="Operator">=</span> <span class="Variable">ENV</span>[<span class="String"><span class="String">&quot;</span>http_proxy<span class="String">&quot;</span></span>]
<span class="line-numbers">  10 </span>       <span class="Variable">URI</span>.<span class="FunctionName">parse</span>(http_proxy) <span class="Keyword">rescue</span> <span class="BuiltInConstant">nil</span>
<span class="line-numbers">  11 </span>     <span class="Keyword">end</span>
<span class="line-numbers">  12 </span> 
<span class="line-numbers">  13 </span>     <span class="Keyword">def</span> <span class="FunctionName">parse_url</span>(<span class="FunctionArgument">url</span>)
<span class="line-numbers">  14 </span>       <span class="Keyword">begin</span>
<span class="line-numbers">  15 </span>         <span class="Keyword">if</span> <span class="Operator">!</span>url.<span class="FunctionName">kind_of?</span>(<span class="Variable">URI</span>) 
<span class="line-numbers">  16 </span> 
<span class="line-numbers">  17 </span>           url <span class="Operator">=</span> <span class="Variable">URI</span>.<span class="FunctionName">parse</span>(url)
<span class="line-numbers">  18 </span>         <span class="Keyword">end</span>
<span class="line-numbers">  19 </span>       <span class="Keyword">rescue</span>
<span class="line-numbers">  20 </span>         <span class="Keyword">raise</span> <span class="Variable">URI</span>::<span class="FunctionName">InvalidURIError</span>, <span class="String"><span class="String">&quot;</span>Invalid url '<span class="String"><span class="String">#{</span>url<span class="String">}</span></span>'<span class="String">&quot;</span></span>
<span class="line-numbers">  21 </span>       <span class="Keyword">end</span>
<span class="line-numbers">  22 </span> 
<span class="line-numbers">  23 </span>       <span class="Keyword">if</span> (url.<span class="FunctionName">class</span> <span class="Operator">!=</span> <span class="Variable">URI</span>::<span class="FunctionName">HTTP</span> <span class="Operator">&amp;&amp;</span> url.<span class="FunctionName">class</span> <span class="Operator">!=</span> <span class="Variable">URI</span>::<span class="FunctionName">HTTPS</span>)
<span class="line-numbers">  24 </span>         <span class="Keyword">raise</span> <span class="Variable">URI</span>::<span class="FunctionName">InvalidURIError</span>, <span class="String"><span class="String">&quot;</span>Invalid url '<span class="String"><span class="String">#{</span>url<span class="String">}</span></span>'<span class="String">&quot;</span></span>
<span class="line-numbers">  25 </span>       <span class="Keyword">end</span>
<span class="line-numbers">  26 </span> 
<span class="line-numbers">  27 </span>       url
<span class="line-numbers">  28 </span>     <span class="Keyword">end</span>
<span class="line-numbers">  29 </span> 
<span class="line-numbers">  30 </span>     <span class="Keyword">def</span> <span class="FunctionName">get_connection</span>(<span class="FunctionArgument">url<span class="FunctionArgument">,</span> debug <span class="Operator">=</span> <span class="BuiltInConstant">false</span><span class="FunctionArgument">,</span> http_timeout <span class="Operator">=</span> <span class="Number">60</span></span>)
<span class="line-numbers">  31 </span>       url <span class="Operator">=</span> <span class="FunctionName">parse_url</span>(url)
<span class="line-numbers">  32 </span>       
<span class="line-numbers">  33 </span>       proxy <span class="Operator">=</span> get_proxy
<span class="line-numbers">  34 </span>       
<span class="line-numbers">  35 </span>       <span class="Keyword">if</span> proxy
<span class="line-numbers">  36 </span>         http <span class="Operator">=</span> <span class="LibraryClassType">Net</span>::<span class="FunctionName">HTTP</span>::<span class="FunctionName">Proxy</span>(proxy.<span class="FunctionName">host</span>, proxy.<span class="FunctionName">port</span>).<span class="FunctionName">new</span>(url.<span class="FunctionName">host</span>, url.<span class="FunctionName">port</span>)
<span class="line-numbers">  37 </span>       <span class="Keyword">else</span>
<span class="line-numbers">  38 </span>         http <span class="Operator">=</span> <span class="LibraryClassType">Net</span>::<span class="FunctionName">HTTP</span>.<span class="FunctionName">new</span>(url.<span class="FunctionName">host</span>, url.<span class="FunctionName">port</span>)
<span class="line-numbers">  39 </span>       <span class="Keyword">end</span>
<span class="line-numbers">  40 </span>       
<span class="line-numbers">  41 </span>       <span class="Keyword">if</span> url.<span class="FunctionName">scheme</span> <span class="Operator">==</span> <span class="String"><span class="String">'</span>https<span class="String">'</span></span>
<span class="line-numbers">  42 </span>         http.<span class="FunctionName">use_ssl</span> <span class="Operator">=</span> <span class="BuiltInConstant">true</span>
<span class="line-numbers">  43 </span>         http.<span class="FunctionName">verify_mode</span> <span class="Operator">=</span> <span class="LibraryClassType">OpenSSL</span>::<span class="FunctionName">SSL</span>::<span class="FunctionName">VERIFY_NONE</span>
<span class="line-numbers">  44 </span>       <span class="Keyword">end</span>
<span class="line-numbers">  45 </span>       
<span class="line-numbers">  46 </span>       http.<span class="FunctionName">open_timeout</span> <span class="Operator">=</span> http.<span class="FunctionName">read_timeout</span> <span class="Operator">=</span> http_timeout
<span class="line-numbers">  47 </span>       
<span class="line-numbers">  48 </span>       http.<span class="FunctionName">set_debug_output</span> <span class="Variable"><span class="Variable">$</span>stderr</span> <span class="Keyword">if</span> debug
<span class="line-numbers">  49 </span>       
<span class="line-numbers">  50 </span>       http
<span class="line-numbers">  51 </span>     <span class="Keyword">end</span>
<span class="line-numbers">  52 </span>   <span class="Keyword">end</span>
<span class="line-numbers">  53 </span> <span class="Keyword">end</span>
</pre></p>
<p>The example shows you how to work with proxies, HTTPs, debugging, timeouts, <span class="caps">URL</span> validation. A real-world example would look something like this:</p>
<p><pre class="active4d"><span class="line-numbers">   1 </span> connection <span class="Operator">=</span> <span class="Variable">HTTP</span>.<span class="FunctionName">get_connection</span>(url)
<span class="line-numbers">   2 </span> 
<span class="line-numbers">   3 </span> request <span class="Operator">=</span> <span class="LibraryClassType">Net</span>::<span class="FunctionName">HTTP</span>::<span class="FunctionName">Get</span>.<span class="FunctionName">new</span>(url.<span class="FunctionName">request_uri</span>)
<span class="line-numbers">   4 </span> 			
<span class="line-numbers">   5 </span> <span class="LineComment"><span class="LineComment">#</span> Set request headers</span>
<span class="line-numbers">   6 </span> headers.<span class="FunctionName">each</span> { |<span class="Variable">key</span>, <span class="Variable">value</span>| request[key] <span class="Operator">=</span> value }
<span class="line-numbers">   7 </span> 		
<span class="line-numbers">   8 </span> <span class="LineComment"><span class="LineComment">#</span> Basic authentication example</span>
<span class="line-numbers">   9 </span> <span class="LineComment"><span class="LineComment">#</span>request.basic_auth username, password</span>
<span class="line-numbers">  10 </span> 
<span class="line-numbers">  11 </span> response <span class="Operator">=</span> connection.<span class="FunctionName">request</span>(request)
<span class="line-numbers">  12 </span> 
<span class="line-numbers">  13 </span> 	
<span class="line-numbers">  14 </span> <span class="Keyword">case</span> response 
<span class="line-numbers">  15 </span> <span class="Keyword">when</span> <span class="LibraryClassType">Net</span>::<span class="FunctionName">HTTPRedirection</span>
<span class="line-numbers">  16 </span> ..
<span class="line-numbers">  17 </span> ..
<span class="line-numbers">  18 </span> <span class="Keyword">end</span>
</pre></p>
<p>This should also work:<br />
<pre class="active4d"><span class="line-numbers">   1 </span> response, body <span class="Operator">=</span> http.<span class="FunctionName">get</span>(url.<span class="FunctionName">request_uri</span>, headers)
</pre></p>
  </div>

  <div style="font-size: 0.8em;margin:0.5em;">
    
      Tagged <a href="/tags/671-net-http">net::http</a>, <a href="/tags/99-http">http</a>, <a href="/tags/8-ruby">ruby</a>, <a href="/tags/409-example">example</a>, <a href="/tags/66-debug">debug</a>, <a href="/tags/674-https">https</a>, <a href="/tags/675-timeout">timeout</a>, <a href="/tags/617-proxy">proxy</a>
    
    
  </div>
</div>



  
<div id="snippet_116" class="snippet">
  <h2><a href="/snippets/116-How-to-add-logging-to-CakePHP-applications" title="How to add logging to CakePHP applications - PHP - php, cakephp, logging, debug">How to add logging to CakePHP applications</a></h2>
  <div class="details">
    <a style="background-color: #FFFF94;" href="http://snippets.aktagon.com/languages/102-PHP">
      PHP</a> posted over 2 years ago by christian
          
  </div>

  <div class="body">
    <p>Note that Pear&#8217;s Logging package is a lot more flexible, so I recommend you use that instead of CakePHP&#8217;s built-in logging.</p>


	<p>Use this code to add a debug message to the CakePHP debug log:</p>


	<p><pre class="active4d"><span class="line-numbers">   1 </span> $this-&gt;log(&quot;Upload action accessed&quot;, LOG_DEBUG);
</pre></p>


	<p>Note that using something other than  LOG _DEBUG will log the message as an error.</p>


	<p>Run the code once and you should be able to see the message in $CAKE_APP/tmp/logs/debug.log.</p>
  </div>

  <div style="font-size: 0.8em;margin:0.5em;">
    
      Tagged <a href="/tags/279-php">php</a>, <a href="/tags/294-cakephp">cakephp</a>, <a href="/tags/295-logging">logging</a>, <a href="/tags/66-debug">debug</a>
    
    
  </div>
</div>



  
<div id="snippet_80" class="snippet">
  <h2><a href="/snippets/80-Fixing-config-breakpoint-server-has-been-deprecated-and-has-no-effect-when-using-Rails-Edge" title="Fixing &quot;config.breakpoint_server has been deprecated and has no effect&quot; when using Rails Edge - Ruby - rails, edge, debug, deprecated">Fixing "config.breakpoint_server has been deprecated and has no effect" when using Rails Edge</a></h2>
  <div class="details">
    <a style="background-color: #FFFF94;" href="http://snippets.aktagon.com/languages/124-Ruby">
      Ruby</a> posted over 2 years ago by christian
          
  </div>

  <div class="body">
    <p>You might get this error if you&#8217;re using Rails Edge: <strong>config.breakpoint_server has been deprecated and has no effect</strong>:</p>


	<p>To fix the error we need to remove the following from <strong>config/environments/development.rb</strong>:
<pre class="active4d"><span class="line-numbers">   1 </span> config.<span class="FunctionName">breakpoint_server</span> <span class="Operator">=</span> <span class="BuiltInConstant">true</span>
</pre></p>


	<p>Next install ruby-debug:
<pre class="active4d"><span class="line-numbers">   1 </span> gem install ruby<span class="Operator">-</span>debug
</pre></p>


	<p>Then add this to the end of <strong>config/environments/development.rb</strong>:
<pre class="active4d"><span class="line-numbers">   1 </span> <span class="Keyword">require</span> <span class="String"><span class="String">'</span>ruby-debug<span class="String">'</span></span>
</pre></p>


	<p>Next, start your server, and the error should be gone&#8230;</p>


	<p>To debug your code just add a call to <strong>debugger</strong>:</p>


	<p><pre class="active4d"><span class="line-numbers">   1 </span> <span class="Keyword">class</span> <span class="TypeName">MySillySpace</span> ...
<span class="line-numbers">   2 </span>   <span class="Keyword">def</span> <span class="FunctionName">create</span>
<span class="line-numbers">   3 </span>     debugger <span class="LineComment"><span class="LineComment">#</span> add this line</span>
<span class="line-numbers">   4 </span>   <span class="Keyword">end</span>
</pre></p>


	<p>Now when you access the  URL  with your browser you&#8217;ll have access to the debugger from the console window.</p>


	<p>To learn how to use ruby-debug, read <a href="http://www.datanoise.com/articles/2006/07/12/tutorial-on-ruby-debug">this tutorial</a> written by the ruby-debug author.</p>
  </div>

  <div style="font-size: 0.8em;margin:0.5em;">
    
      Tagged <a href="/tags/9-rails">rails</a>, <a href="/tags/130-edge">edge</a>, <a href="/tags/66-debug">debug</a>, <a href="/tags/191-deprecated">deprecated</a>
    
    
  </div>
</div>



  
<div id="snippet_18" class="snippet">
  <h2><a href="/snippets/18-Enable-remote-debugging-in-weblogic" title="Enable remote debugging in weblogic - Shell Script (Bash) - debug, weblogic">Enable remote debugging in weblogic</a></h2>
  <div class="details">
    <a style="background-color: #FFFF94;" href="http://snippets.aktagon.com/languages/131-Shell-Script-Bash-">
      Shell Script (Bash)</a> posted over 2 years ago by marko
          
  </div>

  <div class="body">
    <p>Sometimes it&#8217;s necessary to debug because you can&#8217;t write a test for it (e.g a legacy system). Just add the following parameters to the server startup and connect your preferred debugger into port 1044 (or whatever you choose the port to be). Works in weblogic, but should work in JBoss and other java based application servers too.
<pre class="active4d"><span class="line-numbers">   1 </span> -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044
</pre></p>
  </div>

  <div style="font-size: 0.8em;margin:0.5em;">
    
      Tagged <a href="/tags/66-debug">debug</a>, <a href="/tags/67-weblogic">weblogic</a>
    
    
  </div>
</div>






