Sha256: 44230372d93a5a3965bf60be53bdc4e05914184df1b0d3d55d4b9cd999e43742

Contents?: true

Size: 994 Bytes

Versions: 24

Compression:

Stored size: 994 Bytes

Contents

java_import 'org.apache.commons.validator.EmailValidator'

module Rearview
  module Alerts
    class EmailAlert < Base

      def alert(job, result)
        job.alert_keys.each do |key|
          params = EmailAlert.params(key)
          if EmailAlert.key?(params)
            logger.info "#{self} send alert for #{job.inspect} and key #{key} with params #{params}"
            AlertMailer.alert_email(params["email"], job, result).deliver
          end
        end
      end

      def self.params(key)
        uri = URI(key)
        if uri.scheme.present?
          {
            "scheme" => uri.scheme,
            "email" => uri.opaque,
          }
        end
      rescue
        {}
      end

      def self.key?(key)
        p = key_to_params(key)
        valid_scheme?(p["scheme"]) && valid_email?(p["email"])
      end

      def self.valid_email?(email)
        EmailValidator.getInstance.isValid(email)
      end

      def self.scheme
        "mailto"
      end

    end
  end
end

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
rearview-1.2.3-jruby lib/rearview/alerts/email_alert.rb
rearview-1.2.2.rc.2-jruby lib/rearview/alerts/email_alert.rb
rearview-1.2.2.rc.1-jruby lib/rearview/alerts/email_alert.rb
rearview-1.2.1-jruby lib/rearview/alerts/email_alert.rb
rearview-1.2.0-jruby lib/rearview/alerts/email_alert.rb
rearview-1.1.2-jruby lib/rearview/alerts/email_alert.rb
rearview-1.1.1-jruby lib/rearview/alerts/email_alert.rb
rearview-1.1.0-jruby lib/rearview/alerts/email_alert.rb
rearview-1.0.3.rc.4-jruby lib/rearview/alerts/email_alert.rb
rearview-1.0.3.rc.3-jruby lib/rearview/alerts/email_alert.rb
rearview-1.0.3.rc.2-jruby lib/rearview/alerts/email_alert.rb
rearview-1.0.3.rc.1-jruby lib/rearview/alerts/email_alert.rb
rearview-1.0.2-jruby lib/rearview/alerts/email_alert.rb
rearview-1.0.2.rc.4-jruby lib/rearview/alerts/email_alert.rb
rearview-1.0.2.rc.3-jruby lib/rearview/alerts/email_alert.rb
rearview-1.0.2.rc.2-jruby lib/rearview/alerts/email_alert.rb
rearview-1.0.2.rc.1-jruby lib/rearview/alerts/email_alert.rb
rearview-1.0.1-jruby lib/rearview/alerts/email_alert.rb
rearview-1.0.0-jruby lib/rearview/alerts/email_alert.rb
rearview-1.0.0.rc5-jruby lib/rearview/alerts/email_alert.rb