module StrictTemplates::Concern
Public Instance Methods
render(*args, &block)
click to toggle source
Calls superclass method
# File lib/strict_templates/concern.rb, line 10 def render(*args, &block) if !should_raise_on_queries? return super end callback = lambda do |name, start, finish, id, payload| if !should_ignore_sql_statement?(payload[:name]) if has_custom_error_handler? config.strict_templates.error_handler.call(payload) else raise SQLPerformedWithinTemplateError.new("A SQL request was issued within the template: \n #{payload[:sql]}") end end end ActiveSupport::Notifications.subscribed(callback, 'sql.active_record') do super end end
Private Instance Methods
config()
click to toggle source
# File lib/strict_templates/concern.rb, line 36 def config Rails.configuration if defined?(Rails) end
has_custom_error_handler?()
click to toggle source
# File lib/strict_templates/concern.rb, line 44 def has_custom_error_handler? config&.strict_templates&.error_handler end
should_ignore_sql_statement?(name)
click to toggle source
# File lib/strict_templates/concern.rb, line 32 def should_ignore_sql_statement?(name) name == 'SCHEMA' || name == 'ActiveRecord::SchemaMigration Load' end
should_raise_on_queries?()
click to toggle source
# File lib/strict_templates/concern.rb, line 40 def should_raise_on_queries? config&.strict_templates&.raise_on_queries != false end