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
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