class Batsir::DSL::ConditionalNotifierDeclaration

Constants

NotifierConditionDeclaration

Attributes

notifier_declarations[R]

Public Class Methods

new() click to toggle source
# File lib/batsir/dsl/conditional_notifier_declaration.rb, line 8
def initialize
  @notifier_declarations = []
end

Public Instance Methods

add_conditional(condition, notifier_class, options) click to toggle source
# File lib/batsir/dsl/conditional_notifier_declaration.rb, line 12
def add_conditional(condition, notifier_class, options)
  @notifier_declarations << NotifierConditionDeclaration.new(condition, notifier_class, options)
end
compile(code, stage_worker) click to toggle source
# File lib/batsir/dsl/conditional_notifier_declaration.rb, line 16
      def compile(code, stage_worker)
        code << <<-EOF
              notifier = Batsir::Notifiers::ConditionalNotifier.new
        EOF
        notifier_declarations.each do |notifier_declaration|
          code << <<-EOF
              condition = ->(message){#{notifier_declaration.condition}}
              notifier.add_notifier condition, #{notifier_declaration.notifier}.new(#{notifier_declaration.options.to_s})
          EOF
        end
        stage_worker.add_transformers_to_notifier(code)
        stage_worker.add_notifier(code)
      end