Should expects a matcher object so simplest way to answer your question would be:
>> require 'rspec-expectations'
=> true
>> s = 'potato'
=> "potato"
>> s.should RSpec::Matchers::BuiltIn::Include.new('tat')
=> true
Lets talk about different matcher for a while eq (because there is something about include)
>> require 'rspec-expectations'
=> true
>> s = 'potato'
=> "potato"
>> s.should eq('potato')
NoMethodError: undefined method `eq' for main:Object
To get eq to work we can include RSpec::Matchers module(method definitions start at line 193)
>> require 'rspec-expectations'
=> true
>> s = 'potato'
=> "potato"
>> include RSpec::Matchers
>> s.should eq('potato')
=> true
So what you are missing is to extend your object with RSpec::Matchers module methods or simply passing a matcher to should method.
Problem with include matcher in IRB is still present(not 100% sure why):
>> require 'rspec-expectations'
=> true
>> s = 'potato'
=> "potato"
>> include RSpec::Matchers
>> s.should include('tat')
TypeError: wrong argument type String (expected Module)
It might have something to do with working in a context of a main object:
>> self
=> main
>> self.class
=> Object
>> Object.respond_to(:include)
=> false
>> Object.respond_to(:include, true) #check private and protected methods as well
=> true
Object have a private method include. Include method from RSpec::Matchers never gets chance to get called. If you wrap it in a class that will include RSpec::Matchers everyting should be working.
Rspec does it with MiniTest::Unit::TestCase RSpec::Matchers (line 168)