Merge pull request #1654 from iij/pr-not-match-operator

add operator "!~".
This commit is contained in:
Yukihiro "Matz" Matsumoto
2014-01-09 22:04:01 -08:00
2 changed files with 26 additions and 0 deletions
+5
View File
@@ -43,4 +43,9 @@ module Kernel
yield
end
end
# 11.4.4 Step c)
def !~(y)
!(self =~ y)
end
end
+21
View File
@@ -479,6 +479,27 @@ assert('Kernel#!=') do
assert_false (str2 != str1)
end
# operator "!~" is defined in ISO Ruby 11.4.4.
assert('Kernel#!~') do
x = "x"
def x.=~(other)
other == "x"
end
assert_false x !~ "x"
assert_true x !~ "z"
y = "y"
def y.=~(other)
other == "y"
end
def y.!~(other)
other == "not y"
end
assert_false y !~ "y"
assert_false y !~ "z"
assert_true y !~ "not y"
end
assert('Kernel#respond_to_missing?') do
class Test4RespondToMissing
def respond_to_missing?(method_name, include_private = false)