Class: LaunchDarkly::Interfaces::DataSystem::Payload

Inherits:
Object
  • Object
show all
Defined in:
lib/ldclient-rb/interfaces/data_system.rb

Overview

Payload represents a payload delivered in a streaming response.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(id:, target:, code:, reason:) ⇒ Payload

Returns a new instance of Payload.

Parameters:

  • id (String)

    The payload ID

  • target (Integer)

    The target

  • code (String)

    The intent code (IntentCode)

  • reason (String)

    The reason



285
286
287
288
289
290
# File 'lib/ldclient-rb/interfaces/data_system.rb', line 285

def initialize(id:, target:, code:, reason:)
  @id = id
  @target = target
  @code = code
  @reason = reason
end

Instance Attribute Details

#codeString (readonly)

Returns The intent code (IntentCode).

Returns:



274
275
276
# File 'lib/ldclient-rb/interfaces/data_system.rb', line 274

def code
  @code
end

#idString (readonly)

Returns The payload ID.

Returns:

  • (String)

    The payload ID



268
269
270
# File 'lib/ldclient-rb/interfaces/data_system.rb', line 268

def id
  @id
end

#reasonString (readonly)

Returns The reason.

Returns:

  • (String)

    The reason



277
278
279
# File 'lib/ldclient-rb/interfaces/data_system.rb', line 277

def reason
  @reason
end

#targetInteger (readonly)

Returns The target.

Returns:

  • (Integer)

    The target



271
272
273
# File 'lib/ldclient-rb/interfaces/data_system.rb', line 271

def target
  @target
end

Class Method Details

.from_h(data) ⇒ Payload

Deserializes a Payload from a Hash.

Parameters:

  • data (Hash)

    The hash representation

Returns:

Raises:

  • (ArgumentError)

    if required fields are missing or invalid



313
314
315
316
317
318
319
320
321
322
323
324
# File 'lib/ldclient-rb/interfaces/data_system.rb', line 313

def self.from_h(data)
  intent_code = data['intentCode'] || data[:intentCode]

  raise ArgumentError, "Invalid data for Payload: 'intentCode' key is missing or not a string" if intent_code.nil? || !intent_code.is_a?(String)

  Payload.new(
    id: data['id'] || data[:id] || "",
    target: data['target'] || data[:target] || 0,
    code: intent_code,
    reason: data['reason'] || data[:reason] || ""
  )
end

Instance Method Details

#to_hHash

Serializes the Payload to a Hash.

Returns:

  • (Hash)


297
298
299
300
301
302
303
304
# File 'lib/ldclient-rb/interfaces/data_system.rb', line 297

def to_h
  {
    id: @id,
    target: @target,
    intentCode: @code,
    reason: @reason,
  }
end