Sha256: 87ea02e725b8e48cc0c2f81a921e3cc72af9752e6fb22d8b3179c80adf242ea3

Contents?: true

Size: 1.22 KB

Versions: 7

Compression:

Stored size: 1.22 KB

Contents

require 'broach'

module Rearview
  module Alerts
    class CampfireAlert < Base

      def alert(job, result)
        job.alert_keys.each do |key|
          params = CampfireAlert.params(key)
          if CampfireAlert.key?(params)
            logger.info "#{self} send alert for #{job.inspect} and key #{key} with params #{params}"
            Broach.settings = params
            Broach.speak(params["room"], alert_msg(job, result))
          end
        end
      end

      private

      def alert_msg(job, result)
        msg = result[:message] ? result[:message] : "Job did not provide an error description"
        "#{msg} #{Rearview::UriHelper.rearview_uri(job)}"
      end

      def self.params(key)
        uri = URI(key)
        query_params = CGI.parse(uri.query)
        {
          "scheme" =>  uri.scheme,
          "account" => uri.host,
          "token" => query_params["token"].first,
          "room" => query_params["room"].first,
          "use_ssl" => true
        }
      rescue
        {}
      end

      def self.key?(key)
        p = key_to_params(key)
        valid_scheme?(p["scheme"]) && p["token"].present? && p["room"].present?
      end

      def self.scheme
        "campfire"
      end

    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
rearview-1.0.1-jruby lib/rearview/alerts/campfire_alert.rb
rearview-1.0.0-jruby lib/rearview/alerts/campfire_alert.rb
rearview-1.0.0.rc5-jruby lib/rearview/alerts/campfire_alert.rb
rearview-1.0.0.rc4-jruby lib/rearview/alerts/campfire_alert.rb
rearview-1.0.0.rc3-jruby lib/rearview/alerts/campfire_alert.rb
rearview-1.0.0.rc2-jruby lib/rearview/alerts/campfire_alert.rb
rearview-1.0.0.rc1-jruby lib/rearview/alerts/campfire_alert.rb