<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>MyFunnyDev &#187; Ruby</title>
	<atom:link href="http://michalkuklis.com/blog/tag/ruby/feed/" rel="self" type="application/rss+xml" />
	<link>http://michalkuklis.com/blog</link>
	<description></description>
	<lastBuildDate>Sat, 31 Mar 2012 06:11:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>managing gems with rvm named gem sets</title>
		<link>http://michalkuklis.com/blog/2010/05/30/managing-gems-with-rvm-named-gem-sets/</link>
		<comments>http://michalkuklis.com/blog/2010/05/30/managing-gems-with-rvm-named-gem-sets/#comments</comments>
		<pubDate>Mon, 31 May 2010 03:20:44 +0000</pubDate>
		<dc:creator>Michał Kuklis</dc:creator>
				<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://michalkuklis.com/blog/?p=298</guid>
		<description><![CDATA[RVM (Ruby Version Manager) is a tool which lets you install and switch between multiple ruby versions. RVM has also something called Named Gem Sets. This is pretty cool because you can create many different gem sets for different types of apps. Here is how to do it (I assume you have rvm already installed [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://rvm.beginrescueend.com/">RVM (Ruby Version Manager)</a> is a tool which lets you install and switch between multiple ruby versions. RVM has also something called <a href="http://rvm.beginrescueend.com/gemsets/basics/">Named Gem Sets</a>. This is pretty cool because you can create many different gem sets for different types of apps. Here is how to do it (I assume you have rvm already installed if not check <a href="http://rvm.beginrescueend.com/rvm/install/">this</a> out):</p>
<ul>
<li>go to your project folder and create new file called .<strong>rvmrc</strong></li>
<li>open .rvmrc and add rvm ruby-version@your-gem-set for example <strong>rvm ruby-1.9.1@railsgems</strong></li>
<li>close file and type: <strong>rvm gemset create your-gem-set </strong>(this will create new set)</li>
<li>type gem list (you should see empty list with no gems installed)</li>
</ul>
<p>It&#8217;s almost as you would start with a fresh system.</p>
]]></content:encoded>
			<wfw:commentRss>http://michalkuklis.com/blog/2010/05/30/managing-gems-with-rvm-named-gem-sets/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>dfs in ruby :)</title>
		<link>http://michalkuklis.com/blog/2010/01/14/bfs-in-ruby/</link>
		<comments>http://michalkuklis.com/blog/2010/01/14/bfs-in-ruby/#comments</comments>
		<pubDate>Thu, 14 Jan 2010 05:38:42 +0000</pubDate>
		<dc:creator>Michał Kuklis</dc:creator>
				<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://michalkuklis.com/blog/?p=277</guid>
		<description><![CDATA[I wrote simple dfs in ruby: def dfs&#40;node, value, queue&#41; &#160; return false if node.nil? &#160; return true if node.data == value &#160; &#160; queue.push node.right unless node.right.nil? &#160; queue.push node.left unless node.left.nil?&#160; &#160; &#160; dfs&#40;queue.pop, value, queue&#41;&#160; end for node: class Node &#160; attr_accessor :left, :right, :data end]]></description>
			<content:encoded><![CDATA[<p>I wrote simple dfs in ruby:</p>
<div class="codecolorer-container ruby blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="ruby codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color:#9966CC; font-weight:bold;">def</span> dfs<span style="color:#006600; font-weight:bold;">&#40;</span>node, value, queue<span style="color:#006600; font-weight:bold;">&#41;</span><br />
&nbsp; <span style="color:#0000FF; font-weight:bold;">return</span> <span style="color:#0000FF; font-weight:bold;">false</span> <span style="color:#9966CC; font-weight:bold;">if</span> node.<span style="color:#0000FF; font-weight:bold;">nil</span>? <br />
&nbsp; <span style="color:#0000FF; font-weight:bold;">return</span> <span style="color:#0000FF; font-weight:bold;">true</span> <span style="color:#9966CC; font-weight:bold;">if</span> node.<span style="color:#9900CC;">data</span> == value<br />
&nbsp; <br />
&nbsp; queue.<span style="color:#9900CC;">push</span> node.<span style="color:#9900CC;">right</span> <span style="color:#9966CC; font-weight:bold;">unless</span> node.<span style="color:#9900CC;">right</span>.<span style="color:#0000FF; font-weight:bold;">nil</span>?<br />
&nbsp; queue.<span style="color:#9900CC;">push</span> node.<span style="color:#9900CC;">left</span> <span style="color:#9966CC; font-weight:bold;">unless</span> node.<span style="color:#9900CC;">left</span>.<span style="color:#0000FF; font-weight:bold;">nil</span>?&nbsp; <br />
&nbsp; <br />
&nbsp; dfs<span style="color:#006600; font-weight:bold;">&#40;</span>queue.<span style="color:#9900CC;">pop</span>, value, queue<span style="color:#006600; font-weight:bold;">&#41;</span>&nbsp; <br />
<span style="color:#9966CC; font-weight:bold;">end</span></div></div>
<p>for node:</p>
<div class="codecolorer-container ruby blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="ruby codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color:#9966CC; font-weight:bold;">class</span> Node<br />
&nbsp; attr_accessor <span style="color:#ff3333; font-weight:bold;">:left</span>, <span style="color:#ff3333; font-weight:bold;">:right</span>, <span style="color:#ff3333; font-weight:bold;">:data</span><br />
<span style="color:#9966CC; font-weight:bold;">end</span></div></div>
]]></content:encoded>
			<wfw:commentRss>http://michalkuklis.com/blog/2010/01/14/bfs-in-ruby/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gemcutter &amp; Jeweler</title>
		<link>http://michalkuklis.com/blog/2009/10/17/gemcutter-jeweler/</link>
		<comments>http://michalkuklis.com/blog/2009/10/17/gemcutter-jeweler/#comments</comments>
		<pubDate>Sat, 17 Oct 2009 05:03:47 +0000</pubDate>
		<dc:creator>Michał Kuklis</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://michalkuklis.com/blog/?p=240</guid>
		<description><![CDATA[More about gemcutter &#038; jeweler can be found here. Here are the steps how to publish patched gem cloned from github: 1. Append username to gem name in .gemspec or if you use jeweler open Rakefile and edit Jeweler::Tasks section save it and run: rake gemspec 2. Build gem with: gem build 3. Push new [...]]]></description>
			<content:encoded><![CDATA[<p>More about <a href="http://gemcutter.org/">gemcutter</a> &#038; <a href="http://github.com/technicalpickles/jeweler">jeweler </a> can be found <a href="http://railscasts.com/episodes/183-gemcutter-jeweler">here</a>.</p>
<p>Here are the steps how to publish patched gem cloned from github:</p>
<p>1. Append username to gem name in .gemspec or if you use jeweler open Rakefile and edit Jeweler::Tasks section save it and run:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby">rake gemspec</pre></div></div>

<p>2. Build gem with:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby">gem build</pre></div></div>

<p>3. Push new gem to gemcutter</p>

<div class="wp_syntax"><div class="code"><pre class="ruby">gem push</pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://michalkuklis.com/blog/2009/10/17/gemcutter-jeweler/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cron in Ruby</title>
		<link>http://michalkuklis.com/blog/2009/07/27/cron-in-ruby/</link>
		<comments>http://michalkuklis.com/blog/2009/07/27/cron-in-ruby/#comments</comments>
		<pubDate>Mon, 27 Jul 2009 06:10:35 +0000</pubDate>
		<dc:creator>Michał Kuklis</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[cron]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://michalkuklis.com/blog/?p=230</guid>
		<description><![CDATA[Check out how Whenever gem can simplify cron configuration.]]></description>
			<content:encoded><![CDATA[<p><a href="http://railscasts.com/episodes/164-cron-in-ruby">Check out</a> how <a href="http://github.com/javan/whenever/tree/master">Whenever</a> gem can simplify cron configuration.</p>
]]></content:encoded>
			<wfw:commentRss>http://michalkuklis.com/blog/2009/07/27/cron-in-ruby/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>daemon_controller + Thinking Sphinx</title>
		<link>http://michalkuklis.com/blog/2009/07/22/daemon_controller-thinking-sphinx/</link>
		<comments>http://michalkuklis.com/blog/2009/07/22/daemon_controller-thinking-sphinx/#comments</comments>
		<pubDate>Wed, 22 Jul 2009 06:13:02 +0000</pubDate>
		<dc:creator>Michał Kuklis</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://michalkuklis.com/blog/?p=220</guid>
		<description><![CDATA[I&#8217;ve created simple rails initiator in order to start Sphinx through daemon_controller based on the Thinking Sphinx configuration. I hope it will help somebody. require 'daemon_controller' &#160; def before_start if not ThinkingSphinx.define_indexes? config = ThinkingSphinx::Configuration.instance cmd = &#34;#{config.bin_path}#{config.indexer_binary_name} --config \&#34;#{config.config_file}\&#34; --all&#34; cmd &#60;&#60; &#34; --rotate&#34; if ThinkingSphinx.sphinx_running? system cmd end end &#160; if defined?&#40;ThinkingSphinx&#41; if [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve created simple rails initiator in order to start <a href="http://sphinxsearch.com/">Sphinx</a> through <a href="http://blog.phusion.nl/2008/08/25/daemon_controller-a-library-for-robust-daemon-management/">daemon_controller</a> based on the <a href="http://freelancing-god.github.com/ts/en/">Thinking Sphinx</a> configuration. I hope it will help somebody.</p>

<div class="wp_syntax"><div class="code"><pre class="ruby"><span class="kw3">require</span> <span class="st0">'daemon_controller'</span>
&nbsp;
<span class="kw1">def</span> before_start
  <span class="kw1">if</span> <span class="kw1">not</span> ThinkingSphinx.<span class="me1">define_indexes</span>?
    config = <span class="re2">ThinkingSphinx::Configuration</span>.<span class="me1">instance</span>
    cmd = <span class="st0">&quot;#{config.bin_path}#{config.indexer_binary_name} --config <span class="es0">\&quot;</span>#{config.config_file}<span class="es0">\&quot;</span> --all&quot;</span>
    cmd <span class="sy0">&lt;&lt;</span> <span class="st0">&quot; --rotate&quot;</span> <span class="kw1">if</span> ThinkingSphinx.<span class="me1">sphinx_running</span>?
    <span class="kw3">system</span> cmd
  <span class="kw1">end</span>
<span class="kw1">end</span>
&nbsp;
<span class="kw1">if</span> <span class="kw1">defined</span>?<span class="br0">&#40;</span>ThinkingSphinx<span class="br0">&#41;</span>
  <span class="kw1">if</span> <span class="kw1">not</span> ThinkingSphinx.<span class="me1">sphinx_running</span>? 
    conf_instance = <span class="re2">ThinkingSphinx::Configuration</span>.<span class="me1">instance</span>
    <span class="re1">@controller</span> = DaemonController.<span class="me1">new</span><span class="br0">&#40;</span>
      <span class="re3">:identifier</span> <span class="sy0">=&gt;</span> <span class="st0">'Sphinx search server'</span>,
      <span class="re3">:start_command</span> <span class="sy0">=&gt;</span> <span class="st0">&quot;#{conf_instance.bin_path}#{conf_instance.searchd_binary_name} --pidfile --config <span class="es0">\&quot;</span>#{conf_instance.config_file}<span class="es0">\&quot;</span>&quot;</span>,
      <span class="re3">:before_start</span> <span class="sy0">=&gt;</span> method<span class="br0">&#40;</span><span class="re3">:before_start</span><span class="br0">&#41;</span>,
      <span class="re3">:ping_command</span> <span class="sy0">=&gt;</span> <span class="kw3">lambda</span> <span class="br0">&#123;</span> TCPSocket.<span class="me1">new</span><span class="br0">&#40;</span>conf_instance.<span class="me1">configuration</span>.<span class="me1">searchd</span>.<span class="me1">address</span>, conf_instance.<span class="me1">configuration</span>.<span class="me1">searchd</span>.<span class="me1">port</span><span class="br0">&#41;</span> <span class="br0">&#125;</span>,
      <span class="re3">:pid_file</span> <span class="sy0">=&gt;</span> conf_instance.<span class="me1">configuration</span>.<span class="me1">searchd</span>.<span class="me1">pid_file</span>,
      <span class="re3">:log_file</span> <span class="sy0">=&gt;</span> conf_instance.<span class="me1">configuration</span>.<span class="me1">searchd</span>.<span class="me1">log</span><span class="br0">&#41;</span>
      <span class="re1">@controller</span>.<span class="me1">start</span>
  <span class="kw1">end</span>
<span class="kw1">end</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://michalkuklis.com/blog/2009/07/22/daemon_controller-thinking-sphinx/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>ruby maxins in rails plugins</title>
		<link>http://michalkuklis.com/blog/2009/07/20/ruby-maxins-in-rails-plugins/</link>
		<comments>http://michalkuklis.com/blog/2009/07/20/ruby-maxins-in-rails-plugins/#comments</comments>
		<pubDate>Tue, 21 Jul 2009 01:16:46 +0000</pubDate>
		<dc:creator>Michał Kuklis</dc:creator>
				<category><![CDATA[Ruby]]></category>
		<category><![CDATA[ruby on rails]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://michalkuklis.com/blog/?p=175</guid>
		<description><![CDATA[Very often when looking at the code in rails plugins you can run into this: module Taggable def self.included&#40;base&#41; base.extend&#40;ClassMethods&#41; end module module ClassMethods #methods here end end This is a part of a bigger pattern which is shown below: module ModuleA def self.included&#40;base&#41; # add class methods from ModuleB base.extend&#40;ModuleB&#41; end end &#160; module [...]]]></description>
			<content:encoded><![CDATA[<p>Very often when looking at the code in rails plugins you can run into this:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby"><span class="kw1">module</span> Taggable 
  <span class="kw1">def</span> <span class="kw2">self</span>.<span class="me1">included</span><span class="br0">&#40;</span>base<span class="br0">&#41;</span>
    base.<span class="me1">extend</span><span class="br0">&#40;</span>ClassMethods<span class="br0">&#41;</span>
  <span class="kw1">end</span>
  <span class="kw1">module</span> <span class="kw1">module</span> ClassMethods
    <span class="co1">#methods here</span>
  <span class="kw1">end</span>
<span class="kw1">end</span></pre></div></div>

<p>This is a part of a bigger pattern which is shown below:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby"><span class="kw1">module</span> ModuleA
  <span class="kw1">def</span> <span class="kw2">self</span>.<span class="me1">included</span><span class="br0">&#40;</span>base<span class="br0">&#41;</span>
    <span class="co1"># add class methods from ModuleB</span>
    base.<span class="me1">extend</span><span class="br0">&#40;</span>ModuleB<span class="br0">&#41;</span>
  <span class="kw1">end</span>
<span class="kw1">end</span>
&nbsp;
<span class="kw1">module</span> ModuleB
  <span class="kw1">def</span> act_as_hello
    <span class="kw3">p</span> <span class="st0">&quot;hello from module B&quot;</span>
  <span class="kw1">end</span>
<span class="kw1">end</span>
&nbsp;
<span class="kw1">class</span> ClassC
 <span class="co1">#class body here</span>
<span class="kw1">end</span>
&nbsp;
<span class="co1"># include moduleA in classC</span>
ClassC.<span class="me1">send</span><span class="br0">&#40;</span>:<span class="kw1">include</span>, ModuleA<span class="br0">&#41;</span>
&nbsp;
<span class="kw1">class</span> ClassD <span class="sy0">&lt;</span> ClassC
  act_as_hello
<span class="kw1">end</span>
&nbsp;
classD = ClassD.<span class="me1">new</span></pre></div></div>

<p>The pattern is used often when developing plugins with ActiveRecord. What we gain by inheriting from ClassC  (<b>class ClassD < ClassC</b>) are instance methods from ModuleA. This is done by:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby">ClassC.<span class="me1">send</span><span class="br0">&#40;</span>:<span class="kw1">include</span>, ModuleA<span class="br0">&#41;</span></pre></div></div>

<p>Moreover since ModuleA is included in ClassC, ModuleA&#8217;s initializer <strong>def self.included(base)</strong> will be invoked at the time  ModuleA is mixed with ClassC. The invocation will call <b>base.extend(ModuleB)</b>. In this case <b>base</b> represents ClassC which will be extended by adding class methods from ModuleB. The ModuleA&#8217;s init method is shown again below:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby"><span class="kw1">def</span> <span class="kw2">self</span>.<span class="me1">included</span><span class="br0">&#40;</span>base<span class="br0">&#41;</span>
  <span class="co1"># add class methods from ModuleB to ClassC</span>
  base.<span class="me1">extend</span><span class="br0">&#40;</span>ModuleB<span class="br0">&#41;</span>
<span class="kw1">end</span></pre></div></div>

<p>At the end our ClassD has now access to all class methods defined in ModuleB.  <strong>act_as_hello</strong> will be called during ClassD initialization:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby"><span class="kw1">class</span> ClassD <span class="sy0">&lt;</span> ClassC
  act_as_hello
<span class="kw1">end</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://michalkuklis.com/blog/2009/07/20/ruby-maxins-in-rails-plugins/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>capistrano recipes for ubuntu</title>
		<link>http://michalkuklis.com/blog/2009/07/19/capistrano-recipes-for-ubuntu/</link>
		<comments>http://michalkuklis.com/blog/2009/07/19/capistrano-recipes-for-ubuntu/#comments</comments>
		<pubDate>Mon, 20 Jul 2009 03:25:22 +0000</pubDate>
		<dc:creator>Michał Kuklis</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[capistrano]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://michalkuklis.com/blog/?p=172</guid>
		<description><![CDATA[Few nice capistrano recipes which may help you automate Ubuntu Server setup: ubuntu-machine slicehost]]></description>
			<content:encoded><![CDATA[<p>Few nice capistrano recipes which may help you automate Ubuntu Server setup:</p>
<ul>
<li><a href="http://suitmymind.github.com/ubuntu-machine/">ubuntu-machine</a></li>
<li><a href="http://github.com/josh/slicehost/tree/master">slicehost</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://michalkuklis.com/blog/2009/07/19/capistrano-recipes-for-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Decoration in Ruby</title>
		<link>http://michalkuklis.com/blog/2009/06/30/decoration-in-ruby/</link>
		<comments>http://michalkuklis.com/blog/2009/06/30/decoration-in-ruby/#comments</comments>
		<pubDate>Wed, 01 Jul 2009 04:59:38 +0000</pubDate>
		<dc:creator>Michał Kuklis</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://michalkuklis.com/blog/?p=166</guid>
		<description><![CDATA[Interesting discussion about object decoration in ruby.]]></description>
			<content:encoded><![CDATA[<p>Interesting discussion about <a href="http://blog.rubybestpractices.com/posts/gregory/008-decorator-delegator-disco.html">object decoration in ruby</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://michalkuklis.com/blog/2009/06/30/decoration-in-ruby/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>few more ruby links</title>
		<link>http://michalkuklis.com/blog/2009/05/18/few-more-ruby-links/</link>
		<comments>http://michalkuklis.com/blog/2009/05/18/few-more-ruby-links/#comments</comments>
		<pubDate>Mon, 18 May 2009 23:24:42 +0000</pubDate>
		<dc:creator>Michał Kuklis</dc:creator>
				<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://michalkuklis.com/blog/?p=160</guid>
		<description><![CDATA[class and instance methods include vs extend again]]></description>
			<content:encoded><![CDATA[<ul>
<li><a href="http://railstips.org/2009/5/11/class-and-instance-methods-in-ruby">class and instance methods</a></li>
<li><a href="http://railstips.org/2009/5/15/include-verse-extend-in-ruby">include vs extend again </a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://michalkuklis.com/blog/2009/05/18/few-more-ruby-links/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>going back to ruby again&#8230;</title>
		<link>http://michalkuklis.com/blog/2009/04/04/go-back-to-ruby-again/</link>
		<comments>http://michalkuklis.com/blog/2009/04/04/go-back-to-ruby-again/#comments</comments>
		<pubDate>Sat, 04 Apr 2009 18:05:00 +0000</pubDate>
		<dc:creator>Michał Kuklis</dc:creator>
				<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://michalkuklis.com/blog/?p=148</guid>
		<description><![CDATA[Here are few links which helped me understand few ruby concepts: include vs extend include,extend,module_eval,class_eval anonymous classes (aka singleton classes) ruby-metaprogramming-techniques]]></description>
			<content:encoded><![CDATA[<p>Here are few links which helped me understand few ruby concepts:</p>
<ul>
<li><a href="http://www.fromjavatoruby.com/2008/10/include-vs-extend.html">include vs extend</a></li>
<li><a href="http://neeraj.name/blog/articles/503-include-extend-module_eval-class_eval">include,extend,module_eval,class_eval</a></li>
<li><a href="http://pmade.com/articles/2008/ruby-singleton">anonymous classes (aka singleton classes)</a></li>
<li><a href="http://ola-bini.blogspot.com/2006/09/ruby-metaprogramming-techniques.html">ruby-metaprogramming-techniques</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://michalkuklis.com/blog/2009/04/04/go-back-to-ruby-again/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

