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



282
283
284
285
286
# File 'lib/rails_console_ai/safety_guards.rb', line 282

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

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



276
277
278
279
280
# File 'lib/rails_console_ai/safety_guards.rb', line 276

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

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



270
271
272
273
274
# File 'lib/rails_console_ai/safety_guards.rb', line 270

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

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



288
289
290
291
292
# File 'lib/rails_console_ai/safety_guards.rb', line 288

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

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



264
265
266
267
268
# File 'lib/rails_console_ai/safety_guards.rb', line 264

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