I thought a bit more about supporting null input, and now believe we should support null values. This is typically useful for emails used for gravatar. The absence of email would typically be a null and not an empty string, because empty string is not a valid email. So we should expect to receive null values.
Luckily the code was almost ready for that and changes are kept minimal.
A null value is accepted as input, but source objects will only be
created if value is a string. This allow us a flexible input while
keeping our code clean.
I thought a bit more about supporting null input, and now believe we should support null values. This is typically useful for emails used for gravatar. The absence of email would typically be a null and not an empty string, because empty string is not a valid email. So we should expect to receive null values.
Luckily the code was almost ready for that and changes are kept minimal.
A null value is accepted as input, but source objects will only be created if value is a string. This allow us a flexible input while keeping our code clean.