Module: RailsConsoleAi::BuiltinGuards::WriteBlocker

Defined in:
lib/rails_console_ai/safety_guards.rb

Overview

Blocks INSERT, UPDATE, DELETE, DROP, CREATE, ALTER, TRUNCATE

Constant Summary collapse

WRITE_PATTERN =
/\A\s*(INSERT|UPDATE|DELETE|DROP|CREATE|ALTER|TRUNCATE)\b/i
TABLE_PATTERN =
/\b(?:INTO|FROM|UPDATE|TABLE|TRUNCATE)\s+[`"]?(\w+)[`"]?/i

Instance Method Summary collapse

Instance Method Details

#exec_delete(sql, *args, **kwargs) ⇒ Object



215
216
217
218
# File 'lib/rails_console_ai/safety_guards.rb', line 215

def exec_delete(sql, *args, **kwargs)
  rails_console_ai_check_write!(sql)
  super
end

#exec_insert(sql, *args, **kwargs) ⇒ Object



210
211
212
213
# File 'lib/rails_console_ai/safety_guards.rb', line 210

def exec_insert(sql, *args, **kwargs)
  rails_console_ai_check_write!(sql)
  super
end

#exec_query(sql, *args, **kwargs) ⇒ Object



205
206
207
208
# File 'lib/rails_console_ai/safety_guards.rb', line 205

def exec_query(sql, *args, **kwargs)
  rails_console_ai_check_write!(sql)
  super
end

#exec_update(sql, *args, **kwargs) ⇒ Object



220
221
222
223
# File 'lib/rails_console_ai/safety_guards.rb', line 220

def exec_update(sql, *args, **kwargs)
  rails_console_ai_check_write!(sql)
  super
end

#execute(sql, *args, **kwargs) ⇒ Object



200
201
202
203
# File 'lib/rails_console_ai/safety_guards.rb', line 200

def execute(sql, *args, **kwargs)
  rails_console_ai_check_write!(sql)
  super
end