rspec-core has configuration APIs for managing aliases for example (e.g. it) and shared_examples (e.g. it_behaves_like), but there is no such API for managing aliases for describe (which should be renamed to example_group and then aliased as describe and context).
As of 2.7, describe is available at all levels, but context is only available within an example group declaration.
I'd propose something along the lines of this:
RSpec.configure do |c|
c.alias_example_group_to :describe, :top_level => true
c.alias_example_group_to :context, :top_level => false
We should also be able to turn off all top-level names if we want, so users concerned with describe, context, et al bleeding into their code can say:
RSpec.describe Thing do
it "does something"
Would this allow the aliases to define custom behavior? It doesn't look like it would be possible. I'm thinking along the lines of how capybara/rpsec adds metadata when defining it's feature method.
@samwgoldman - yes, that would be the idea. Otherwise it adds zero value over alias
Now that we have a PR (#870), I'm going to close this to focus discussion there.