Sha256: 42234742fbfdc1a85514e0685c80bdd0a7a1d9c4ee2ef5bb090fa29e81c865f3

Contents?: true

Size: 1.21 KB

Versions: 17

Compression:

Stored size: 1.21 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::UrlHelper.job_url(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

17 entries across 17 versions & 1 rubygems

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