Skip to content

Commit e10d6e2

Browse files
committed
Work around inconsistent loader behaviour between versions
1 parent 471104d commit e10d6e2

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

lib/rspec-puppet/example/function_example_group.rb

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,13 @@ def find_function(function_name = self.class.top_level_description)
9494
File.join(File.dirname(r), 'lib')
9595
}
9696
dir = env_libdirs.find { |r| File.directory?(r) }
97-
loader = Puppet::Pops::Loader::ModuleLoaders::FileBased.new(loaders.private_environment_loader, loaders, Puppet::Pops::Loader::ENVIRONMENT, dir, 'environment functions', [:func_4x])
97+
loader_dir = loader_needs_lib? ? dir : File.dirname(dir)
98+
module_name = if Puppet::Pops::Loader.const_defined?(:ENVIRONMENT)
99+
Puppet::Pops::Loader::ENVIRONMENT
100+
else
101+
nil
102+
end
103+
loader = Puppet::Pops::Loader::ModuleLoaders::FileBased.new(loaders.private_environment_loader, loaders, module_name, loader_dir, 'environment functions', [:func_4x])
98104
func = V4FunctionWrapper.new(function_name, loader.load(:function, function_name), context_overrides)
99105
@scope = context_overrides[:global_scope]
100106
end
@@ -138,6 +144,10 @@ def rspec_puppet_cleanup
138144

139145
private
140146

147+
def loader_needs_lib?
148+
!Puppet::Pops::Loader::LoaderPaths::FunctionPath4x::FUNCTION_PATH_4X.start_with?('lib')
149+
end
150+
141151
def compiler
142152
@compiler ||= build_compiler
143153
end

0 commit comments

Comments
 (0)