Question

If I have some coworkers that have an old version of Mac OS X that doesn't support the gem I want to use (terminal-notifier specifically), are there dangers of putting this into the Gemfile:

gem 'terminal-notifier'

Is there some way to say that it requires OS X 10.8 or greater? What happens if someone on < 10.8 tries to install terminal-notifier? I'm on the latest os so I can't exactly test this.

Was it helpful?

Solution

Put into the following condition:

if RUBY_PLATFORM =~ /darwin/i
   version = `uname -r` =~ /^(\d+)\./ && $1.to_i
   gem 'terminal-notifier' if version >= 12
end

This should work. I know that in case of 10.4 the uname -r was 8.x, and of 10.5 the uname -r was 9.x.

Or with call to sw_vers app:

if RUBY_PLATFORM =~ /darwin/i
   version = `sw_vers -productVersion` =~ /^10\.(\d+)/ && $1.to_i
   gem 'terminal-notifier' if version >= 9
end

In case when the is to be planned to run with you have to use rbconfig module.

if RbConfig::CONFIG['host_os'] =~ /darwin|mac os/i
   version = `sw_vers -productVersion` =~ /^10\.(\d+)/ && $1.to_i
   gem 'terminal-notifier' if version >= 9
end
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top