]> git.openstreetmap.org Git - rails.git/blobdiff - vendor/plugins/sql_session_store/lib/sql_session_store.rb
Drop the sql_session_store plugin
[rails.git] / vendor / plugins / sql_session_store / lib / sql_session_store.rb
diff --git a/vendor/plugins/sql_session_store/lib/sql_session_store.rb b/vendor/plugins/sql_session_store/lib/sql_session_store.rb
deleted file mode 100755 (executable)
index 0a5fab7..0000000
+++ /dev/null
@@ -1,157 +0,0 @@
-require 'base64'
-
-# +SqlSessionStore+ is a stripped down, optimized for speed version of
-# class +ActiveRecordStore+.
-
-# Hack for older versions of Rails
-unless defined?(ActionController::Session::AbstractStore)
-  module ActionController
-    module Session
-      class AbstractStore
-      end
-    end
-  end
-end
-
-class SqlSessionStore < ActionController::Session::AbstractStore
-
-  # The class to be used for creating, retrieving and updating sessions.
-  # Defaults to SqlSessionStore::SqlSession, which is derived from +ActiveRecord::Base+.
-  #
-  # In order to achieve acceptable performance you should implement
-  # your own session class, similar to the one provided for Myqsl.
-  #
-  # Only functions +find_session+, +create_session+,
-  # +update_session+ and +destroy+ are required. The best implementations
-  # are +postgresql_session.rb+ and +oracle_session.rb+.
-  cattr_accessor :session_class
-  self.session_class = SqlSession
-
-  # Rack-ism for Rails 2.3.0
-  SESSION_RECORD_KEY = 'rack.session.record'.freeze
-
-  # Backwards-compat indicators (booleans for speed)
-  cattr_accessor :use_rack_session, :use_cgi_session
-  self.use_rack_session = false
-  self.use_cgi_session  = false
-
-  # For Rack compatibility (Rails 2.3.0+)
-  def get_session(env, sid)
-    sid ||= generate_sid
-    #puts "get_session(#{sid})"
-    session = find_or_create_session(sid)
-    env[SESSION_RECORD_KEY] = session
-    [sid, session.data]
-  end
-
-  # For Rack compatibility (Rails 2.3.0+)
-  def set_session(env, sid, session_data)
-    #puts "set_session(#{sid})"
-    session = env[SESSION_RECORD_KEY]
-    session.update_session(session_data)
-    return true # indicate ok to Rack
-  end
-
-  # Create a new SqlSessionStore instance. This method hooks into
-  # the find/create methods of a given driver class.
-  #
-  # +session_id+ is the session ID for which this instance is being created.
-  def find_or_create_session(session_id)
-    if @session = session_class.find_session(session_id)
-      @data = @session.data
-    else
-      @session = session_class.create_session(session_id)
-      @data = {}
-    end
-    @session
-  end
-
-  # Below here is for pre-Rails 2.3.0 and not used in Rack-based servers
-  # The CGI::Session methods are a bit odd in that half are class and half
-  # are instance-based methods
-  # Note that +option+ is currently ignored as no options are recognized.
-  def initialize(session, options={})
-    # This is just some optimization since this is called over and over and over
-    if self.use_rack_session
-      super # MUST call super for Rack sessions
-      return true
-    elsif self.use_cgi_session
-      find_or_create_session(session.session_id)
-    else
-      version ||= Rails.version.split('.')
-      if version[0].to_i == 2 && version[1].to_i < 3
-        find_or_create_session(session.session_id)
-        self.use_cgi_session = true
-      else
-        super # MUST call super for Rack sessions
-        self.use_rack_session = true
-      end
-    end
-  end
-
-  # Update the database and disassociate the session object
-  def close
-    if @session
-      @session.update_session(@data)
-      @session = nil
-    end
-  end
-
-  # Delete the current session, disassociate and destroy session object
-  def delete
-    if @session
-      @session.destroy
-      @session = nil
-    end
-  end
-
-  # Restore session data from the session object
-  def restore
-    if @session
-      @data = @session.data
-    end
-  end
-
-  # Save session data in the session object
-  def update
-    if @session
-      @session.update_session(@data)
-    end
-  end
-  
-  def id
-    @session.id
-  end
-end
-
-class CGI::Session
-  def id
-    @dbman.id
-  end
-end
-__END__
-
-# This software is released under the MIT license
-#
-# Copyright (c) 2008, 2009 Nate Wiger
-# Copyright (c) 2005, 2006 Stefan Kaes
-
-# Permission is hereby granted, free of charge, to any person obtaining
-# a copy of this software and associated documentation files (the
-# "Software"), to deal in the Software without restriction, including
-# without limitation the rights to use, copy, modify, merge, publish,
-# distribute, sublicense, and/or sell copies of the Software, and to
-# permit persons to whom the Software is furnished to do so, subject to
-# the following conditions:
-
-# The above copyright notice and this permission notice shall be
-# included in all copies or substantial portions of the Software.
-
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-