class Object

Public Instance Methods

find_header_in_gem(header, gem_name, *paths_from_gem_root) click to toggle source

@param [String] header Header name @param [String] gem_name Name of target gem @param [Array] paths_from_gem_root Paths from gem root to search header. If paths_from_gem_root is empty, this method automatically search all subdirectories of target gem

# File lib/extconf_task/mkmf_utils.rb, line 6
def find_header_in_gem(header, gem_name, *paths_from_gem_root)
  header_dirs = nil
  begin
    require "rubygems"
    spec = Gem::Specification.find_by_name(gem_name)
    if paths_from_gem_root.empty?
      if header_path = Dir.glob(File.join(spec.full_gem_path, "**", header)).first
        header_dirs = [File.dirname(header_path)]
      else
        return false
      end
    else
      header_dirs = paths_from_gem_root.map do |path|
        File.join(spec.full_gem_path, path)
      end
    end
  rescue LoadError
  end
  find_header(header, *header_dirs)
end