Quando você altera qualquer código ruby personalizado, como uma função personalizada, é necessário reiniciar o Puppetmaster. Se você está executando o fantoche sob o passageiro, isso significa reiniciar o Apache. Caso contrário, você obterá a versão antiga.
Além disso, há um bug bastante desagradável que entra em ação se você estiver hospedando vários ambientes em seu puppetmaster com uma função com nome idêntico no outro ambiente. Neste caso, você não tem como ter certeza de qual função do ambiente é usada quando você chama o nome da função! Ele usa o mesmo namespace de função em todos os ambientes ... (isso é confirmado para acontecer no Puppet 2.7.22, não tenho certeza sobre 3.x)