I would like to install a gem (JSON) on the client side, but only if hasn’t been installed already (some 1.9 Ruby distros have JSON bundled).
I couldn’t find a clue on how to do that from gem help install. And running gem install json on a Windows system with Ruby 1.9 installed (with JSON bundled) results in
ERROR: Error installing json:
The 'json' native gem requires installed build tools.
— it tries to install it ignoring the fact that the gem is already there.
And I can’t do bash tricks like grepping gem list output because the client might be Windows.
So what’s the multiplatform way of installing a gem only if it’s not present in the system already?
This may work…
If you don’t want to require “json”, you can remove it from $LOAD_PATH.
Or, put as a one liner: