Ответ 1
Вы близки, но при вызове include
на верхнем уровне вы вызываете Module#include
. Чтобы обойти это, вам нужно удалить исходный метод include, чтобы вместо этого был вызван RSpec include
.
Сначала дайте понять, откуда берется система include
:
> method :include
=> #<Method: main.include>
Ok. Похоже, он определен в main
. Это объект верхнего уровня Ruby. Поэтому давайте переименуем и удалим оригинал:
> class << self; alias_method :inc, :include; remove_method :include; end
Теперь мы можем перейти к делу:
> require 'rspec'
> inc RSpec::Matchers
> [1,2,3].should include(1)
=> true