Class: Batsir::DSL::ConditionalNotifierDeclaration

Inherits:
Object
  • Object
show all
Defined in:
lib/batsir/dsl/conditional_notifier_declaration.rb

Defined Under Namespace

Classes: NotifierConditionDeclaration

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConditionalNotifierDeclaration

Returns a new instance of ConditionalNotifierDeclaration.



8
9
10
# File 'lib/batsir/dsl/conditional_notifier_declaration.rb', line 8

def initialize
  @notifier_declarations = []
end

Instance Attribute Details

#notifier_declarationsObject (readonly)

Returns the value of attribute notifier_declarations.



4
5
6
# File 'lib/batsir/dsl/conditional_notifier_declaration.rb', line 4

def notifier_declarations
  @notifier_declarations
end

Instance Method Details

#add_conditional(condition, notifier_class, options) ⇒ Object



12
13
14
# 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) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
# 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