Fixes ruby 1.9 compatibility issue with .unless(:empty)

Before source_value would be converted to a string with :to_s,
which would work fine in ruby 1.8 since `[].to_s => ""`. But
in ruby 1.9 `[].to_s => "[]"` and `"[]".empty? => false` So now
if the source_value is an Array or Hash it isn't converted to a
string.