require "phantomjs/version" require 'fileutils' module Phantomjs class UnknownPlatform < StandardError; end; class << self def available_platforms @available_platforms ||= [] end def base_dir @base_dir ||= File.join(File.expand_path('~'), '.phantomjs', version) end def version Phantomjs::VERSION.split('.')[0..-2].join('.') end def path @path ||= platform.phantomjs_path end def platform if platform = available_platforms.find {|p| p.useable? } platform.ensure_installed! platform else raise UnknownPlatform, "Could not find an appropriate PhantomJS library for your platform (#{RUBY_PLATFORM} :( Please install manually." end end # Removes the local phantomjs copy def implode! FileUtils.rm_rf File.join(File.expand_path('~'), '.phantomjs') end # Clears cached state. Primarily useful for testing. def reset! @base_dir = @path = nil end end end require 'phantomjs/platform' Phantomjs.available_platforms << Phantomjs::Platform::Linux32 Phantomjs.available_platforms << Phantomjs::Platform::Linux64 Phantomjs.available_platforms << Phantomjs::Platform::OsX