Just an implementation of Visitor design patter in Ruby. As far as double dispatch is applicable for a language with dynamic typing.