A chain of responsibility (Ruby) is a design pattern that allows to decouple a sender of a request from its receiver by giving multiple object a chance to handle that request.