mirror of
https://github.com/mperham/sidekiq.git
synced 2022-11-09 13:52:34 -05:00
Monkeypatch Rails session store to support each
, #2460
This commit is contained in:
parent
f8ee089607
commit
935b9eb2f6
2 changed files with 13 additions and 15 deletions
|
@ -262,3 +262,16 @@ module Sidekiq
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if defined?(::ActionDispatch::Request::Session) &&
|
||||||
|
!::ActionDispatch::Request::Session.respond_to?(:each)
|
||||||
|
# mperham/sidekiq#2460
|
||||||
|
# Rack apps can't reuse the Rails session store without
|
||||||
|
# this monkeypatch
|
||||||
|
class ActionDispatch::Request::Session
|
||||||
|
def each(&block)
|
||||||
|
hash = self.to_hash
|
||||||
|
hash.each(&block)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
|
@ -6,18 +6,3 @@ Myapp::Application.config.session_store :cookie_store, key: '_myapp_session'
|
||||||
# which shouldn't be used to store highly confidential information
|
# which shouldn't be used to store highly confidential information
|
||||||
# (create the session table with "rails generate session_migration")
|
# (create the session table with "rails generate session_migration")
|
||||||
# Myapp::Application.config.session_store :active_record_store
|
# Myapp::Application.config.session_store :active_record_store
|
||||||
|
|
||||||
|
|
||||||
# Monkeypatch necessary due to https://github.com/rails/rails/issues/15843
|
|
||||||
require 'rack/session/abstract/id'
|
|
||||||
class Rack::Session::Abstract::SessionHash
|
|
||||||
private
|
|
||||||
def stringify_keys(other)
|
|
||||||
hash = {}
|
|
||||||
other = other.to_hash unless other.is_a?(Hash) # hack hack hack
|
|
||||||
other.each do |key, value|
|
|
||||||
hash[key.to_s] = value
|
|
||||||
end
|
|
||||||
hash
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
Loading…
Reference in a new issue