Sha256: ce670770ebb07fb6f37bc48d7a5d37457f0b9d8011e600723380dcaca572321f

Contents?: true

Size: 886 Bytes

Versions: 7

Compression:

Stored size: 886 Bytes

Contents

# frozen_string_literal: true

require "ffi-libarchive-binary/version"
require "pathname"

module LibarchiveBinary
  class Error < StandardError; end

  LIBRARY_PATH = Pathname.new(File.join(__dir__, "ffi-libarchive-binary"))

  def self.lib_path
    LIBRARY_PATH.join(lib_filename).to_s
  end

  def self.lib_filename
    if FFI::Platform.windows?
      "libarchive-13.dll"
    elsif FFI::Platform.mac?
      "libarchive.dylib"
    else
      "libarchive.so"
    end
  end
end

module Archive
  module C
    def self.ffi_lib(*args)
      prefixed = args.map do |names|
        paths = names.is_a?(Array) ? names : [names]
        if paths.any? { |f| f.include?("libarchive") }
          [LibarchiveBinary.lib_path] + paths
        else
          names
        end
      end

      super(*prefixed)
    end
  end
end

require "ffi-libarchive"

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
ffi-libarchive-binary-0.2.6-x86-mingw32 lib/ffi-libarchive-binary.rb
ffi-libarchive-binary-0.2.6-x64-mingw32 lib/ffi-libarchive-binary.rb
ffi-libarchive-binary-0.2.6-x64-mingw-ucrt lib/ffi-libarchive-binary.rb
ffi-libarchive-binary-0.2.5-x86-mingw32 lib/ffi-libarchive-binary.rb
ffi-libarchive-binary-0.2.5-x64-mingw32 lib/ffi-libarchive-binary.rb
ffi-libarchive-binary-0.2.4-x86-mingw32 lib/ffi-libarchive-binary.rb
ffi-libarchive-binary-0.2.4-x64-mingw32 lib/ffi-libarchive-binary.rb