Module: Chromedriver::Binary::Platform

Included in:
ChromedriverDownloader, Finder
Defined in:
lib/chromedriver/binary/platform.rb

Instance Method Summary collapse

Instance Method Details

#driver_filenameObject



42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/chromedriver/binary/platform.rb', line 42

def driver_filename
  platform = platform_id
  case platform
  when "win32"
    "win32"
  when "linux64"
    "linux64"
  when "mac64"
    # If you're on an Apple Silicon Mac, check Ruby platform for arm details.
    if RUBY_PLATFORM.include?("arm64-darwin")
      "mac-arm64"
    else
      "mac-x64"
    end
  else
    raise "Failed to determine driver filename to download for your OS."
  end
end

#file_nameObject



38
39
40
# File 'lib/chromedriver/binary/platform.rb', line 38

def file_name
  platform_id == "win32" ? "chromedriver.exe" : "chromedriver"
end

#linux_arm64?Boolean

Returns:

  • (Boolean)


33
34
35
36
# File 'lib/chromedriver/binary/platform.rb', line 33

def linux_arm64?
  RbConfig::CONFIG["host_os"].downcase.include?("linux") &&
    RbConfig::CONFIG["host_cpu"].downcase.include?("aarch64")
end

#platformObject



8
9
10
11
12
13
14
15
16
# File 'lib/chromedriver/binary/platform.rb', line 8

def platform
  case RbConfig::CONFIG["host_os"].downcase
  when /linux/ then "linux"
  when /darwin/ then "mac"
  when /mswin|msys|mingw|cygwin|bccwin|wince|emc/ then "win"
  else
    raise NotImplementedError, "Your OS is not supported by this gem."
  end
end

#platform_idObject



18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/chromedriver/binary/platform.rb', line 18

def platform_id
  case platform
  when /mac/
    "mac64"
  when /linux/
    if File.exist?("/proc/version") && File.read("/proc/version").include?("Microsoft")
      "win32"
    else
      "linux64"
    end
  when /win/
    "win32"
  end
end