title: Delegate all methods but setters
body: <p>In my Rails application I need a class that wraps an ActiveRecord object and disable all its setters. Other methods should be delegated to inner object.</p>
  
  <p>Example:</p>
  
  <pre><code>class Person &lt; ActiveRecord::Base
    attr_accessible :name, :age
    def adult?
      age &gt;= 18
    end
  end
  
  class PersonWrapper
    def initialize(person)
      @person = person
    end
  end
  
  person = Person.new(name: "John", age: 12)
  wrapper = PersonWrapper.new(Person)
  
  wrapper.age # =&gt; 12
  wrapper.adult? # =&gt; false
  wrapper.age = 123 # error
  </code></pre>
  
  <p>Is there any convenient way to do it besides <code>method_missing</code>?</p>