class EasyPing::Action

Constants

CHANNELS

Attributes

client[R]
config[R]

Public Class Methods

new(config) click to toggle source
# File lib/easy_ping/action.rb, line 27
def initialize(config)
  @config = config
  @client   = EasyPing::Client.new(config.api_base, config.api_key)
end

Public Instance Methods

from_notification(params) click to toggle source
# File lib/easy_ping/action.rb, line 32
def from_notification(params)
  EasyPing::Model::Wrapper.new(params, config)
end

Private Instance Methods

compile(options) click to toggle source
# File lib/easy_ping/action.rb, line 41
def compile(options)
  mappings.each do |*group|
    raise ParametersInvalid, "more than one of #{group} options set" if (options.keys & group).length > 1
  end
  Hash[options.map {|k, v| mappings.key?(k) ? [mappings[k], v] : [k, v] }]
end
verify!(options, requires) click to toggle source
# File lib/easy_ping/action.rb, line 48
def verify!(options, requires)
  missing_parameters = requires - options.keys.map(&:to_s)
  if missing_parameters.length > 0
    raise MissingRequiredParameters, %Q{#{missing_parameters} is required
    for this action.}
  end
  if options['channel'] && !CHANNELS.include?(options['channel'].to_s)
    raise ParametersInvalid, %Q{#{options['channel']} is not valid channel
    for this action.}
  end
end