Disable the rspec-core DSL in the global scope.
Merge pull request #768 from rspec/disable-global-dsl

Disable the rspec-core DSL in the global scope.
Fix ruby warning.
Merge pull request #769 from rspec/fix-load-time-spec-warnings

Fix ruby warning.
Setup rubocop.

Closes #702.
Merge pull request #770 from rspec/setup-rubocop

Setup rubocop.
Fix prepended module detection on Ruby 2.0

Ruby's behaviour when prepending a module to a singleton class differs
between 2.0 and 2.1. I wrote a test case to illustrate the differences:
https://gist.github.com/eugeneius/884873965f90092fc50c

On Ruby 2.1, the singleton class always appears in its own ancestors
chain. Prepended modules come before it, and included modules after it.
This is consistent with how the ancestors chain works for normal classes
and modules.

On Ruby 2.0, the singleton class only appears in its own ancestors chain
if a module has been prepended to it. This means we can't find the
prepended modules by just iterating over its ancestors until some
stopping condition. Right now included modules are being incorrectly
classified as prepended modules on Ruby 2.0 - I've included a spec here
capturing the bug that fails on master.

If the singleton class is not in its own ancestors chain, we know there
aren't any prepended modules, so we don't need to check for them. The
existing code works in all other cases.
Merge pull request #771 from eugeneius/fix_prepended_module_detection

Fix prepended module detection on Ruby 2.0
changelog for #771
[skip ci]
spec out #745

(This has since been solved by #771).
Refactor `prepended_modules_of_singleton_class`.

The `take_while` implementation was a bit obtuse.

It is simpler to just find the index of the singleton
class and then just return all ancestors before it. This
ensures that only modules which are prepended onto the
specific singleton class we are dealing with (and not the
singleton class of a superclass...) are considered, which was
the root of the problem causing #745.
Merge pull request #773 from rspec/issue-771-followup

Issue 771 followup
Add a sketch implementation of args diffing

Related #434. This uses the differ that is now in RSpec support to
perform argument diffing when arguments don't match.

Things worth noting/still to do:

* Special case behaviour needs to be added for the no arguments matcher
  and the any arguments matcher, at the moment something like this:
       @@ -1,2 +1,2 @@
       -[#<RSpec::Mocks::ArgumentMatchers::NoArgsMatcher:0x000001024ec728>]
       +[{:bees=>:foo}]
  gets printed, and that's obviously not great.
* Need to work out what to do in the "similar args" case where there are
  potientially multiple calls. I think the best thing to do would be to
  would be to only diff if there's one call.

There's some refactoring that could be done here but I want to finish
implementing the "similar args" implementation before I do that so that
I'm sure that I'm refactoring the right thing.
Add diff-lcs as a runtime dependency of RSpec Mocks
Support coloring
Add some specs for the differ
Use hash inspect to get ordering correct
Prefer Support.is_a_matcher? for matcher checking.

Replaces respond_to?(:description) as some domain objects may respond to
description.
Don't leak diffing details into double_spec
Use is_a_matcher? to decide if #description is used in error output