Module: Flapjack::Pikelet

Defined in:
lib/flapjack/pikelet.rb

Defined Under Namespace

Classes: Base, Generic, HTTP

Constant Summary collapse

WRAPPERS =
[Flapjack::Pikelet::Generic, Flapjack::Pikelet::HTTP]
TYPES =
{'jsonapi'    => [Flapjack::Gateways::JSONAPI],
 'email'      => [Flapjack::Gateways::Email],
 'notifier'   => [Flapjack::Notifier],
 'processor'  => [Flapjack::Processor],
 'jabber'     => [Flapjack::Gateways::Jabber::Bot,
                  Flapjack::Gateways::Jabber::Notifier,
                  Flapjack::Gateways::Jabber::Interpreter],
 'oobetet'    => [Flapjack::Gateways::Oobetet::Bot,
                  Flapjack::Gateways::Oobetet::Notifier],
 'pagerduty'  => [Flapjack::Gateways::PagerDuty::Notifier,
                  Flapjack::Gateways::PagerDuty::AckFinder],
 'slack'      => [Flapjack::Gateways::Slack],
 'sms'        => [Flapjack::Gateways::SmsMessagenet],
 'sms_nexmo'  => [Flapjack::Gateways::SmsNexmo],
 'sms_twilio' => [Flapjack::Gateways::SmsTwilio],
 'sms_aspsms' => [Flapjack::Gateways::SmsAspsms],
 'aws_sns'    => [Flapjack::Gateways::AwsSns],
 'web'    => [Flapjack::Gateways::Web],
}

Class Method Summary collapse

Class Method Details

.create(type, shutdown, opts = {}) ⇒ Object



234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
# File 'lib/flapjack/pikelet.rb', line 234

def self.create(type, shutdown, opts = {})
  config = opts[:config] || {}

  types = TYPES[type]

  return [] if types.nil?

  created = types.collect {|pikelet_class|
    wrapper = WRAPPERS.detect {|wrap| wrap::TYPES.include?(type) }
    logger_name = if TYPES[type].size == 1
      "flapjack-#{type}"
    else
      "flapjack-#{type}-#{pikelet_class.name.demodulize.underscore}"
    end
    wrapper.new(pikelet_class, shutdown, :logger_name => logger_name,
      :config => config, :boot_time => opts[:boot_time])
  }
  created.each {|c| c.siblings = created - [c] }
  created
end

.is_pikelet?(type) ⇒ Boolean

Returns:

  • (Boolean)


230
231
232
# File 'lib/flapjack/pikelet.rb', line 230

def self.is_pikelet?(type)
  TYPES.has_key?(type)
end