  
<div id="snippet_434" class="snippet">
  <h2><a href="/snippets/434-How-to-use-dual-purpose-accessors-in-Ruby-to-create-a-DSL" title="How to use dual-purpose accessors in Ruby to create a DSL - Ruby - ruby, dsl">How to use dual-purpose accessors in Ruby to create a DSL</a></h2>
  <div class="details">
    <a style="background-color: #FFFF94;" href="http://snippets.aktagon.com/languages/124-Ruby">
      Ruby</a> posted 26 days ago by christian
          
  </div>

  <div class="body">
    <p>Instead of this:<br />
<pre class="active4d"><span class="line-numbers">   1 </span> <span class="Variable">Sitemap</span>(<span class="String"><span class="String">'</span>public/sitemap.xml<span class="String">'</span></span>) <span class="Keyword">do</span>
<span class="line-numbers">   2 </span>   <span class="Variable">self</span>.<span class="FunctionName">stylesheet</span> <span class="Operator">=</span> <span class="String"><span class="String">'</span>public/sitemap.xls<span class="String">'</span></span>  
<span class="line-numbers">   3 </span>   <span class="Variable">self</span>.<span class="FunctionName">ping</span> <span class="Operator">=</span> [<span class="String"><span class="String">'</span>http://www.google.com<span class="String">'</span></span>, <span class="String"><span class="String">'</span>http://www.google.com<span class="String">'</span></span>]  
<span class="line-numbers">   4 </span> <span class="Keyword">end</span>
</pre></p>
<p>You could write this:<br />
<pre class="active4d"><span class="line-numbers">   1 </span> <span class="Variable">Sitemap</span>(<span class="String"><span class="String">'</span>public/sitemap.xml<span class="String">'</span></span>) <span class="Keyword">do</span>
<span class="line-numbers">   2 </span>   stylesheet <span class="String"><span class="String">'</span>public/sitemap.xls<span class="String">'</span></span>  
<span class="line-numbers">   3 </span>   ping [<span class="String"><span class="String">'</span>http://www.google.com<span class="String">'</span></span>, <span class="String"><span class="String">'</span>http://www.google.com<span class="String">'</span></span>]  
<span class="line-numbers">   4 </span> <span class="Keyword">end</span>
</pre></p>
<p>Using <a href="http://sandal.github.com/rbp-book/pdfs/ch03.pdf">dual-purpose accessors</a>:<br />
<pre class="active4d"><span class="line-numbers">   1 </span> <span class="Keyword">class</span> <span class="TypeName">Sitemap</span>
<span class="line-numbers">   2 </span>   <span class="Keyword">def</span> <span class="FunctionName">stylesheet</span>(<span class="FunctionArgument">path <span class="Operator">=</span> <span class="BuiltInConstant">nil</span></span>) 
<span class="line-numbers">   3 </span>     <span class="Keyword">return</span> <span class="Variable"><span class="Variable">@</span>path</span> <span class="Keyword">unless</span> path
<span class="line-numbers">   4 </span>    <span class="Variable"><span class="Variable">@</span>path</span> <span class="Operator">=</span> path
<span class="line-numbers">   5 </span>   <span class="Keyword">end</span>
<span class="line-numbers">   6 </span>   <span class="Keyword">alias_method</span> <span class="UserDefinedConstant"><span class="UserDefinedConstant">:</span>stylesheet=</span>, <span class="UserDefinedConstant"><span class="UserDefinedConstant">:</span>stylesheet</span> 
<span class="line-numbers">   7 </span>   ...
<span class="line-numbers">   8 </span> <span class="Keyword">end</span>
</pre></p>
  </div>

  <div style="font-size: 0.8em;margin:0.5em;">
    
      Tagged <a href="/tags/8-ruby">ruby</a>, <a href="/tags/897-dsl">dsl</a>
    
    
  </div>
</div>



  
<div id="snippet_418" class="snippet">
  <h2><a href="/snippets/418-Fix-Library-not-loaded-opt-local-lib-libreadline-6-dylib" title="Fix: Library not loaded: /opt/local/lib/libreadline.6.dylib - Shell Script (Bash) - readline, ruby, fuckup">Fix: Library not loaded: /opt/local/lib/libreadline.6.dylib</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 3 months ago by christian
          
  </div>

  <div class="body">
    <p>If you get this error:<br />
