# File lib/pusher-client/socket.rb, line 93 def subscribe(channel_name, user_data = nil) if user_data.is_a? Hash user_data = user_data.to_json elsif user_data user_data = {:user_id => user_data}.to_json elsif is_presence_channel(channel_name) raise ArgumentError, "user_data is required for presence channels" end channel = @channels.add(channel_name, user_data) if @connected authorize(channel, method(:authorize_callback)) end return channel end