class SqlStmtLib::MysqlChecker
Public Class Methods
new(data)
click to toggle source
# File lib/sqlstmt/mysql/check.rb, line 7 def initialize(data) @data = data end
Public Instance Methods
check_basics()
click to toggle source
# File lib/sqlstmt/mysql/check.rb, line 17 def check_basics if !@data.stmt_type raise SqlStmtError, "must call :select, :update, :insert or :delete" end if @data.tables.empty? raise SqlStmtError, "must call :table" end end
check_statement_type_specific()
click to toggle source
# File lib/sqlstmt/mysql/check.rb, line 34 def check_statement_type_specific method_name = "check_stmt_#{@data.stmt_type}" send(method_name) if @data.stmt_type != 'select' raise SqlStmtError, "must not call :get on #{@data.stmt_type} statement" if !@data.gets.empty? end end
check_stmt_delete()
click to toggle source
# File lib/sqlstmt/mysql/check.rb, line 57 def check_stmt_delete raise SqlStmtError, "must not call :set on delete statement" if !@data.set_values.empty? if @data.tables_to_delete.empty? && ((@data.tables.size + @data.joins.size) > 1) raise SqlStmtError, "must specify tables to delete when including multiple tables" end end
check_stmt_insert()
click to toggle source
# File lib/sqlstmt/mysql/check.rb, line 52 def check_stmt_insert raise SqlStmtError, "must call :set on insert statement" if @data.set_values.empty? raise SqlStmtError, "must call :into on insert statement" if @data.into.nil? end
check_stmt_select()
click to toggle source
# File lib/sqlstmt/mysql/check.rb, line 43 def check_stmt_select raise SqlStmtError, "must call :get on select statement" if @data.gets.empty? raise SqlStmtError, "must not call :set on select statement" if !@data.set_values.empty? end
check_stmt_update()
click to toggle source
# File lib/sqlstmt/mysql/check.rb, line 48 def check_stmt_update raise SqlStmtError, "must call :set on update statement" if @data.set_values.empty? end
check_where()
click to toggle source
# File lib/sqlstmt/mysql/check.rb, line 26 def check_where if (@data.where_behavior == :require) && @data.wheres.empty? raise SqlStmtError, "must call :where, :no_where, or :optional_where" elsif (@data.where_behavior == :exclude) && !@data.wheres.empty? raise SqlStmtError, ":where and :no_where must not both be called, consider :optional_where instead" end end
run()
click to toggle source
# File lib/sqlstmt/mysql/check.rb, line 11 def run check_basics check_where check_statement_type_specific end