Sha256: 54c0936410f13c3b828fbcc808a7f578a1afc6bb705f553f76f6caf3f92a4843

Contents?: true

Size: 694 Bytes

Versions: 3

Compression:

Stored size: 694 Bytes

Contents

class DAP::ProtocolMessage < DAP::Base
  def self.types
    @types ||= {
      request: DAP::Request,
      event: DAP::Event,
      response: DAP::Response,
    }
  end

  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

  property :seq, :type

  def initialize(values)
    super(values)
    @seq = values[:seq] || DAP::ProtocolMessage.seq
    @type = self.class.type
  end

  private

  def self.seq
    @seq ||= 0
    @seq += 1
  end
end

require_relative 'request'
require_relative 'event'
require_relative 'response'

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
ruby-dap-0.1.2 lib/dap/protocol_message.rb
ruby-dap-0.1.1 lib/dap/protocol_message.rb
ruby-dap-0.1.0 lib/dap/protocol_message.rb