class RJR::Messages::Compressed::Notification
Public Class Methods
is_compressed_notification_message?(message)
click to toggle source
# File lib/rjr/messages/compressed.rb, line 234 def self.is_compressed_notification_message?(message) begin parsed = JSONParser.parse(message) parsed.has_key?('m') && !parsed.has_key?('i') rescue Exception => e false end end
is_notification_message?(message)
click to toggle source
Calls superclass method
# File lib/rjr/messages/compressed.rb, line 243 def self.is_notification_message?(message) is_compressed_notification_message?(message) || super(message) end
new(args = {})
click to toggle source
# File lib/rjr/messages/compressed.rb, line 199 def initialize(args = {}) parse_args(args) end
Public Instance Methods
to_json(*a)
click to toggle source
# File lib/rjr/messages/compressed.rb, line 247 def to_json(*a) deflated = Zlib::Deflate.deflate(@jr_args.to_json.to_s) encoded = Base64.encode64(deflated) {'j' => 2.0, 'm' => @jr_method, 'p' => encoded}.merge(@headers).to_json(*a) end
Private Instance Methods
parse_args(args)
click to toggle source
Calls superclass method
# File lib/rjr/messages/compressed.rb, line 205 def parse_args(args) args = Hash[args] if args[:message] message = args.delete(:message) parse_message(message, args) else super(args) end end
parse_message(message, args={})
click to toggle source
# File lib/rjr/messages/compressed.rb, line 215 def parse_message(message, args={}) @json_message = message request = JSONParser.parse(@json_message) if request.has_key?('m') decoded = Base64.decode64(request['p']) inflated = Zlib::Inflate.inflate(decoded) converted = JSONParser.parse(inflated) parse_args({:method => request['m'], :args => converted}.merge(args)) else parse_args({:method => request['method'], :args => request['params']}.merge(args)) end end