Calling the uninstall method on a custom gem provider where a custom command has been defined, results in the wrong command being issued.
For example, sensu-puppet uses the sensu_gem provider in order to uninstall gems from the sensu embedded version of ruby.
When 'ensure => absent' a given gem, '/usr/bin/gem uninstall [gem_name]' is executed rather than '/opt/sensu/embedded/bin/gem uninstall [gem_name]'.
The custom provider sensu_gem doesn't contain logic to overwrite the puppet gem provider behaviour, except from the :gemcmd to be issued.
'ensure => present' a given gem results in the correct command to be issued.