As always, spaces between args is nice :).

But yeah -- I like this solution much, much better.

And actually, you can probably simplify it to:

``` ruby
ProcWithBlock = Struct.new(:object, :method_name) do
  def call(*args, &block)
    object.__send__(:method_missing, :method_name, *args, &block)
  end
end
```

(Notice that I renamed `method` to `method_name` -- `method` is fine as a local variable, but can cause trouble as a method since it overrides `Kernel#method`).