module RubyLanguageServer::ScopeParserCommands::RailsCommands

Public Instance Methods

on_belongs_to_command([:@ident, "has_one", [2, 2]])
Alias for: rails_add_reference
on_has_and_belongs_to_many_command([:@ident, "has_one", [2, 2]])
Alias for: rails_add_reference
on_has_many_command([:@ident, "has_one", [2, 2]])
Alias for: rails_add_reference
on_has_one_command([:@ident, "has_one", [2, 2]])
Alias for: rails_add_reference
on_named_scope_command([:@ident, "has_one", [2, 2]])
Alias for: rails_add_reference
on_scope_command([:@ident, "has_one", [2, 2]])
Alias for: rails_add_reference
rails_add_reference([:@ident, "has_one", [2, 2]]) click to toggle source
# File lib/ruby_language_server/scope_parser_commands/rails_commands.rb, line 6
def rails_add_reference(line, args, rest)
  # args: [:@ident, "has_one", [2, 2]]
  # rest: [[:args_add_block, [[:symbol_literal, [:symbol, [:@ident, "bar", [2, 11]]]]], false]]

  # Looks like the first string is gonna be the name
  (_, _, (_, column)) = args
  name = rest.flatten.detect { |o| o.instance_of? String }
  [name, "#{name}="].each do |method_name|
    push_scope(RubyLanguageServer::ScopeData::Base::TYPE_METHOD, method_name, line, column)
    process(rest)
    pop_scope
  end
end