class Syncano module Packets # Class representing call packets used in communication with the Sync Server class Call < Syncano::Packets::Base attr_reader :message_id, :resource_name, :method_name, :data # Constructor for Syncano::Packets::Call object # @param [Hash] attributes def initialize(attributes) super(attributes) self.resource_name = attributes[:resource_name] self.method_name = attributes[:method_name] self.data = attributes[:data] self.message_id = attributes[:message_id] || rand(10**12) end # Overwritten method for preparing hash for json serialization # @param [Hash] options # @return [Hash] def as_json(options = {}) { type: 'call', method: "#{resource_name}.#{method_name}", params: data, message_id: message_id.to_s } end private attr_writer :message_id, :resource_name, :method_name, :data end end end