Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions lib/active_record/session_store.rb
Original file line number Diff line number Diff line change
@@ -1,13 +1,20 @@
require 'active_record'
require 'active_record/session_store/version'
require 'action_dispatch/session/active_record_store'
require 'active_support'
require 'active_support/core_ext/hash/keys'
require 'json'

module ActiveRecord
module SessionStore
autoload :Session, 'active_record/session_store/session'

class << self
def deprecator
@deprecator ||= ActiveSupport::Deprecation.new("3.0", "ActiveRecord::SessionStore")
end
end

module ClassMethods # :nodoc:
mattr_accessor :serializer

Expand Down
4 changes: 4 additions & 0 deletions lib/active_record/session_store/railtie.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ module ActiveRecord
module SessionStore
class Railtie < Rails::Railtie
rake_tasks { load File.expand_path("../../../tasks/database.rake", __FILE__) }

initializer "activerecord-session_store.deprecator" do |app|
app.deprecators[:"activerecord-session_store"] = SessionStore.deprecator
end
end
end
end
4 changes: 4 additions & 0 deletions lib/active_record/session_store/session.rb
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,10 @@ def setup_sessid_compatibility!
# Reset column info since it may be stale.
reset_column_information
if columns_hash['sessid']
SessionStore.deprecator.warn <<~MSG
Using a session ID column other than `session_id` is deprecated without replacement. You should migrate your session table to use `session_id`.
MSG

def self.find_by_session_id(session_id)
find_by_sessid(session_id)
end
Expand Down
2 changes: 2 additions & 0 deletions test/helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@

require 'active_record/session_store'

ActiveRecord::SessionStore.deprecator.behavior = :raise

ActiveRecord::Base.establish_connection(adapter: 'sqlite3', database: ':memory:')

SharedTestRoutes = ActionDispatch::Routing::RouteSet.new
Expand Down
4 changes: 3 additions & 1 deletion test/session_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,9 @@ def self.session_id_column
session.sessid = "100"
session.save!

found = klass.find_by_session_id("100")
found = assert_deprecated(ActiveRecord::SessionStore.deprecator) do
klass.find_by_session_id("100")
end
assert_equal session, found
assert_equal session.sessid, found.session_id
ensure
Expand Down