ruler service accepts rule objects, or an array of rule objects

current behaviour is that if there is an error in one rule, none are processed