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.



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
# File 'lib/spstrigger_execute.rb', line 13

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, _ = RXFReader.read x
    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(topicx = nil, messagex = nil, topic: topicx, message: messagex) ⇒ Object Also known as: mae



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

def match_and_execute(topicx=nil, messagex=nil, topic: topicx,
                      message: messagex)

  @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