Sha256: 1c9d206cc32b4faf29a51e0b0e92c46b686ab44302229cf5673bcaa3673e1c36

Contents?: true

Size: 895 Bytes

Versions: 4

Compression:

Stored size: 895 Bytes

Contents

module Yoda
  module Model
    module NodeSignatures
      require 'yoda/model/node_signatures/base'
      require 'yoda/model/node_signatures/node'
      require 'yoda/model/node_signatures/send'
      require 'yoda/model/node_signatures/method_definition'
      require 'yoda/model/node_signatures/const'

      class << self
        # @param node_info [Typing::NodeInfo]
        # @return [NodeSignatures::Base]
        def for_node_info(node_info)
          signature_type_for_node_info(node_info).new(node_info)
        end

        private

        # @param node_info [Typing::NodeInfo]
        def signature_type_for_node_info(node_info)
          case node_info.kind
          when :def, :defs
            MethodDefinition
          when :send
            Send
          when :const
            Const
          else
            Node
          end
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
yoda-language-server-0.10.1 lib/yoda/model/node_signatures.rb
yoda-language-server-0.10.0 lib/yoda/model/node_signatures.rb
yoda-language-server-0.9.0 lib/yoda/model/node_signatures.rb
yoda-language-server-0.8.0 lib/yoda/model/node_signatures.rb