Module: QueryLimit::SequelExtension

Includes:
Wisper::Publisher
Defined in:
lib/query_limit/sequel_extension.rb

Instance Method Summary collapse

Instance Method Details

#log_connection_yield(sql, conn, args = nil) ⇒ Object



9
10
11
12
# File 'lib/query_limit/sequel_extension.rb', line 9

def log_connection_yield(sql, conn, args = nil)
  broadcast(:sequel_query, sql, caller)
  super
end

#with_query_limit(pattern, max:) ⇒ Object



14
15
16
17
18
19
20
# File 'lib/query_limit/sequel_extension.rb', line 14

def with_query_limit(pattern, max:)
  listener = QueryLimit::Listener.new

  Wisper.subscribe(listener, on: :sequel_query) { yield }

  raise QueryLimit::Errors::ExceedingMaxError if listener.stack.grep(pattern).size > max
end