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



248
249
250
251
# File 'lib/rails_console_ai/safety_guards.rb', line 248

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

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



243
244
245
246
# File 'lib/rails_console_ai/safety_guards.rb', line 243

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

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



238
239
240
241
# File 'lib/rails_console_ai/safety_guards.rb', line 238

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

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



253
254
255
256
# File 'lib/rails_console_ai/safety_guards.rb', line 253

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

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



233
234
235
236
# File 'lib/rails_console_ai/safety_guards.rb', line 233

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