    # File lib/yard/tags/library.rb, line 198
            def define_directive(tag, tag_meth = nil, directive_class = nil)
              directive_meth = directive_method_name(tag)
              if directive_class.nil?
                tag_meth, directive_class = nil, tag_meth
              end
              class_eval "def \#{directive_meth}(tag, parser)\ndirective_call(tag, parser)\nend\n", __FILE__, __LINE__

              @factory_methods ||= SymbolHash.new(false)
              @factory_methods.update(tag => tag_meth)
              @directive_factory_classes ||= SymbolHash.new(false)
              @directive_factory_classes.update(tag => directive_class)

              tag
            end