Class: RubyLsp::RSpec::TestDiscovery
- Inherits:
-
Object
- Object
- RubyLsp::RSpec::TestDiscovery
- Includes:
- RubyLsp::Requests::Support::Common
- Defined in:
- lib/ruby_lsp/ruby_lsp_rspec/test_discovery.rb
Instance Method Summary collapse
-
#initialize(response_builder, dispatcher, uri, workspace_path) ⇒ TestDiscovery
constructor
: (ResponseBuilders::TestCollection, Prism::Dispatcher, URI::Generic, String) -> void.
-
#on_call_node_enter(node) ⇒ Object
: (Prism::CallNode) -> void.
-
#on_call_node_leave(node) ⇒ Object
: (Prism::CallNode) -> void.
Constructor Details
#initialize(response_builder, dispatcher, uri, workspace_path) ⇒ TestDiscovery
: (ResponseBuilders::TestCollection, Prism::Dispatcher, URI::Generic, String) -> void
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/ruby_lsp/ruby_lsp_rspec/test_discovery.rb', line 10 def initialize(response_builder, dispatcher, uri, workspace_path) @response_builder = response_builder @dispatcher = dispatcher @uri = uri path = uri.to_standardized_path #: as !nil @path = path #: String @workspace_path = workspace_path #: String @group_stack = [] #: Array[::RubyLsp::Requests::Support::TestItem] dispatcher.register( self, :on_call_node_enter, :on_call_node_leave, ) end |
Instance Method Details
#on_call_node_enter(node) ⇒ Object
: (Prism::CallNode) -> void
28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/ruby_lsp/ruby_lsp_rspec/test_discovery.rb', line 28 def on_call_node_enter(node) return unless ["describe", "context", "it", "specify", "example", "feature", "scenario"].include?(node.) case node. when "describe", "context", "feature" return unless valid_group?(node) handle_describe(node) when "it", "specify", "example", "scenario" handle_example(node) end end |
#on_call_node_leave(node) ⇒ Object
: (Prism::CallNode) -> void
42 43 44 45 46 47 48 49 |
# File 'lib/ruby_lsp/ruby_lsp_rspec/test_discovery.rb', line 42 def on_call_node_leave(node) case node. when "context", "describe", "feature" return unless valid_group?(node) @group_stack.pop end end |