Sha256: bf85374895536973311d421a44d58db5d3e204c794edb9736fc1971b35d87e7c

Contents?: true

Size: 724 Bytes

Versions: 4

Compression:

Stored size: 724 Bytes

Contents

module Yoda
  module Model
    class NodeSignature
      attr_reader :node, :trace
      # @param node  [::Parser::AST::Node]
      # @param trace [Typing::Traces::Base]
      def initialize(node, trace)
        @node = node
        @trace = trace
      end

      # @return [Range]
      def node_range
        Parsing::Range.of_ast_location(node.location)
      end

      # @return [Array<Descriptions::Base>]
      def descriptions
        case trace
        when Typing::Traces::Send
          trace.functions.map { |function| Descriptions::FunctionDescription.new(function) }.take(1)
        else
          trace.values.map { |value| Descriptions::ValueDescription.new(value) }
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
yoda-language-server-0.6.1 lib/yoda/model/node_signature.rb
yoda-language-server-0.6.0 lib/yoda/model/node_signature.rb
yoda-language-server-0.5.0 lib/yoda/model/node_signature.rb
yoda-language-server-0.4.0 lib/yoda/model/node_signature.rb