<pre class="active4d"><span class="line-numbers">   1 </span> % script/console
<span class="line-numbers">   2 </span> Loading development environment (Rails 2.3.4)
<span class="line-numbers">   3 </span> /Library/Ruby/Site/1.8/universal-darwin10.0/readline.bundle: dlopen(/Library/Ruby/Site/1.8/universal-darwin10.0/readline.bundle, 9): Library not loaded: /opt/local/lib/libreadline.6.dylib (LoadError)
<span class="line-numbers">   4 </span>   Referenced from: /Library/Ruby/Site/1.8/universal-darwin10.0/readline.bundle
<span class="line-numbers">   5 </span>   Reason: image not found - /Library/Ruby/Site/1.8/universal-darwin10.0/readline.bundle
<span class="line-numbers">   6 </span>         from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/irb/completion.rb:10
<span class="line-numbers">   7 </span>         from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/irb/init.rb:253:<span class="Keyword">in</span> <span class="String"><span class="String">`</span>require'</span>
<span class="line-numbers">   8 </span> <span class="String">        from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/irb/init.rb:253:in <span class="String">`</span></span>load_modules<span class="String"><span class="String">'</span></span>
<span class="line-numbers">   9 </span> <span class="String">        from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/irb/init.rb:251:in `each<span class="String">'</span></span>
<span class="line-numbers">  10 </span>         from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/irb/init.rb:251:<span class="Keyword">in</span> <span class="String"><span class="String">`</span>load_modules'</span>
<span class="line-numbers">  11 </span> <span class="String">        from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/irb/init.rb:21:in <span class="String">`</span></span>setup<span class="String"><span class="String">'</span></span>
<span class="line-numbers">  12 </span> <span class="String">        from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/irb.rb:54:in `start<span class="String">'</span></span>
<span class="line-numbers">  13 </span>         from /usr/bin/irb:13
</pre></p>
<p>then this might help:</p>
<p><pre class="active4d"><span class="line-numbers">   1 </span> mv /Library/Ruby/Site/1.8/universal-darwin10.0/readline.bundle /tmp
</pre></p>
<p>If not move it back. I got the error after having used and uninstalled MacPorts. Using Homebrew now&#8230;</p>
  </div>

  <div style="font-size: 0.8em;margin:0.5em;">
    
      Tagged <a href="/tags/133-readline">readline</a>, <a href="/tags/8-ruby">ruby</a>, <a href="/tags/869-fuckup">fuckup</a>
    
    
  </div>
</div>



  
<div id="snippet_412" class="snippet">
  <h2><a href="/snippets/412-How-to-pretty-print-JSON-data-with-Ruby" title="How to pretty print JSON data with Ruby - Ruby Experimental - ruby, json, pretty print">How to pretty print JSON data with Ruby</a></h2>
  <div class="details">
    <a style="background-color: #FFFF94;" href="http://snippets.aktagon.com/languages/125-Ruby-Experimental">
      Ruby Experimental</a> posted 3 months ago by christian
          
  </div>

  <div class="body">
    <p>This ugly one-liner will pretty print the <span class="caps">JSON</span> in countries.yml, so that it&#8217;s easier to read and edit:<br />
<pre class="active4d"><span class="line-numbers">   1 </span> cat <span class="Variable">db</span><span class="Operator">/</span><span class="Variable">seeds</span><span class="Operator">/</span>countries.<span class="FunctionName">yml</span> <span class="Operator">|</span> <span class="Variable">ruby</span> <span class="Operator">-</span><span class="Variable">rubygems</span> <span class="Operator">-</span>e <span class="String"><span class="String">'</span>require &quot;json&quot;;a=JSON.pretty_generate JSON.parse gets;File.open(&quot;db/seeds/countries.yml&quot;, &quot;w&quot;){|f| f &lt;&lt; a}<span class="String">'</span></span>
</pre></p>
  </div>

  <div style="font-size: 0.8em;margin:0.5em;">
    
      Tagged <a href="/tags/8-ruby">ruby</a>, <a href="/tags/848-json">json</a>, <a href="/tags/862-pretty-print">pretty print</a>
    
    
  </div>
