Class: Spoom::LSP::Message

Inherits:
Object
  • Object
show all
Defined in:
lib/spoom/sorbet/lsp/base.rb

Overview

A general message as defined by JSON-RPC.

The language server protocol always uses "2.0" as the jsonrpc version.

Direct Known Subclasses

Notification, Request

Instance Method Summary collapse

Constructor Details

#initialize ⇒ Message

: -> void



13
14
15
# File 'lib/spoom/sorbet/lsp/base.rb', line 13

def initialize
  @jsonrpc = "2.0" #: String
end

Instance Method Details

#as_json ⇒ Object

: -> Hash[untyped, untyped]



18
19
20
21
22
23
# File 'lib/spoom/sorbet/lsp/base.rb', line 18

def as_json
  instance_variables.each_with_object({}) do |var, obj|
    val = instance_variable_get(var)
    obj[var.to_s.delete("@")] = val if val
  end
end

#to_json(*args) ⇒ Object

: (*untyped args) -> String



26
27
28
# File 'lib/spoom/sorbet/lsp/base.rb', line 26

def to_json(*args)
  T.unsafe(as_json).to_json(*args)
end