Sha256: a6bc031af2ee35930c0b243cf8d3dd3a3d3d6148b6575fd21297e8d629091d43

Contents?: true

Size: 1.77 KB

Versions: 1

Compression:

Stored size: 1.77 KB

Contents

require 'httparty'
require 'md5'

module Integrity
  class Notifier
    class Notifyio < Notifier::Base
      attr_reader :config

      def self.to_haml
        @haml ||= File.read(File.dirname(__FILE__) + "/notifyio.haml")
      end

      def deliver!
        post(config['email'], config['api_key'], short_message, full_message) if announce_build?
      end

      def to_s
        'Notifyio'
      end
      
      #######
      private
      #######
      
      def full_message
        <<-EOM
== #{short_message}

Commit Message: #{build.commit.message}
Commit Date: #{build.commit.committed_at}
Commit Author: #{build.commit.author.name}

Link: #{build_url}

EOM
      end
      
      def post(emails, api_key, title, body)
        return if emails.nil? || emails.empty? || api_key.nil? || api_key.empty?
        emails.split(',').each do |email|
          email_hash = MD5.hexdigest(email.strip)
          HTTParty.post "http://api.notify.io/v1/notify/#{email_hash}",   :headers => {'content-type' => 'application/x-www-form-urlencoded'},
                                                                          :body => {:api_key => api_key},
                                                                          :query => {
                                                                                      :api_key => api_key,
                                                                                      :title => title,
                                                                                      :text => body
                                                                                    }
          
        end
      end
      
      def announce_build?
        build.failed? || config["announce_success"]
      end
      
    end

    register Notifyio
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
integrity-notifyio-0.2.1 lib/integrity/notifier/notifyio.rb