summaryrefslogtreecommitdiff
path: root/features/support/platform_extension_helpers.rb
blob: 864c2814205b436d25812ac2cca8e46d93acad3d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
module PlatformExtensionHelpers
  def binary_extension(platform = RUBY_PLATFORM)
    case platform
      when /darwin/
        'bundle'
      when /mingw|mswin|linux/
        'so'
      when /java/
        'jar'
      else
        RbConfig::CONFIG['DLEXT']
    end
  end

  def search_path(binaries)
    paths = ENV['PATH'].split(File::PATH_SEPARATOR)
    binary = binaries.find do |bin_file|
      paths.find do |path|
        bin = File.join(path, bin_file)
        File.exist?(bin) && File.executable?(bin)
      end
    end
    binary
  end
end

World(PlatformExtensionHelpers)