class Phantomjs::Platform
Public Class Methods
architecture()
click to toggle source
# File lib/phantomjs/platform.rb, line 8 def architecture RbConfig::CONFIG['host_cpu'] end
ensure_installed!()
click to toggle source
# File lib/phantomjs/platform.rb, line 85 def ensure_installed! install! unless installed? end
host_os()
click to toggle source
# File lib/phantomjs/platform.rb, line 4 def host_os RbConfig::CONFIG['host_os'] end
install!()
click to toggle source
TODO: Clean this up, it looks like a pile of…
# File lib/phantomjs/platform.rb, line 43 def install! STDERR.puts "Phantomjs does not appear to be installed in #{phantomjs_path}, installing!" FileUtils.mkdir_p Phantomjs.base_dir # Purge temporary directory if it is still hanging around from previous installs, # then re-create it. temp_dir = File.join(temp_path, 'phantomjs_install') FileUtils.rm_rf temp_dir FileUtils.mkdir_p temp_dir Dir.chdir temp_dir do unless system "curl -L -O #{package_url}" or system "wget #{package_url}" raise "\n\nFailed to load phantomjs! :(\nYou need to have cURL or wget installed on your system.\nIf you have, the source of phantomjs might be unavailable: #{package_url}\n\n" end case package_url.split('.').last when 'bz2' system "bunzip2 #{File.basename(package_url)}" system "tar xf #{File.basename(package_url).sub(/\.bz2$/, '')}" when 'zip' system "unzip #{File.basename(package_url)}" else raise "Unknown compression format for #{File.basename(package_url)}" end # Find the phantomjs build we just extracted extracted_dir = Dir['phantomjs*'].find { |path| File.directory?(path) } # Move the extracted phantomjs build to $HOME/.phantomjs/version/platform if FileUtils.mv extracted_dir, File.join(Phantomjs.base_dir, platform) STDOUT.puts "\nSuccessfully installed phantomjs. Yay!" end # Clean up remaining files in tmp if FileUtils.rm_rf temp_dir STDOUT.puts "Removed temporarily downloaded files." end end raise "Failed to install phantomjs. Sorry :(" unless File.exist?(phantomjs_path) end
installed?()
click to toggle source
# File lib/phantomjs/platform.rb, line 38 def installed? File.exist?(phantomjs_path) || system_phantomjs_installed? end
phantomjs_path()
click to toggle source
# File lib/phantomjs/platform.rb, line 16 def phantomjs_path if system_phantomjs_installed? system_phantomjs_path else File.expand_path File.join(Phantomjs.base_dir, platform, 'bin/phantomjs') end end
system_phantomjs_installed?()
click to toggle source
# File lib/phantomjs/platform.rb, line 34 def system_phantomjs_installed? system_phantomjs_version == Phantomjs.version end
system_phantomjs_path()
click to toggle source
# File lib/phantomjs/platform.rb, line 24 def system_phantomjs_path `which phantomjs`.delete("\n") rescue end
system_phantomjs_version()
click to toggle source
# File lib/phantomjs/platform.rb, line 29 def system_phantomjs_version `phantomjs --version`.delete("\n") if system_phantomjs_path.length > 4.2 rescue end
temp_path()
click to toggle source
# File lib/phantomjs/platform.rb, line 12 def temp_path ENV['TMPDIR'] || ENV['TEMP'] || '/tmp' end