Class: RedSnow::TransactionExample

Inherits:
NamedBlueprintNode show all
Defined in:
lib/redsnow/blueprint.rb

Overview

Transaction example Blueprint AST node

Instance Attribute Summary collapse

Attributes inherited from NamedBlueprintNode

#description, #name

Instance Method Summary collapse

Methods inherited from NamedBlueprintNode

#ensure_description_newlines

Constructor Details

#initialize(sc_transaction_example_handle) ⇒ TransactionExample

Returns a new instance of TransactionExample.

Parameters:

  • sc_transaction_example_handle (FFI::Pointer)


243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
# File 'lib/redsnow/blueprint.rb', line 243

def initialize(sc_transaction_example_handle)
  @name  = RedSnow::Binding.sc_transaction_example_name(sc_transaction_example_handle)
  @description = RedSnow::Binding.sc_transaction_example_description(sc_transaction_example_handle)

  # BP Resource Actions Examples Requests
  @requests = []
  sc_payload_collection_handle_requests = RedSnow::Binding.sc_payload_collection_handle_requests(sc_transaction_example_handle)
  sc_payload_collection_size_requests = RedSnow::Binding.sc_payload_collection_size(sc_payload_collection_handle_requests)

  if sc_payload_collection_size_requests > 0
    requests_size = sc_payload_collection_size_requests - 1

    (0..requests_size).each do |index|
      sc_payload_handle = RedSnow::Binding.sc_payload_handle(sc_payload_collection_handle_requests, index)
      @requests << Payload.new(sc_payload_handle).tap do |payload|
        example_instance = self
        payload.define_singleton_method(:example) { example_instance }
      end
    end
  end

  # BP Resource Actions Examples Responses
  @responses = []
  sc_payload_collection_handle_responses = RedSnow::Binding.sc_payload_collection_handle_responses(sc_transaction_example_handle)
  sc_payload_collection_size_responses = RedSnow::Binding.sc_payload_collection_size(sc_payload_collection_handle_responses)

  return if sc_payload_collection_size_responses == 0

  responses_size = sc_payload_collection_size_responses - 1

  (0..responses_size).each do |index|
    sc_payload_handle = RedSnow::Binding.sc_payload_handle(sc_payload_collection_handle_responses, index)
    @responses << Payload.new(sc_payload_handle).tap do |payload|
      example_instance = self
      payload.define_singleton_method(:example) { example_instance }
    end
  end
end

Instance Attribute Details

#requestsArray<Request>

example request payloads

Returns:

  • (Array<Request>)

    the current value of requests



238
239
240
# File 'lib/redsnow/blueprint.rb', line 238

def requests
  @requests
end

#responseArray<Response>

example response payloads

Returns:

  • (Array<Response>)

    the current value of response



238
239
240
# File 'lib/redsnow/blueprint.rb', line 238

def response
  @response
end

#responsesObject

Returns the value of attribute responses.



240
241
242
# File 'lib/redsnow/blueprint.rb', line 240

def responses
  @responses
end