Sha256: bfadac25088d0c20374c9dc474957a1d4d3b1e9109a4e7a66401a988f8497ab0

Contents?: true

Size: 733 Bytes

Versions: 4

Compression:

Stored size: 733 Bytes

Contents

require 'forwardable'

module Yoda
  module Parsing
    class Traverser
      class ResultSet
        extend Forwardable
        include QueryInterface
        include Enumerable

        # @return [Enumerable<AST::Node>]
        attr_reader :nodes
        delegate each: :nodes

        # @params nodes [AST::Node]
        def initialize(nodes)
          @nodes = nodes
        end

        # @return [Enumerable<AST::Node>]
        def all_nodes
          flat_map(&method(:all_nodes_for))
        end

        # @return [Enumerable<AST::Node>]
        def nesting
          flat_map(&method(:nesting))
        end

        # @return [Array<AST::Node>]
        def to_a
          nodes.to_a
        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/parsing/traverser/result_set.rb
yoda-language-server-0.10.0 lib/yoda/parsing/traverser/result_set.rb
yoda-language-server-0.9.0 lib/yoda/parsing/traverser/result_set.rb
yoda-language-server-0.8.0 lib/yoda/parsing/traverser/result_set.rb