lib/eregex.rb
DEFINITIONS
This source file includes following functions.
1 # this is just a proof of concept toy.
2
3 class RegOr
4 def initialize(re1, re2)
5 @re1 = re1
6 @re2 = re2
7 end
8
9 def =~ (str)
10 @re1 =~ str or @re2 =~ str
11 end
12 end
13
14 class RegAnd
15 def initialize(re1, re2)
16 @re1 = re1
17 @re2 = re2
18 end
19
20 def =~ (str)
21 @re1 =~ str and @re2 =~ str
22 end
23 end
24
25 class Regexp
26 def |(other)
27 RegOr.new(self, other)
28 end
29 def &(other)
30 RegAnd.new(self, other)
31 end
32 end
33
34 if __FILE__ == $0
35 p "abc" =~ /b/|/c/
36 p "abc" =~ /b/&/c/
37 end