Class: Cinch::Pattern Private
- Inherits:
-
Object
- Object
- Cinch::Pattern
- Defined in:
- lib/cinch/pattern.rb
Overview
This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.
Instance Attribute Summary collapse
- #pattern ⇒ Object readonly private
- #prefix ⇒ Object readonly private
- #suffix ⇒ Object readonly private
Class Method Summary collapse
- .generate(type, argument) ⇒ Object private
- .obj_to_r(obj, anchor = nil) ⇒ Regexp? private
- .resolve_proc(obj, msg = nil) ⇒ Object private
Instance Method Summary collapse
-
#initialize(prefix, pattern, suffix) ⇒ Pattern
constructor
private
A new instance of Pattern.
- #to_r(msg = nil) ⇒ Object private
Constructor Details
#initialize(prefix, pattern, suffix) ⇒ Pattern
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns a new instance of Pattern.
47 48 49 |
# File 'lib/cinch/pattern.rb', line 47 def initialize(prefix, pattern, suffix) @prefix, @pattern, @suffix = prefix, pattern, suffix end |
Instance Attribute Details
#pattern ⇒ Object (readonly)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
46 47 48 |
# File 'lib/cinch/pattern.rb', line 46 def pattern @pattern end |
#prefix ⇒ Object (readonly)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
44 45 46 |
# File 'lib/cinch/pattern.rb', line 44 def prefix @prefix end |
#suffix ⇒ Object (readonly)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
45 46 47 |
# File 'lib/cinch/pattern.rb', line 45 def suffix @suffix end |
Class Method Details
.generate(type, argument) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
35 36 37 38 39 40 41 42 |
# File 'lib/cinch/pattern.rb', line 35 def self.generate(type, argument) case type when :ctcp Pattern.new(/^/, /#{Regexp.escape(argument.to_s)}(?:$| .+)/, nil) else raise ArgumentError, "Unsupported type: #{type.inspect}" end end |
.obj_to_r(obj, anchor = nil) ⇒ Regexp?
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/cinch/pattern.rb', line 10 def self.obj_to_r(obj, anchor = nil) case obj when Regexp, NilClass obj else escaped = Regexp.escape(obj.to_s) case anchor when :start Regexp.new("^" + escaped) when :end Regexp.new(escaped + "$") when nil Regexp.new(Regexp.escape(obj.to_s)) end end end |
.resolve_proc(obj, msg = nil) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
27 28 29 30 31 32 33 |
# File 'lib/cinch/pattern.rb', line 27 def self.resolve_proc(obj, msg = nil) if obj.is_a?(Proc) resolve_proc(obj.call(msg), msg) else obj end end |
Instance Method Details
#to_r(msg = nil) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/cinch/pattern.rb', line 51 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 |