Sha256: 3752188182b79024f9e4997db1c44d76e180b21352384281e9411c8185676559

Contents?: true

Size: 1.06 KB

Versions: 13

Compression:

Stored size: 1.06 KB

Contents

# frozen_string_literal: true

module Groundskeeper
  # Posts to the RADD #general channel.
  class Slack
    COMMAND = "curl"
    SLACK_WORKSPACE_KEY = "SLACK_WORKSPACE"
    SLACK_CHANNEL_KEY = "SLACK_CHANNEL"
    SLACK_TOKEN_KEY = "SLACK_TOKEN"
    URL = "https://hooks.slack.com/services/" \
          "%<workspace>s/%<channel>s/%<token>s"
    SEND_MESSAGE = "-X POST -H 'Content-type: application/json' " \
                   "--data '{\"text\":\"%<message>s\"}' #{URL}"

    attr_reader :slack

    def self.build
      new Executable.new(COMMAND)
    end

    def initialize(slack)
      @slack = slack
    end

    def send_message(message)
      slack.execute(format(SEND_MESSAGE,
                           message: message,
                           workspace: ENV[SLACK_WORKSPACE_KEY],
                           channel: ENV[SLACK_CHANNEL_KEY],
                           token: ENV[SLACK_TOKEN_KEY]))
    end

    def credentials?
      ENV[SLACK_WORKSPACE_KEY].present? &&
        ENV[SLACK_CHANNEL_KEY].present? &&
        ENV[SLACK_TOKEN_KEY].present?
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
groundskeeper-bitcore-0.22.0 lib/groundskeeper/slack.rb
groundskeeper-bitcore-0.21.0 lib/groundskeeper/slack.rb
groundskeeper-bitcore-0.20.1 lib/groundskeeper/slack.rb
groundskeeper-bitcore-0.19.0 lib/groundskeeper/slack.rb
groundskeeper-bitcore-0.18.0 lib/groundskeeper/slack.rb
groundskeeper-bitcore-0.17.0 lib/groundskeeper/slack.rb
groundskeeper-bitcore-0.16.0 lib/groundskeeper/slack.rb
groundskeeper-bitcore-0.15.0 lib/groundskeeper/slack.rb
groundskeeper-bitcore-0.14.0 lib/groundskeeper/slack.rb
groundskeeper-bitcore-0.13.0 lib/groundskeeper/slack.rb
groundskeeper-bitcore-0.12.0 lib/groundskeeper/slack.rb
groundskeeper-bitcore-0.11.0 lib/groundskeeper/slack.rb
groundskeeper-bitcore-0.10.0 lib/groundskeeper/slack.rb