(PUP-2583) mode attribute of file type does not behave like chmod when given X
When changing permissions with puppet file type and using symbolic permissions e.g: g+rX, puppet consideres everything as directory. Which is wrong, because you can specify different set of permissions for directory and file (triggered by case of the letter you use).
Problem originates in ruby && and "and" operator precedence. Which was incorrectly used in this case.