Method: WeChat::Bot::Pattern#to_r

Defined in:
lib/wechat/bot/pattern.rb

#to_r(msg = nil) ⇒ Object



48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/wechat/bot/pattern.rb', line 48

def to_r(msg = nil)
  pattern = Pattern.resolve_proc(@pattern, msg)

  case pattern
  when Regexp, NilClass
    prefix  = Pattern.obj_to_r(Pattern.resolve_proc(@prefix, msg), :start)
    suffix  = Pattern.obj_to_r(Pattern.resolve_proc(@suffix, msg), :end)
    /#{prefix}#{pattern}#{suffix}/
  else
    prefix  = Pattern.obj_to_r(Pattern.resolve_proc(@prefix, msg))
    suffix  = Pattern.obj_to_r(Pattern.resolve_proc(@suffix, msg))
    /^#{prefix}#{Pattern.obj_to_r(pattern)}#{suffix}$/
  end
end