title: Chaining Rspec Custom Matchers
body: <p>For testing reasons I've recently moved some of my RSpec matchers to use the class form rather than the DSL. Is there a way to easily get chaining behaviour when they are in this form.</p>
  
  <p>E.g.</p>
  
  <pre><code>class BeInZone
    def initialize(expected)
      @expected = expected
    end
    def matches?(target)
      @target = target
      @target.current_zone.eql?(Zone.new(@expected))
    end
    def failure_message
      "expected #{@target.inspect} to be in Zone #{@expected}"
    end
    def negative_failure_message
      "expected #{@target.inspect} not to be in Zone #{@expected}"
    end
    # chain methods here
  end
  </code></pre>
  
  <p>Many thanks</p>