title: Delegating instance methods to the class method
body: <p>In Ruby, suppose I have a class <code>Foo</code> to allow me to catalogue my large collection of Foos. It's a fundamental law of nature that all Foos are green and spherical, so I have defined class methods as follows:</p>
  
  <pre><code>class Foo
    def self.colour
      "green"
    end
  
    def self.is_spherical?
      true
    end
  end
  </code></pre>
  
  <p>This lets me do </p>
  
  <pre><code>Foo.colour # "green"
  </code></pre>
  
  <p>but not</p>
  
  <pre><code>my_foo = Foo.new
  my_foo.colour # Error!
  </code></pre>
  
  <p>despite the fact that <code>my_foo</code> is plainly green. </p>
  
  <p>Obviously, I could define an instance method <code>colour</code> which calls <code>self.class.colour</code>, but that gets unwieldy if I have many such fundamental characteristics. </p>
  
  <p>I can also presumably do it by defining <code>method_missing</code> to try the class for any missing methods, but I'm unclear whether this is something I should be doing or an ugly hack, or how to do it safely (especially as I'm actually under ActiveRecord in Rails, which I understand does some Clever Fun Stuff with method_missing).</p>
  
  <p>What would you recommend?</p>