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



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
49
50
# 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



52
53
54
55
56
57
# File 'lib/spstrigger_execute.rb', line 52

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



61
62
63
# File 'lib/spstrigger_execute.rb', line 61

def run(s)
  instance_eval s
end