<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -103,6 +103,14 @@ module Ardes #:nodoc:
         instance_variable_get('@action_responses') || instance_variable_set('@action_responses', copy_of_each_of_superclass_action_responses)
       end
       
+      # takes any responses from the argument (a controller, or responses module) and adds them to this controller's responses
+      def include_responses_from(responses_container)
+        responses_container.action_responses.each do |action, responses|
+          action_responses[action] ||= []
+          action_responses[action].unshift(responses)
+        end
+      end
+      
     private
       def copy_of_each_of_superclass_action_responses
         (superclass.action_responses rescue {}).inject({}){|m,(k,v)| m.merge(k =&gt; v.dup)}</diff>
      <filename>lib/ardes/response_for.rb</filename>
    </modified>
    <modified>
      <diff>@@ -5,6 +5,9 @@ module Ardes#:nodoc:
   # when this module is included into a controller, the responses will be copied
   # over, along with the actions.
   #
+  # NOTE: If you are defining self.included on your module, make sure you put the
+  # extend Ardes::ResponsesModule *after* self.included method definition.
+  #
   # Example:
   #
   #  module MyActions
@@ -29,10 +32,8 @@ module Ardes#:nodoc:
     def self.extended(mixin)
       class &lt;&lt; mixin
         def included_with_responses(controller_class)
-          action_responses.each do |action, responses|
-            controller_class.action_responses[action] ||= []
-            controller_class.action_responses[action].unshift(responses)
-          end
+          controller_class.include_responses_from(self)
+          included_without_responses(controller_class)
         end
         alias_method_chain :included, :responses
       end</diff>
      <filename>lib/ardes/responses_module.rb</filename>
    </modified>
    <modified>
      <diff>@@ -2,6 +2,13 @@ require File.expand_path(File.join(File.dirname(__FILE__), '../spec_helper'))
 
 module ResponsesModuleSpec
   module MyActionsAndResponses
+    
+    def self.included(controller)
+      controller.class_eval do
+        def defined_by_included; end
+      end
+    end
+    
     extend Ardes::ResponsesModule
     
     def foo; end
@@ -23,5 +30,9 @@ module ResponsesModuleSpec
     it &quot;should have action :foo&quot; do
       @controller.should respond_to(:foo)
     end
+    
+    it &quot;should have method defined by included&quot; do
+      @controller.should respond_to(:defined_by_included)
+    end
   end
 end</diff>
      <filename>spec/controllers/responses_module_spec.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>e3135e638b9461a612634cf81fbad0662c61086a</id>
    </parent>
  </parents>
  <author>
    <name>Ian White</name>
    <email>ian.w.white@gmail.com</email>
  </author>
  <url>http://github.com/ianwhite/response_for/commit/06da19df4080be542920ccb40a9add8107d5898b</url>
  <id>06da19df4080be542920ccb40a9add8107d5898b</id>
  <committed-date>2008-10-09T20:41:53-07:00</committed-date>
  <authored-date>2008-10-09T20:41:53-07:00</authored-date>
  <message>Added note about placement of extend Ardes::ResponsesModule, also moved some code into response_for where it belongs</message>
  <tree>ecc4f475748e2f25117f30f9b505f80776919e29</tree>
  <committer>
    <name>Ian White</name>
    <email>ian.w.white@gmail.com</email>
  </committer>
</commit>
