def contract_for(method)
      if contract_defined?(method)
        method_contracts[method]
      else
        MethodContract.new("#{self}##{method}").tap do |contract|
          self.method_contracts[method] = contract
        end
      end
    end
def contract_for(method)
      if contract_defined?(method)
        method_contracts[method]
      else
        MethodContract.new("#{self}##{method}").tap do |contract|
          self.method_contracts[method] = contract
        end
      end
    end
Returns the MethodContract for the given method name. Side effect:
 creates one if none defined.