lib/dripdrop/handlers/http.rb in dripdrop-0.9.3 vs lib/dripdrop/handlers/http.rb in dripdrop-0.9.4
- old
+ new
@@ -15,11 +15,11 @@
@body_callback = blk
end
def send_message(raw_msg)
msg = dd_messagify(raw_msg)
- if msg.class == DripDrop::Message
+ if msg.is_a?(DripDrop::Message)
json = msg.encode_json
self.call([json])
self.succeed
else
raise "Message Type '#{msg.class}' not supported"
@@ -61,10 +61,11 @@
def initialize(uri,opts={})
@uri = uri
@address = uri.to_s
@opts = opts
+ @message_class = @opts[:message_class] || DripDrop.default_message_class
end
def on_recv(msg_format=:dripdrop_json,&block)
#Thin's error handling only rescues stuff w/o a backtrace
begin
@@ -88,24 +89,25 @@
def initialize(uri, opts={})
@uri = uri
@address = @uri.to_s
@opts = opts
+ @message_class = @opts[:message_class] || DripDrop.default_message_class
end
def send_message(message,&block)
dd_message = dd_messagify(message)
- if dd_message.class == DripDrop::Message
+ if dd_message.is_a?(DripDrop::Message)
uri_path = @uri.path.empty? ? '/' : @uri.path
req = EM::Protocols::HttpClient.request(
:host => @uri.host, :port => @uri.port,
:request => uri_path, :verb => 'POST',
:contenttype => 'application/json',
:content => dd_message.encode_json
)
req.callback do |response|
- block.call(DripDrop::Message.decode_json(response[:content]))
+ block.call(@message_class.decode_json(response[:content]))
end
else
raise "Unsupported message type '#{dd_message.class}'"
end
end