Method: WeChat::Bot::Pattern.obj_to_r

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

.obj_to_r(obj, anchor = nil) ⇒ Regexp?

Parameters:

  • obj (String, Regexp, NilClass, Proc, #to_s)

    匹配规则

Returns:

  • (Regexp, nil)


6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/wechat/bot/pattern.rb', line 6

def self.obj_to_r(obj, anchor = nil)
  case obj
  when Regexp, NilClass
    return obj
  else
    escaped = Regexp.escape(obj.to_s)
    case anchor
    when :start
      return Regexp.new("^" + escaped)
    when :end
      return Regexp.new(escaped + "$")
    when nil
      return Regexp.new(Regexp.escape(obj.to_s))
    end
  end
end