Our README is out of date -- it was written against RSpec 2 but we have no tooling that validates its correctness and we forgot to update that example for the changes in RSpec 3. That's one advantage of the cukes -- they are self-validating and thus always correct :).
Anyhow, in RSpec 3, we removed the `example` method, in favor of passing an arg to the `it`, `before`, `after`, `let`, etc. blocks:
So change `before(:example) do` to `before(:example) do |example|` and `it "..." do` to `it "..." do |example|` and it should work.
It is. Every example is evaluated in the context of an instance of the example group class of which it is a part. This mirrors typical xUnit structure where you've got TestCase classes and tests are instance methods of those classes. This in turn provides us with the desired scoping and inheritance semantics that you'd want. Helper methods defined in the example group can be automatically called from within the `it` block without doing anything special to support that.
The `example` object yielded to these methods is a special object that keeps track of the state of a particular example, exposing its metadata, its execution result, etc.
HTH,
Myron