Sha256: e37aafe609ff9b88d81416c1cdfda0c52f2531862184211f193309cce568ce17

Contents?: true

Size: 710 Bytes

Versions: 1

Compression:

Stored size: 710 Bytes

Contents

# frozen_string_literal: true

module Mihari
  module Services
    #
    # Rule runner
    #
    class RuleRunner < Service
      include Dry::Monads[:result, :try]

      # @return [Mihari::Rule]
      attr_reader :rule

      def initialize(rule)
        super()

        @rule = rule
      end

      #
      # @return [Boolean]
      #
      def diff?
        model = Mihari::Models::Rule.find(rule.id)
        model.data != rule.data.deep_stringify_keys
      rescue ActiveRecord::RecordNotFound
        false
      end

      def update_or_create
        rule.model.save
      end

      #
      # @return [Mihari::Models::Alert, nil]
      #
      def call
        rule.call
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
mihari-5.7.0 lib/mihari/services/rule_runner.rb