class Flor::Pro::Matchr
Public Instance Methods
Source
# File lib/flor/pcore/matchr.rb, line 62 def pre_execute @node['rets'] = [] end
Source
# File lib/flor/pcore/matchr.rb, line 67 def receive_last rex, str = arguments m = rex.match(str) payload['ret'] = case heap when 'match?' then !! m when 'pmatch' then (m && (m[1] || m[0])) || '' else m ? m.to_a : [] end wrap_reply end
Protected Instance Methods
Source
# File lib/flor/pcore/matchr.rb, line 85 def arguments rets = @node['rets'].dup rets.unshift(node_payload_ret) if rets.size < 2 fail Flor::FlorError.new( "'#{tree[0]}' needs 1 or 2 arguments", self ) if rets.size < 2 rex = rets.find { |r| Flor.is_regex_tree?(r) } || rets.last str = (rets - [ rex ]).first rex = Flor.to_regex(rex) [ rex, str ] end