Class: RubyLsp::HasStateMachine::Addon

Inherits:
Addon
  • Object
show all
Defined in:
lib/ruby_lsp/has_state_machine/addon.rb

Instance Method Summary collapse

Instance Method Details

#activate(global_state, outgoing_queue) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/ruby_lsp/has_state_machine/addon.rb', line 13

def activate(global_state, outgoing_queue)
  @global_state = global_state
  @model_name_cache = {}
  @rails_client = register_rails_server_addon(outgoing_queue)

  rails_status = if @rails_client
    "registered"
  else
    "unavailable, using naming convention only"
  end

  log(
    outgoing_queue,
    "Activating Has State Machine Ruby LSP add-on v#{version} (Rails integration: #{rails_status})"
  )
end

#create_definition_listener(response_builder, uri, node_context, dispatcher) ⇒ Object



44
45
46
47
48
49
50
51
52
53
54
# File 'lib/ruby_lsp/has_state_machine/addon.rb', line 44

def create_definition_listener(response_builder, uri, node_context, dispatcher)
  Definition.new(
    response_builder,
    uri,
    node_context,
    dispatcher,
    index: @global_state&.index,
    rails_client: @rails_client,
    model_name_cache: @model_name_cache
  )
end

#deactivateObject



30
31
32
33
34
# File 'lib/ruby_lsp/has_state_machine/addon.rb', line 30

def deactivate
  @global_state = nil
  @rails_client = nil
  @model_name_cache = nil
end

#nameObject



36
37
38
# File 'lib/ruby_lsp/has_state_machine/addon.rb', line 36

def name
  "Has State Machine"
end

#versionObject



40
41
42
# File 'lib/ruby_lsp/has_state_machine/addon.rb', line 40

def version
  ::HasStateMachine::VERSION
end