Class: RedSnow::Action

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

Overview

Action Blueprint AST node

represetns 'action sction'

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_action_handle) ⇒ Action

Returns a new instance of Action.

Parameters:

  • sc_action_handle (FFI::Pointer)


295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
# File 'lib/redsnow/blueprint.rb', line 295

def initialize(sc_action_handle)
  @name = RedSnow::Binding.sc_action_name(sc_action_handle)
  @description = RedSnow::Binding.sc_action_description(sc_action_handle)

  @method = RedSnow::Binding.sc_action_httpmethod(sc_action_handle)

  @parameters = Parameters.new(RedSnow::Binding.sc_parameter_collection_handle_action(sc_action_handle))

  @examples = []
  sc_transaction_example_collection_handle = RedSnow::Binding.sc_transaction_example_collection_handle(sc_action_handle)
  sc_transaction_example_collection_size = RedSnow::Binding.sc_transaction_example_collection_size(sc_transaction_example_collection_handle)

  return if sc_transaction_example_collection_size == 0

  examples_size = sc_transaction_example_collection_size - 1

  (0..examples_size).each do |index|
    sc_transaction_example_handle = RedSnow::Binding.sc_transaction_example_handle(sc_transaction_example_collection_handle, index)
    @examples << TransactionExample.new(sc_transaction_example_handle).tap do |example|
      action_instance = self
      example.define_singleton_method(:action) { action_instance }
    end
  end
end

Instance Attribute Details

#examplesArray<TransactionExample>

action transaction examples

Returns:



289
290
291
# File 'lib/redsnow/blueprint.rb', line 289

def examples
  @examples
end

#methodString

HTTP request method or nil

Returns:

  • (String)

    the current value of method



289
290
291
# File 'lib/redsnow/blueprint.rb', line 289

def method
  @method
end

#parametersParameters

action-specific URI parameters or nil

Returns:

  • (Parameters)

    the current value of parameters



289
290
291
# File 'lib/redsnow/blueprint.rb', line 289

def parameters
  @parameters
end