DZone Snippets is a public source code repository. Easily build up your personal collection of code snippets, categorize them with tags / keywords, and share them with the world

Snippets has posted 5883 posts at DZone. View Full User Profile

Delegation Without Method_missing

12.17.2009
| 3512 views |
  • submit to reddit
        With ActiveSupport we get a clean and easy way to implement the delegation pattern:
class QueueManager

  attr_accessor :queue

  # Delegates some methods to the internal queue
  delegate :size, :clear, :to => :queue

  def intialize
    self.queue = []
  end

end

m = QueueManager.new
m.size
# => 0
m.clear
# => []
More info: 
- http://www.simonecarletti.com/blog/2009/12/inside-ruby-on-rails-delegate/
- http://github.com/rails/rails/blob/master/activesupport/lib/active_support/core_ext/module/delegation.rb