I think that this can be simplified to:

``` ruby
pending(reason) { instance_exec(&block) }
```

Assuming the purpose of `fail` in the `else` clause is to cause a failure so that the example remains pending, `instance_exec(&block)` will give you a failure for the `block.nil?` case.