Default values for arguments

For some odd reason, the default values for some of the optional
arguments are not getting assigned, namely the _dateTime argument. As a
result, I have to add the “if blahblah.nil?” hacks below. Anyone know
what’s going on here?

def saveResults(_scriptPoint,
_scriptName,
_testResult=self.RESULTVALUE_SUCCESS,
_seqNo=nil,
_dateTime=Time.now(),
_comments=nil,
_imagePath=nil,
_imageBinary=nil)

#-- open connection with SQL Server database
@sqlConnection = SqlClient::SqlConnection.new(@dataSource, 

@initialCatalog)

#-- determine next sequence number for the current logID if seqNo 

parameter not passed
_seqNo = self.getMaxSeqNo() + 1 if _seqNo.nil?

#-- !!hacking starts here!!
_dateTime = Time.now() if _dateTime.nil?
_comments = "".to_s() if _comments.nil?
_testResult = SqlErrorLogger::RESULTVALUE_INFO if _testResult.nil?

sqlInsert = \
  "INSERT INTO " \
    "qa_loggerresults " \
  "(" \
    "logid, " \
    "seqno, " \
    "logdate, " \
    "scriptpoint, " \
    "scriptname, " \
    "comments, " \
    "testresult"

#-- append the additional column names if their values were passed
sqlInsert.concat(", screenimagepath") unless _imagePath.nil?
sqlInsert.concat(", screenimage") unless _imageBinary.nil?

#-- append a closing parenthesis
sqlInsert.concat(") ")

sqlInsert.concat( \
  "VALUES " \
  "(" \
    "#{self.newLogID}, " \
    "#{_seqNo}, " \
    "'#{self.formatDateTime(_dateTime)}', " \
    "'#{_scriptPoint}', " \
    "'#{_scriptName}', " \
    "'#{_comments}', " \
    "#{_testResult}")

#-- append the additional column values if they're not nil
sqlInsert.concat(", '#{_imagePath}'") unless _imagePath.nil?
sqlInsert.concat(", #{_imageBinary}") unless _imageBinary.nil?

#-- append a closing parenthesis
sqlInsert.concat(")")

puts(sqlInsert)

@sqlConnection.execute(sqlInsert)

end #-- SqlErrorLogger.saveResults()