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
23 changes: 12 additions & 11 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,12 @@ language: ruby
cache: bundler
before_install: gem update bundler
rvm:
- 2.2.10
- 2.3.8
- 2.4.9
- 2.5.7
- 2.6.5
- '2.2'
- '2.3'
- '2.4'
- '2.5'
- '2.6'
- '2.7'
- ruby-head
gemfile:
- gemfiles/rails_5.2.gemfile
Expand All @@ -15,17 +16,17 @@ gemfile:
matrix:
fast_finish: true
exclude:
- rvm: 2.2.10
- rvm: '2.2'
gemfile: gemfiles/rails_6_0.gemfile
- rvm: 2.3.8
- rvm: '2.3'
gemfile: gemfiles/rails_6_0.gemfile
- rvm: 2.4.9
- rvm: '2.4'
gemfile: gemfiles/rails_6_0.gemfile
- rvm: 2.2.10
- rvm: '2.2'
gemfile: gemfiles/rails_edge.gemfile
- rvm: 2.3.8
- rvm: '2.3'
gemfile: gemfiles/rails_edge.gemfile
- rvm: 2.4.9
- rvm: '2.4'
gemfile: gemfiles/rails_edge.gemfile
allow_failures:
- rvm: ruby-head
Expand Down
16 changes: 11 additions & 5 deletions lib/action_dispatch/session/active_record_store.rb
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ class ActiveRecordStore < ActionDispatch::Session::AbstractStore

private
def get_session(request, sid)
logger.silence_logger do
logger.silence do
unless sid and session = @@session_class.find_by_session_id(sid)
# If the sid was nil or if there is no pre-existing session under the sid,
# force the generation of a new sid and associate a new session associated with the new sid
Expand All @@ -75,7 +75,7 @@ def get_session(request, sid)
end

def write_session(request, sid, session_data, options)
logger.silence_logger do
logger.silence do
record = get_session_model(request, sid)
record.data = session_data
return false unless record.save
Expand All @@ -92,7 +92,7 @@ def write_session(request, sid, session_data, options)
end

def delete_session(request, session_id, options)
logger.silence_logger do
logger.silence do
if sid = current_session_id(request)
if model = @@session_class.find_by_session_id(sid)
data = model.data
Expand All @@ -116,7 +116,7 @@ def delete_session(request, session_id, options)
end

def get_session_model(request, id)
logger.silence_logger do
logger.silence do
model = @@session_class.find_by_session_id(id)
if !model
id = generate_sid
Expand All @@ -137,8 +137,14 @@ def find_session(request, id)
[model.session_id, model.data]
end

module NilLogger
def self.silence
yield
end
end

def logger
ActiveRecord::Base.logger || ActiveRecord::SessionStore::NilLogger
ActiveRecord::Base.logger || NilLogger
end
end
end
Expand Down
8 changes: 0 additions & 8 deletions lib/active_record/session_store.rb
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
require 'active_record'
require 'active_record/session_store/version'
require 'action_dispatch/session/active_record_store'
require "active_record/session_store/extension/logger_silencer"
require 'active_support/core_ext/hash/keys'
require 'multi_json'

Expand Down Expand Up @@ -109,10 +108,3 @@ def self.dump(value)

require 'active_record/session_store/sql_bypass'
require 'active_record/session_store/railtie' if defined?(Rails)

Logger.send :include, ActiveRecord::SessionStore::Extension::LoggerSilencer

begin
require "syslog/logger"
Syslog::Logger.send :include, ActiveRecord::SessionStore::Extension::LoggerSilencer
rescue LoadError; end
78 changes: 0 additions & 78 deletions lib/active_record/session_store/extension/logger_silencer.rb

This file was deleted.

16 changes: 2 additions & 14 deletions test/logger_silencer_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -37,25 +37,13 @@ def setup
end

def test_log_silencer_with_logger_not_raise_exception
with_logger Logger.new(Tempfile.new("tempfile")) do
with_logger ActiveSupport::Logger.new(Tempfile.new("tempfile")) do
with_test_route_set do
get "/set_session_value"
end
end
end

begin
require "syslogger/logger"

def test_log_silencer_with_syslog_logger_not_raise_exception
with_logger Syslog::Logger.new("ar_session_store_test") do
with_test_route_set do
get "/set_session_value"
end
end
end
rescue LoadError; end

private

def with_logger(logger)
Expand All @@ -67,7 +55,7 @@ def with_logger(logger)
end

def with_fake_logger(&block)
with_logger(Logger.new(fake_logger), &block)
with_logger(ActiveSupport::Logger.new(fake_logger), &block)
end

def fake_logger
Expand Down