class ActiveWorkflowAgent::RegisterResponse

Helper class to construct a response to ActiveWorkflow's register method. docs.activeworkflow.org/remote-agent-api#the-register-method

Public Class Methods

new(name:, display_name:, description:, default_options: {}) click to toggle source
# File lib/active_workflow_agent/register_response.rb, line 9
def initialize(name:, display_name:, description:, default_options: {})
  @name = name
  @display_name = display_name
  @description = description
  @default_options = default_options

  validate_args
end

Public Instance Methods

to_h() click to toggle source
# File lib/active_workflow_agent/register_response.rb, line 18
def to_h
  {
    "result" => {
      "name" => @name,
      "display_name" => @display_name,
      "description" => @description,
      "default_options" => @default_options
    }
  }
end
to_json(*) click to toggle source
# File lib/active_workflow_agent/register_response.rb, line 29
def to_json(*)
  JSON.dump(to_h)
end

Private Instance Methods

validate_args() click to toggle source
# File lib/active_workflow_agent/register_response.rb, line 35
def validate_args
  str_msg = "must be a string"
  empty_msg = "can not be empty"
  whitespace_msg = "can not have whitespace"
  hash_msg = "must be a hash"

  # name
  raise(ArgumentError, "name #{str_msg}") unless @name.is_a?(String)
  raise(ArgumentError, "name #{empty_msg}") if @name.empty?
  raise(ArgumentError, "name #{whitespace_msg}") if @name.include?(" ")
  # display_name
  # rubocop:disable Layout/LineLength
  raise(ArgumentError, "display_name #{str_msg}") unless @display_name.is_a?(String)
  raise(ArgumentError, "display_name #{empty_msg}") if @display_name.empty?
  # default_options
  raise(ArgumentError, "default_options #{hash_msg}") unless @default_options.is_a?(Hash)
  # rubocop:enable Layout/LineLength
end