Module: Puppet::Pops::Loader::UriHelper
- Defined in:
- lib/puppet/pops/loader/uri_helper.rb
Instance Method Summary collapse
-
#path_for_uri(uri, subdir = 'lib') ⇒ Object
Raises an exception if specified gem can not be located.
Instance Method Details
#path_for_uri(uri, subdir = 'lib') ⇒ Object
Raises an exception if specified gem can not be located
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/puppet/pops/loader/uri_helper.rb', line 6 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.}" 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 |