Class: RubyLsp::Ree::ParsedRouteDocument

Inherits:
ParsedClassDocument show all
Includes:
ReeLspUtils
Defined in:
lib/ruby_lsp/ruby_lsp_ree/parsing/parsed_route_document.rb

Constant Summary

Constants included from ReeLspUtils

ReeLspUtils::Entry

Constants included from ReeConstants

ReeConstants::CONTRACT_CALL_NODE_NAMES, ReeConstants::DAO_DSL_MODULE, ReeConstants::ERROR_DEFINITION_NAMES, ReeConstants::LINKS_CONTAINER_TYPES, ReeConstants::LINK_DSL_MODULE, ReeConstants::MAPPER_DSL_MODULE, ReeConstants::ROUTES_DSL_MODULE

Instance Attribute Summary

Attributes inherited from ParsedClassDocument

#bean_methods, #class_includes, #class_node, #defined_classes, #defined_consts, #doc_instance_methods, #error_definition_names, #error_definitions, #links_container_block_node, #links_container_node, #values

Attributes inherited from ParsedBaseDocument

#ast, #link_nodes, #package_name

Instance Method Summary collapse

Methods included from ReeLspUtils

#camelize, #find_local_file_path, #get_range_for_fn_insert, #get_ree_type, #get_uri_path, #package_name_from_spec_uri, #package_name_from_uri, #package_path_from_uri, #parameter_name, #path_from_package_folder, #signature_params_from_node, #spec_relative_file_path_from_uri, #underscore

Methods inherited from ParsedClassDocument

#allows_root_links?, #class_name, #find_link_with_imported_object, #full_class_name, #has_blank_links_container?, #has_body?, #has_root_class?, #imported_constants, #includes_dao_dsl?, #includes_link_dsl?, #includes_linked_constant?, #includes_mapper_dsl?, #includes_ree_dsl?, #includes_routes_dsl?, #links_container_node_name, #module_name, #parse_bean_methods, #parse_class_includes, #parse_class_node, #parse_const_objects, #parse_defined_classes, #parse_defined_consts, #parse_error_definitions, #parse_instance_methods, #parse_links, #parse_links_container_node, #parse_method_calls, #parse_signatures_from_params, #parse_values, #ree_dsls

Methods inherited from ParsedBaseDocument

#allows_root_links?, #find_import_for_package, #find_link_by_usage_name, #find_link_node, #has_blank_links_container?, #has_root_class?, #includes_dao_dsl?, #includes_link_dsl?, #includes_linked_object?, #includes_mapper_dsl?, #includes_ree_dsl?, #includes_routes_dsl?, #links_container_node, #node_name, #parse_links, #set_package_name

Constructor Details

#initialize(ast, package_name = nil) ⇒ ParsedRouteDocument

Returns a new instance of ParsedRouteDocument.



4
5
6
7
8
# File 'lib/ruby_lsp/ruby_lsp_ree/parsing/parsed_route_document.rb', line 4

def initialize(ast, package_name = nil)
  super
  parse_class_includes
  parse_route_options
end

Instance Method Details

#has_route_option?(option_name) ⇒ Boolean

Returns:

  • (Boolean)


23
24
25
# File 'lib/ruby_lsp/ruby_lsp_ree/parsing/parsed_route_document.rb', line 23

def has_route_option?(option_name)
  @route_options.has_key?(option_name.to_s)
end

#parse_route_optionsObject



10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/ruby_lsp/ruby_lsp_ree/parsing/parsed_route_document.rb', line 10

def parse_route_options
  @route_options ||= {}
  return unless @class_node

  @routes_node = @class_node.body.body.detect{ node_name(_1) == :routes }
  return if !@routes_node || !@routes_node.block

  @route_opts_node = @routes_node.block.body.body.detect{ node_name(_1) == :opts }
  @route_opts_node.value.elements.each do |assoc_node|
    @route_options[assoc_node.key.unescaped] = assoc_node.value.unescaped
  end
end

#route_option_value(option_name) ⇒ Object



27
28
29
# File 'lib/ruby_lsp/ruby_lsp_ree/parsing/parsed_route_document.rb', line 27

def route_option_value(option_name)
  @route_options[option_name.to_s]
end