Class: SPSTriggerExecute

Inherits:
Object
  • Object
show all
Defined in:
lib/spstrigger_execute.rb

Instance Method Summary collapse

Constructor Details

#initialize(x, reg = nil, polyrexdoc = nil, rws = nil, log: nil) ⇒ SPSTriggerExecute

Returns a new instance of SPSTriggerExecute.



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/spstrigger_execute.rb', line 12

def initialize(x, reg=nil, polyrexdoc=nil, rws=nil, log: nil)
  
  log.info 'SPSTriggerExecute/initialize: active' if log
  
  @rws, @log = rws, log
  
  @patterns = if x.is_a? Dynarex then
  
    x.to_h
    
  elsif x.is_a? Array
    x
  else
    
    buffer, _ = RXFHelper.read x, auto: false
    dx = buffer[/^<\?dynarex /] ? Dynarex.new.import(buffer) : \
        Dynarex.new(buffer)
    dx.to_a
    
  end    
  
  if reg and polyrexdoc then
    log.info 'SPSTriggerExecute/initialize: before reg' if log      
    puts 'reg: ' + reg.inspect
    xro = XMLRegistryObjects.new(reg, polyrexdoc, log: log)
    log.info 'SPSTriggerExecute/initialize: after reg' if log      
    @h = xro.to_h      
    define_methods = @h.keys.map {|x| "def #{x}() @h[:#{x}] end"}      
    instance_eval define_methods.join("\n")      
    
    if log then
      log.info 'SPSTriggerExecute/initialize: define_methods : ' + 
          self.public_methods.sort.inspect
    end
  end

end

Instance Method Details

#match_and_execute(topic: nil, message: message) ⇒ Object Also known as: mae



50
51
52
53
54
55
# File 'lib/spstrigger_execute.rb', line 50

def match_and_execute(topic: nil, message: message)

  @log.info 'SPSTriggerExecute/match_and_execute: active' if @log
  results = find_match topic, message
  prepare_jobs(results)
end

#run(s) ⇒ Object



59
60
61
# File 'lib/spstrigger_execute.rb', line 59

def run(s)
  instance_eval s
end