class Wamp::Client::Request::Publish

Public Instance Methods

create_request(request_id, topic, args=nil, kwargs=nil, options={}, &callback) click to toggle source
# File lib/wamp/client/request/publish.rb, line 16
def create_request(request_id, topic, args=nil, kwargs=nil, options={}, &callback)

  # Create the lookup
  lookup = options[:acknowledge] ? {t: topic, a: args, k: kwargs, o: options, c: callback} : nil

  # Create the message
  message = Message::Publish.new(request_id, options, topic, args, kwargs)

  # Return
  [lookup, message]
end
process_error(message, lookup) click to toggle source
# File lib/wamp/client/request/publish.rb, line 50
def process_error(message, lookup)
  if lookup
    # Get the params
    topic = lookup[:t]
    callback = lookup[:c]

    # Create the details
    details = message.details || {}
    details[:topic] = topic unless details[:topic]
    details[:type] = 'publish'

    # Return the values
    [callback, details]
  else
    [nil, nil]
  end
end
process_success(message, lookup) click to toggle source
# File lib/wamp/client/request/publish.rb, line 28
def process_success(message, lookup)
  if lookup
    # Get the params
    topic = lookup[:t]
    args = lookup[:a]
    kwargs = lookup[:k]
    options = lookup[:o]
    callback = lookup[:c]

    # Create the details
    details = {}
    details[:topic] = topic
    details[:type] = 'publish'
    details[:publication] = message.publication

    # Return the values
    [callback, { args: args, kwargs: kwargs, options: options }, details]
  else
    [nil, nil, nil]
  end
end