jarib/webidl

View on GitHub
lib/webidl/ast/node.rb

Summary

Maintainability
A
0 mins
Test Coverage
module WebIDL
  module Ast
    class Node

      attr_reader :parent

      def initialize(parent = nil)
        @parent = parent
      end

      def qualified_name
        return unless @name

        if @parent.respond_to?(:qualified_name)
          "#{@parent.qualified_name}::#{@name}"
        else
          "::#{@name}"
        end
      end

      def accept(visitor, &blk)
        visitor.send("visit_#{snake_name}", self, &blk)
      end

      def snake_name
        self.class.name.split("::").last.snake_case
      end

    end # Node
  end # Ast
end # WebIDL