class NdrDevSupport::SlackMessagePublisher
This Class publishes messages to Slack
Public Class Methods
new(url, default_options = {})
click to toggle source
# File lib/ndr_dev_support/slack_message_publisher.rb, line 4 def initialize(url, default_options = {}) @url = url @default_options = default_options end
Public Instance Methods
post(options = {})
click to toggle source
# File lib/ndr_dev_support/slack_message_publisher.rb, line 9 def post(options = {}) request = json_request request.body = message(options) use_ssl = request.uri.scheme == 'https' http = if proxy proxy.start(request.uri.host, use_ssl: use_ssl) else Net::HTTP.start(request.uri.host, request.uri.port, use_ssl: use_ssl) end http.request(request) end
Private Instance Methods
json_request()
click to toggle source
# File lib/ndr_dev_support/slack_message_publisher.rb, line 26 def json_request uri = URI.parse(@url) request = Net::HTTP::Post.new(uri) # request.basic_auth(*@auth.split(':')) if @auth request['Content-Type'] = 'application/json' request end
message(options)
click to toggle source
# File lib/ndr_dev_support/slack_message_publisher.rb, line 34 def message(options) @default_options.merge(options).to_json end
proxy()
click to toggle source
# File lib/ndr_dev_support/slack_message_publisher.rb, line 38 def proxy return @proxy if @proxy return if ENV['https_proxy'].nil? host_and_port = ENV['https_proxy'].match(%r{\A(?:https?://)?([^:]+):(\d+)})[1, 2] return if host_and_port.nil? @proxy = Net::HTTP.Proxy(*host_and_port) end