title: Ruby: DRY class methods calling Singleton instance methods
body: <p>I have the a Singleton class <code>ExchangeRegistry</code> which keeps all the Exchange objects.</p>
  
  <p>Instead of needing to call: 
     <code>ExchangeRegistry.instance.exchanges</code></p>
  
  <p>I want to be able to use:
  <code>ExchangeRegistry.exchanges</code> </p>
  
  <p>This works, but I'm not happy with the repetition:</p>
  
  <pre><code>require 'singleton'
  
  # Ensure an Exchange is only created once
  class ExchangeRegistry
    include Singleton
  
    # Class Methods  ###### Here be duplication and dragons
  
    def self.exchanges
      instance.exchanges
    end
  
    def self.get(exchange)
      instance.get(exchange)
    end
  
    # Instance Methods
  
    attr_reader :exchanges
  
    def initialize
      @exchanges = {} # Stores every Exchange created
    end
  
    def get(exchange)
      @exchanges[Exchange.to_sym exchange] ||= Exchange.create(exchange)
    end
  end
  </code></pre>
  
  <p>I'm not happy with the duplication in the class methods.</p>
  
  <p>I've tried using <code>Forwardable</code> and <code>SimpleDelegator</code> but can't seem to get this to DRY out. (Most examples out there are not for class methods but for instance methods)</p>