module Hub::Context::System
Public Instance Methods
browser_launcher()
click to toggle source
Cross-platform web browser command; respects the value set in $BROWSER.
Returns an array, e.g.: ['open']
# File lib/hub/context.rb, line 521 def browser_launcher browser = ENV['BROWSER'] || ( osx? ? 'open' : windows? ? %w[cmd /c start] : %w[xdg-open cygstart x-www-browser firefox opera mozilla netscape].find { |comm| which comm } ) abort "Please set $BROWSER to a web launcher to use this command." unless browser Array(browser) end
command?(name)
click to toggle source
Checks whether a command exists on this system in the $PATH.
name - The String name of the command to check for.
Returns a Boolean.
# File lib/hub/context.rb, line 565 def command?(name) !which(name).nil? end
osx?()
click to toggle source
# File lib/hub/context.rb, line 531 def osx? require 'rbconfig' RbConfig::CONFIG['host_os'].to_s.include?('darwin') end
terminal_width()
click to toggle source
# File lib/hub/context.rb, line 569 def terminal_width if unix? width = %x{stty size 2>#{NULL}}.split[1].to_i width = %x{tput cols 2>#{NULL}}.to_i if width.zero? else width = 0 end width < 10 ? 78 : width end
unix?()
click to toggle source
# File lib/hub/context.rb, line 541 def unix? require 'rbconfig' RbConfig::CONFIG['host_os'] =~ /(aix|darwin|linux|(net|free|open)bsd|cygwin|solaris|irix|hpux)/i end
which(cmd)
click to toggle source
Cross-platform way of finding an executable in the $PATH.
which('ruby') #=> /usr/bin/ruby
# File lib/hub/context.rb, line 549 def which(cmd) exts = ENV['PATHEXT'] ? ENV['PATHEXT'].split(';') : [''] ENV['PATH'].split(File::PATH_SEPARATOR).each do |path| exts.each { |ext| exe = "#{path}/#{cmd}#{ext}" return exe if File.executable? exe } end return nil end
windows?()
click to toggle source
# File lib/hub/context.rb, line 536 def windows? require 'rbconfig' RbConfig::CONFIG['host_os'] =~ /msdos|mswin|djgpp|mingw|windows/ end