<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DZone Snippets: ClassVariable code</title>
    <link>http://snippets.dzone.com/posts</link>
    <pubDate>Sun, 07 Sep 2008 03:43:19 GMT</pubDate>
    <description>DZone Snippets: ClassVariable code</description>
    <item>
      <title>Acts as Java Class Variable</title>
      <link>http://snippets.dzone.com/posts/show/4394</link>
      <description>// Ruby's Class Variable is soooooooooooooooo confusing&lt;br /&gt;// http://www.oreillynet.com/ruby/blog/2007/01/nubygems_dont_use_class_variab_1.html&lt;br /&gt;// However, if we use &lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;module JCV&lt;br /&gt;  def self.included(the_class)&lt;br /&gt;    class &lt;&lt; the_class&lt;br /&gt;      def acts_like_java_class_variable( *arg)&lt;br /&gt;&lt;br /&gt;        the_class = self&lt;br /&gt;        singleton_class = class &lt;&lt; self; self; end&lt;br /&gt;        arg.each do |var|&lt;br /&gt;          singleton_class.send :define_method, "#{var}",&lt;br /&gt;                               &amp; lambda{ the_class.send "__real_#{var}"}&lt;br /&gt;          singleton_class.send :define_method, "#{var}=",&lt;br /&gt;                               &amp; lambda{|c| the_class.send "__real_#{var}=",c}&lt;br /&gt;          singleton_class.send :define_method, "__real_#{var}",&lt;br /&gt;                               &amp; lambda{ instance_variable_get "@#{var}"}&lt;br /&gt;          singleton_class.send :define_method, "__real_#{var}=",&lt;br /&gt;                               &amp; lambda{|c| instance_variable_set "@#{var}", c}&lt;br /&gt;        end&lt;br /&gt;      end&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;class A&lt;br /&gt;  include JCV&lt;br /&gt;  acts_like_java_class_variable :count&lt;br /&gt;&lt;br /&gt;  @count = 0&lt;br /&gt;  def initialize&lt;br /&gt;    A.count +=1&lt;br /&gt;  end&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Mon, 06 Aug 2007 03:47:25 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4394</guid>
      <author>contagion (ZuNien Lin)</author>
    </item>
  </channel>
</rss>
