Sha256: 073c598d7ea164c6bb39d2075f5c464c4c87dad04532ab641cef438780d227fc

Contents?: true

Size: 770 Bytes

Versions: 28

Compression:

Stored size: 770 Bytes

Contents

# frozen_string_literal: true

module Puppet::Pops::Loader::UriHelper
  # Raises an exception if specified gem can not be located
  #
  def path_for_uri(uri, subdir = 'lib')
    case uri.scheme
    when "gem"
      begin
        spec = Gem::Specification.find_by_name(uri.hostname)
        # if path given append that, else append given subdir
        File.join(spec.gem_dir, uri.path.empty?() ? subdir : uri.path)
      rescue StandardError => e
        raise "TODO TYPE: Failed to located gem #{uri}. #{e.message}"
      end
    when "file"
      File.join(uri.path, subdir)
    when nil
      File.join(uri.path, subdir)
    else
      raise "Not a valid scheme for a loader: #{uri.scheme}. Use a 'file:' (or just a path), or 'gem://gemname[/path]"
    end
  end
end

Version data entries

28 entries across 28 versions & 1 rubygems

Version Path
puppet-8.10.0 lib/puppet/pops/loader/uri_helper.rb
puppet-8.10.0-x86-mingw32 lib/puppet/pops/loader/uri_helper.rb
puppet-8.10.0-x64-mingw32 lib/puppet/pops/loader/uri_helper.rb
puppet-8.10.0-universal-darwin lib/puppet/pops/loader/uri_helper.rb
puppet-8.9.0 lib/puppet/pops/loader/uri_helper.rb
puppet-8.9.0-x86-mingw32 lib/puppet/pops/loader/uri_helper.rb
puppet-8.9.0-x64-mingw32 lib/puppet/pops/loader/uri_helper.rb
puppet-8.9.0-universal-darwin lib/puppet/pops/loader/uri_helper.rb
puppet-8.8.1 lib/puppet/pops/loader/uri_helper.rb
puppet-8.8.1-x86-mingw32 lib/puppet/pops/loader/uri_helper.rb
puppet-8.8.1-x64-mingw32 lib/puppet/pops/loader/uri_helper.rb
puppet-8.8.1-universal-darwin lib/puppet/pops/loader/uri_helper.rb
puppet-8.7.0 lib/puppet/pops/loader/uri_helper.rb
puppet-8.7.0-x86-mingw32 lib/puppet/pops/loader/uri_helper.rb
puppet-8.7.0-x64-mingw32 lib/puppet/pops/loader/uri_helper.rb
puppet-8.7.0-universal-darwin lib/puppet/pops/loader/uri_helper.rb
puppet-8.6.0 lib/puppet/pops/loader/uri_helper.rb
puppet-8.6.0-x86-mingw32 lib/puppet/pops/loader/uri_helper.rb
puppet-8.6.0-x64-mingw32 lib/puppet/pops/loader/uri_helper.rb
puppet-8.6.0-universal-darwin lib/puppet/pops/loader/uri_helper.rb