Sha256: 742197502c2cb9892f488aee0d0499e04020e9cbe2c352d966a1660014c2d2ba

Contents?: true

Size: 749 Bytes

Versions: 1

Compression:

Stored size: 749 Bytes

Contents

require "faraday"
require "guard/notifiers/base"
require "json"

module GuardWebHookNotifier
  class Notifier < Guard::Notifier::Base
    DEFAULTS = {
      user_agent: "GuardWebHookNotifier/#{VERSION}",
      url: "http://10.0.2.2:4001/"
    }

    def initialize(opts = {})
      super
      @options = DEFAULTS.merge(opts)
    end

    def notify(message, opts = {})
      super
      send(message, opts) rescue Faraday::Error
    end

    private

    def send(message, opts)
      conn = Faraday.new(url: opts[:url])
      conn.post do |req|
        req.headers["Content-Type"] = "application/json"
        req.headers["User-Agent"] = opts[:user_agent]
        req.body = { message: message, options: opts }.to_json
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
guard-webhook-notifier-0.0.4 lib/guard-webhook-notifier/notifier.rb