Use here_document with class_eval to simplify debugging:
class_eval <<-"end_eval", __FILE__, __LINE__
  def #{block_accessor}(*args, &block)
    unless args.empty? && block.nil?
      args.push block if block_given?
      @#{block_accessor} = [args].flatten
    end
    @#{block_accessor}
  end
end_evalclass_eval (as well as module_eval and some other methods) actually takes blocks or strings for evaluation, so instead of passing a block, we pass everything as a here-document string, and add two additional params for filename and line in that file.
When exception hits the fan, it will be trivial to locate.