Skip to content

Commit 73ee418

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

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

lib/rspec-puppet/example/function_example_group.rb

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,8 @@ 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+
loader = Puppet::Pops::Loader::ModuleLoaders::FileBased.new(loaders.private_environment_loader, loaders, Puppet::Pops::Loader::ENVIRONMENT, loader_dir, 'environment functions', [:func_4x])
9899
func = V4FunctionWrapper.new(function_name, loader.load(:function, function_name), context_overrides)
99100
@scope = context_overrides[:global_scope]
100101
end
@@ -138,6 +139,10 @@ def rspec_puppet_cleanup
138139

139140
private
140141

142+
def loader_needs_lib?
143+
!Puppet::Pops::Loader::LoaderPaths::FunctionPath4x::FUNCTION_PATH_4X.start_with?('lib')
144+
end
145+
141146
def compiler
142147
@compiler ||= build_compiler
143148
end

0 commit comments

Comments
 (0)