module RKelly::Visitable::ClassMethods

This is a big optimization impairing readability of this code. I'm sorry for that, but this path is called heavily. See git history.

Public Instance Methods

visitor_method_names_by_ancestors() click to toggle source
# File lib/rkelly/visitable.rb, line 8
def visitor_method_names_by_ancestors
  @visitor_method_names_by_ancestors ||= self.ancestors.reject do |i|
    %w[Kernel Object BasicObject Enumerable
       RKelly::Visitors RKelly::Visitable PP::ObjectMixin].include? i.name.to_s
  end.map do |ancestor|
    :"visit_#{ancestor.name.split('::').last}"
  end
end