# File lib/mq/exchange.rb, line 247 def publish data, opts = {} @mq.callback{ out = [] out << Protocol::Basic::Publish.new({ :exchange => name, :routing_key => opts[:key] || @key }.merge(opts)) data = data.to_s out << Protocol::Header.new(Protocol::Basic, data.length, { :content_type => 'application/octet-stream', :delivery_mode => (opts[:persistent] ? 2 : 1), :priority => 0 }.merge(opts)) out << Frame::Body.new(data) @mq.send *out } self end