We could probably use `any?` here for slightly cleaner code:

```ruby
match_found = rule_values.any? do |rule_value|
  case rule['type']
  when "regex"
    value_at_path.to_s =~ Regexp.new(rule_value, Regexp::IGNORECASE)
  when "!regex"
    value_at_path.to_s !~ Regexp.new(rule_value, Regexp::IGNORECASE)
  when "field>value"
    value_at_path.to_f > rule_value.to_f
  when "field>=value"
    value_at_path.to_f >= rule_value.to_f
  when "field<value"
    value_at_path.to_f < rule_value.to_f
  when "field<=value"
    value_at_path.to_f <= rule_value.to_f
  when "field==value"
    value_at_path.to_s == rule_value.to_s
  when "field!=value"
    value_at_path.to_s != rule_value.to_s
  else
    raise "Invalid type of #{rule['type']} in TriggerAgent##{id}"
  end
end
```