Sha256: cfa2807673d3936351bde7bcf3d5a7c0e0ac2dfa6e424b2ca8000272394f4e60
Contents?: true
Size: 504 Bytes
Versions: 17
Compression:
Stored size: 504 Bytes
Contents
module MJ; class Visitable def accept( visitor ) method_name = nil klass = self.class.ancestors.find do |ancestor| method_name = "visit_#{ancestor.name.split('::')[-1]}" visitor.respond_to?( method_name ) end if klass return visitor.send( method_name, self ) else raise "#{visitor.class}: Not a visitor for #{self.class}!" end end end end
Version data entries
17 entries across 17 versions & 1 rubygems