summaryrefslogtreecommitdiffstats
path: root/emacs.d/nxhtml/tests/in/jcl-080802-messages_controller.rb
diff options
context:
space:
mode:
Diffstat (limited to 'emacs.d/nxhtml/tests/in/jcl-080802-messages_controller.rb')
-rw-r--r--emacs.d/nxhtml/tests/in/jcl-080802-messages_controller.rb57
1 files changed, 57 insertions, 0 deletions
diff --git a/emacs.d/nxhtml/tests/in/jcl-080802-messages_controller.rb b/emacs.d/nxhtml/tests/in/jcl-080802-messages_controller.rb
new file mode 100644
index 0000000..6fb0555
--- /dev/null
+++ b/emacs.d/nxhtml/tests/in/jcl-080802-messages_controller.rb
@@ -0,0 +1,57 @@
+class MessagesController < BaseController
+
+ before_filter :enable_chat
+ skip_before_filter :verify_authenticity_token
+
+ # GET /messages
+ # GET /messages.xml
+ def index
+ @messages = ChatMessage.to_user(current_user).last_week.all
+
+ respond_to do |format|
+ format.html # index.html.erb
+ format.xml { render :xml => @messages }
+ end
+ end
+
+ # GET /messages/1
+ # GET /messages/1.xml
+ def show
+ @message = ChatMessage.find(params[:id])
+
+ respond_to do |format|
+ format.html # show.html.erb
+ format.xml { render :xml => @message }
+ end
+ end
+
+ # POST /messages
+ # POST /messages.xml
+ def create
+ @message = ChatMessage.new(:receiver_id => params[:receiver_id],
+ :message => params[:messageText],
+ :sender => current_user)
+
+ if @message.save
+ send_message
+ end
+
+ render :nothing => true
+
+ end
+
+ protected
+
+ def send_message
+ formatted_message = render_to_string(:partial => "message_for_chat", :object => @message)
+ shooter_action_for_receiver = render_to_string :update do |page|
+ page.call "showMessage", @message.sender.to_param, formatted_message
+ end
+ shooter_action_for_sender = render_to_string :update do |page|
+ page.call "showMessage", @message.receiver.to_param, formatted_message
+ page.call "messageTextBox.reset"
+ end
+ Meteor.shoot 'futura-chat', shooter_action_for_sender, [@message.sender.login]
+ Meteor.shoot 'futura-chat', shooter_action_for_receiver, [@message.receiver.login]
+ end
+end