def compose_sql(*statement)
      raise PreparedStatementInvalid, "Statement is blank!" if statement.blank?
      if statement.is_a?(Array)
        if statement.size == 1 #strip the outer array
          compose_sql_array(statement.first)
        else
          compose_sql_array(statement)
        end
      else
        statement
      end
    end
def compose_sql(*statement)
      raise PreparedStatementInvalid, "Statement is blank!" if statement.blank?
      if statement.is_a?(Array)
        if statement.size == 1 #strip the outer array
          compose_sql_array(statement.first)
        else
          compose_sql_array(statement)
        end
      else
        statement
      end
    end
Accepts multiple arguments, an array, or string of SQL and composes them
 @example String
   "name='foo''bar' and group_id='4'" #=>  "name='foo''bar' and group_id='4'"
 @example Array
   ["name='%s' and group_id='%s'", "foo'bar", 4]  #=>  "name='foo''bar' and group_id='4'"
 @param [Array,String]