module Popcorn

Constants

API_URL
VERSION

Attributes

configuration[RW]

Public Class Methods

configure() { |configuration| ... } click to toggle source
# File lib/popcorn.rb, line 12
def self.configure
  self.configuration ||= Configuration.new
  yield(configuration)
end
notify(recipients, message, opts = {}) click to toggle source
# File lib/popcorn.rb, line 17
def self.notify(recipients, message, opts = {})
  self.configuration ||= Configuration.new

  # Setup Default Options
  default_options = {
    subject: nil,
    verbose: false,
    api_key: self.configuration.api_key
  }
  options = default_options.merge(opts)

  # Create Faraday Client
  conn = Faraday.new(url: API_URL) do |f|
    f.request :url_encoded
    # Filter api_key from logs if verbose
    f.response :logger do |logger|
      logger.filter(/(api_key=)(\w+)/,'\1[FILTERED]')
    end if options[:verbose]
    f.adapter Faraday.default_adapter
  end

  # Convert recipients to string if Array
  recipients = recipients.join(',') if recipients.is_a?(Array)

  # Initiate POST to /notify
  response = conn.post '/notify', {
    recipients: recipients.to_s,
    message: message.to_s,
    subject: options[:subject].to_s,
    api_key: options[:api_key].to_s
  }

  # Return true or false
  response.success?
end