Sha256: 8a0cdb646b8721de60fc6c115469390af4d1322141d11153430702d7d0d6ea81

Contents?: true

Size: 667 Bytes

Versions: 1

Compression:

Stored size: 667 Bytes

Contents

require 'json'
require 'net/http'

module Capistrano
  module DeployHooks
    class Main
      extend Forwardable
      def_delegators :@cap, :fetch, :run_locally

      def initialize(cap)
        @env = cap
        opts = fetch(:deploy_hooks, {}).dup

        @messenger = opts.delete(:messenger).new(cap, opts)
      end

      def run(action)
        _self = self
        run_locally{ _self.process(action) }
      end

      def process(action)
        uri = URI(@messenger.webhook_for(action))
        @messenger.payloads_for(action).each do |payload|
          Net::HTTP.post_form(uri, { 'payload' => payload.to_json })
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
capistrano-deploy_hooks-0.1.1 lib/capistrano/deploy_hooks/main.rb