class DAP::ProtocolMessage

Base class of requests, responses, and events.

Public Class Methods

from(values) click to toggle source

Create a protocol message from attribute values. @param values [Hash] the attribute values

# File lib/dap/protocol_message.rb, line 15
def self.from(values)
  build(values) do |v|
    key = v[:type]&.to_sym
    raise "#{name}.type missing" if key.nil?
    raise "Unknown #{name}.type #{key}" unless types.key?(key)

    types[key]
  end
end
new(values) click to toggle source

(see Base#initialize)

Calls superclass method DAP::Base::new
# File lib/dap/protocol_message.rb, line 33
def initialize(values)
  super(values)
  @seq = values[:seq] || DAP::ProtocolMessage.seq
  @type = self.class.type
end
types() click to toggle source

Valid protocol message types. @return [Hash<Symbol,Class>]

# File lib/dap/protocol_message.rb, line 5
def self.types
  @types ||= {
    request: DAP::Request,
    event: DAP::Event,
    response: DAP::Response,
  }
end

Private Class Methods

seq() click to toggle source
# File lib/dap/protocol_message.rb, line 41
def self.seq
  @seq ||= 0
  @seq += 1
end