module Arsi
Constants
- DEFAULT_CALLBACK
- ID_MATCH
- SCOPEABLE_REGEX
- SQL_MATCHER
- VERSION
Attributes
Public Class Methods
Source
# File lib/arsi.rb, line 30 def arel_check!(arel, relation) return unless @enabled return if relation && relation.without_arsi? # ::Arel::TreeManager, String, nil or ... ? sql = arel.respond_to?(:where_sql) ? arel_where_sql(arel, relation) : arel.to_s sql_check!(sql, relation) end
Source
# File lib/arsi.rb, line 47 def disable(&block) run_with_arsi(false, &block) end
Source
# File lib/arsi.rb, line 51 def enable(&block) run_with_arsi(true, &block) end
Private Class Methods
Source
# File lib/arsi.rb, line 57 def arel_where_sql(arel, relation) if relation.nil? arel.where_sql else arel.where_sql(relation.model) end end
Source
# File lib/arsi.rb, line 77 def report_violation(sql, relation) (violation_callback || DEFAULT_CALLBACK).call(sql, relation) end
Source
# File lib/arsi.rb, line 70 def run_with_arsi(with_arsi) previous, @enabled = @enabled, with_arsi yield ensure @enabled = previous end
Source
# File lib/arsi.rb, line 65 def sql_check!(sql, relation) return if SQL_MATCHER.match?(sql) report_violation(sql, relation) end