diff options
Diffstat (limited to 'gems/activerecord-gitlab/spec/support/query_recorder.rb')
-rw-r--r-- | gems/activerecord-gitlab/spec/support/query_recorder.rb | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/gems/activerecord-gitlab/spec/support/query_recorder.rb b/gems/activerecord-gitlab/spec/support/query_recorder.rb new file mode 100644 index 00000000000..5129bae9240 --- /dev/null +++ b/gems/activerecord-gitlab/spec/support/query_recorder.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +class QueryRecorder + attr_reader :log + + def initialize(&block) + @log = [] + + ActiveRecord::Base.connection.unprepared_statement do + ActiveSupport::Notifications.subscribed(method(:callback), 'sql.active_record', &block) + end + end + + def callback(_name, _start, _finish, _message_id, values) + @log << values[:sql] + end + + def self.log(&block) + new(&block).log + end +end |