module Gammo::XPath::AST::Subclassify

Class for making subclass declarable/fetchable @!visibility private

Public Instance Methods

declare(key) click to toggle source

@!visibility private

# File lib/gammo/xpath/ast/subclassify.rb, line 15
def declare(key)
  look_for_superclass.map[key] = self
end
fetch(key) click to toggle source

@!visibility private

# File lib/gammo/xpath/ast/subclassify.rb, line 20
def fetch(key)
  fail NotFoundError, "%s not found" % key unless klass = map[key.to_sym]
  klass
end
map() click to toggle source

@!visibility private

# File lib/gammo/xpath/ast/subclassify.rb, line 10
def map
  @map ||= {}
end

Private Instance Methods

look_for_superclass() click to toggle source

@!visibility private

# File lib/gammo/xpath/ast/subclassify.rb, line 28
def look_for_superclass
  klass = superclass
  ancestors.find { |ancestor| ancestor == klass }
end