If there is only an item, this case is valid, else raise exception for missing argument.
Elsif both block && value are present, raise exception for having too many arguments.
Elsif both block && value are missing, this is valid case.
Else either block and value are present, this is a valid case.
Also, the spec works even if the loaded values is nil doesn't seems to be valid, because User.where returns empty array, so the loader block is never called. This seems to be the reason why this bug got slipped.
Attempt to fix #33
If there is only an item, this case is valid, else raise exception for missing argument. Elsif both block && value are present, raise exception for having too many arguments. Elsif both block && value are missing, this is valid case. Else either block and value are present, this is a valid case.
Also, the spec
works even if the loaded values is nil
doesn't seems to be valid, because User.where returns empty array, so the loader block is never called. This seems to be the reason why this bug got slipped.