Sha256: deda8a0b5af0fab3292ef24f63a0d7b1d0cf6e0a5dd1dca743409fa8c9e01725

Contents?: true

Size: 1.13 KB

Versions: 12

Compression:

Stored size: 1.13 KB

Contents

module Yoda
  module YARDExtensions
    class SigDirective < YARD::Tags::Directive
      def call; end

      def after_parse
        return unless handler && handler.namespace
        create_object
      end

      def create_object
        method_name = name
        scope = parser.state.scope || handler.scope
        visibility = parser.state.visibility || handler.visibility

        method_object = YARD::CodeObjects::MethodObject.new(handler.namespace, method_name, scope)
        method_object.add_tag(TypeTag.new(:type, type_text))

        unless method_object.files
          # Already registered object
          method_object.signature = "def #{method_name}"
          method_object.dynamic = true
          handler.register_file_info(method_object)
          handler.register_source(method_object)
          handler.register_visibility(method_object, visibility)
          handler.register_group(method_object)
          handler.register_module_function(method_object)
        end
      end

      def name
        tag.text.split(' ').first
      end

      def type_text
        tag.text.gsub(/\A\w+\s+/, '')
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
yoda-language-server-0.10.1 lib/yoda/yard_extensions/sig_directive.rb
yoda-language-server-0.10.0 lib/yoda/yard_extensions/sig_directive.rb
yoda-language-server-0.9.0 lib/yoda/yard_extensions/sig_directive.rb
yoda-language-server-0.8.0 lib/yoda/yard_extensions/sig_directive.rb
yoda-language-server-0.7.2 lib/yoda/yard_extensions/sig_directive.rb
yoda-language-server-0.7.1 lib/yoda/yard_extensions/sig_directive.rb
yoda-language-server-0.7.0 lib/yoda/yard_extensions/sig_directive.rb
yoda-language-server-0.6.2 lib/yoda/yard_extensions/sig_directive.rb
yoda-language-server-0.6.1 lib/yoda/yard_extensions/sig_directive.rb
yoda-language-server-0.6.0 lib/yoda/yard_extensions/sig_directive.rb
yoda-language-server-0.5.0 lib/yoda/yard_extensions/sig_directive.rb
yoda-language-server-0.4.0 lib/yoda/yard_extensions/sig_directive.rb