O que está acontecendo é que, enquanto o seu agente de marionetes tem a versão rubi correta como você encontrou, a compilação real do catálogo acontece no serviço principal de marionetes.
Existe o seu culpado neste caso; o mestre não usa o ruby normal, ele usa o JRuby. Mesmo nas versões mais recentes absolutas do puppetserver, até o momento da redação (5.1.4), o JRuby padrão em uso pelo puppetserver é 1.7. Para mudar para o JRuby 9k e obter as funções que você espera (lembre-se de que eles o chamam de "algo experimental"), certifique-se de que seu mestre de marionetes esteja rodando 5.0 ou mais novo, então altere a variável de ambiente conforme descrito nos documentos para a versão mais recente do JRuby.