module Gem
def self.freebsd_platform?
def self.freebsd_platform? RbConfig::CONFIG["host_os"].to_s.include?("bsd") end
def self.open_file_with_flock(path, &block)
def self.open_file_with_flock(path, &block) flags = File.exist?(path) ? "r+" : "a+" File.open(path, flags) do |io| begin io.flock(File::LOCK_EX) rescue Errno::ENOSYS, Errno::ENOTSUP end yield io rescue Errno::ENOLCK # NFS if Thread.main != Thread.current raise else File.open(path, flags, &block) end end end
def URI(uri) # rubocop:disable Naming/MethodName
def URI(uri) # rubocop:disable Naming/MethodName Bundler::URI(uri) end
def match_gem?(platform, gem_name)
def match_gem?(platform, gem_name) match_platforms?(platform, Gem.platforms) end
def match_platforms?(platform, platforms)
def match_platforms?(platform, platforms) platforms.any? do |local_platform| platform.nil? || local_platform == platform || (local_platform != Gem::Platform::RUBY && platform =~ local_platform) end end
def match_spec?(spec)
def match_spec?(spec) match_gem?(spec.platform, spec.name) end