</div>



  
<div id="snippet_408" class="snippet">
  <h2><a href="/snippets/408-Simple-Webrick-proxy-" title="Simple Webrick proxy. - Ruby - ruby, webrick, proxy">Simple Webrick proxy.</a></h2>
  <div class="details">
    <a style="background-color: #FFFF94;" href="http://snippets.aktagon.com/languages/124-Ruby">
      Ruby</a> posted 3 months ago by marko
          
  </div>

  <div class="body">
    <p>A handy oneliner which I found <a href="http://www.ruby-forum.com/topic/139859">here</a>.</p>
<p><pre class="active4d"><span class="line-numbers">   1 </span> ruby <span class="Operator">-</span>r webrick<span class="Operator">/</span>httpproxy <span class="Operator">-</span>e <span class="String"><span class="String">'</span>s = WEBrick::HTTPProxyServer.new(:Port =&gt; 9999, :RequestCallback =&gt; Proc.new{|req,res| puts req.request_line, req.raw_header}); trap(&quot;INT&quot;){s.shutdown}; s.start<span class="String">'</span></span>
</pre></p>
  </div>

  <div style="font-size: 0.8em;margin:0.5em;">
    
      Tagged <a href="/tags/8-ruby">ruby</a>, <a href="/tags/860-webrick">webrick</a>, <a href="/tags/617-proxy">proxy</a>
    
    
  </div>
</div>



  
<div id="snippet_383" class="snippet">
  <h2><a href="/snippets/383-Ruby-Enterprise-Edition-symlinks" title="Ruby Enterprise Edition symlinks - Shell Script (Bash) - ree, passenger, ruby, symlinks">Ruby Enterprise Edition symlinks</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 5 months ago by christian
          
  </div>

  <div class="body">
    <p>This will save you from playing with <span class="caps">PATH</span>:</p>
<p><pre class="active4d"><span class="line-numbers">   1 </span> sudo ln -fs /opt/ruby-enterprise-1.8.6-20090610 /opt/ruby-enterprise
<span class="line-numbers">   2 </span> sudo ln -fs /opt/ruby-enterprise/bin/gem /usr/bin/gem
<span class="line-numbers">   3 </span> sudo ln -fs /opt/ruby-enterprise/bin/irb /usr/bin/irb
<span class="line-numbers">   4 </span> sudo ln -fs /opt/ruby-enterprise/bin/rake /usr/bin/rake
<span class="line-numbers">   5 </span> sudo ln -fs /opt/ruby-enterprise/bin/rails /usr/bin/rails
<span class="line-numbers">   6 </span> sudo ln -fs /opt/ruby-enterprise/bin/ruby /usr/bin/ruby
</pre></p>
<p>Passsenger.conf is also simplified:</p>
<p><pre class="active4d"><span class="line-numbers">   1 </span> LoadModule passenger_module /opt/ruby-enterprise/lib/ruby/gems/1.8/gems/passenger-2.2.5/ext/apache2/mod_passenger.so
<span class="line-numbers">   2 </span> PassengerRoot /opt/ruby-enterprise/lib/ruby/gems/1.8/gems/passenger-2.2.5
<span class="line-numbers">   3 </span> PassengerRuby /opt/ruby-enterprise/bin/ruby
</pre></p>
  </div>

  <div style="font-size: 0.8em;margin:0.5em;">
    
      Tagged <a href="/tags/817-ree">ree</a>, <a href="/tags/593-passenger">passenger</a>, <a href="/tags/8-ruby">ruby</a>, <a href="/tags/818-symlinks">symlinks</a>
    
    
  </div>
</div>




<div class="pagination"><span class="disabled">&laquo; Previous</span> <span class="current">1</span> <a href="/tags/show/8-ruby/page/2">2</a> <a href="/tags/show/8-ruby/page/3">3</a> <a href="/tags/show/8-ruby/page/4">4</a> <a href="/tags/show/8-ruby/page/5">5</a> <a href="/tags/show/8-ruby/page/6">6</a> <a href="/tags/show/8-ruby/page/7">7</a> <a href="/tags/show/8-ruby/page/8">8</a> <a href="/tags/show/8-ruby/page/9">9</a> ... <a href="/tags/show/8-ruby/page/14">14</a> <a href="/tags/show/8-ruby/page/15">15</a> <a href="/tags/show/8-ruby/page/2">Next &raquo;</a></div>

