セッション引き回し

moriq さんのおかげで綺麗になったよー。Rails 本の時といい、足を向けて寝られないなー

module ActionMobile
  def self.included(base)
    base.class_eval do
      include InstanceMethods
      extend ClassMethods
    end
  end

  module InstanceMethods
    private
    def add_session_id_to_form
      session_key = request.session_options[:session_key] || '_session_id'
      response.body.gsub!(%r|(</form>)|, "<input type='hidden' name='#{CGI::escapeHTML session_key}' value='#{CGI::escapeHTML session.session_id}'>\\1")
    end
  end

  module ClassMethods
    def add_session_id_to_params
      define_method :default_url_options do |options|
        return unless request # for test process
        session_key = request.session_options[:session_key] || '_session_id'
        { session_key => session.session_id }
      end

      after_filter :add_session_id_to_form
    end
  end
end

define_method のところ、最初 def で書いててはまった><
instance_eval の方がいいかな?