lib/qwirk/publisher.rb
def publish(object, props={})
      start = Time.now
      marshaled_object = @marshaler.marshal(object)
      adapter_info = @impl.publish(marshaled_object, @marshaler, nil, props)
      return PublishHandle.new(self, adapter_info, start)
    end
def publish(object, props={})
      start = Time.now
      marshaled_object = @marshaler.marshal(object)
      adapter_info = @impl.publish(marshaled_object, @marshaler, nil, props)
      return PublishHandle.new(self, adapter_info, start)
    end
Parameters:
   One of the following must be specified
     :queue_name            => String: Name of the Queue to publish to
     :topic_name            => String: Name of the Topic to publish to
   Optional:
     :time_to_live          => expiration time in ms for the message (JMS)
     :persistent            => true or false (defaults to false) (JMS)
     :marshal               => Symbol: One of :ruby, :string, :json, :bson, :yaml or any registered types (See Qwirk::MarshalStrategy), defaults to :ruby
     :response              => if true or a hash of response options, a temporary reply queue will be setup for handling responses
       :time_to_live        => expiration time in ms for the response message(s) (JMS))
       :persistent          => true or false for the response message(s), set to false if you don't want timed out messages ending up in the DLQ (defaults to true unless time_to_live is set)
 Publish the given object to the address.