Sha256: e5e036e0679de992dcde029401e4f9d6f34e3e9f5fba137840f2351c990a56eb

Contents?: true

Size: 823 Bytes

Versions: 6

Compression:

Stored size: 823 Bytes

Contents

module Blazer
  class Check < ActiveRecord::Base
    belongs_to :query

    validates :query_id, presence: true

    def split_emails
      emails.to_s.split(",").map(&:strip)
    end

    def update_state(rows, error)
      invert = self.respond_to?(:invert) && self.invert
      self.state =
        if error
          "error"
        elsif rows.any?
          invert ? "passing" : "failing"
        else
          invert ? "failing" : "passing"
        end

      self.last_run_at = Time.now if self.respond_to?(:last_run_at=)

      # do not notify on creation, except when not passing
      if (state_was || state != "passing") && state != state_was && emails.present?
        Blazer::CheckMailer.state_change(self, state, state_was, rows.size, error).deliver_later
      end
      save! if changed?
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
blazer-1.3.5 app/models/blazer/check.rb
blazer-1.3.4 app/models/blazer/check.rb
blazer-1.3.3 app/models/blazer/check.rb
blazer-1.3.2 app/models/blazer/check.rb
blazer-1.3.1 app/models/blazer/check.rb
blazer-1.3.0 app/models/blazer/check.rb