diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2014-01-09 22:04:01 -0800 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2014-01-09 22:04:01 -0800 |
| commit | ff9b41cc371d7d5a75e58f62d01180787d21b327 (patch) | |
| tree | 5b7c4adacbcdc1bb5ea709d4c0d088dbec094987 | |
| parent | a02eb4bddca5ed7906ba09441532f9ba1db25b79 (diff) | |
| parent | 83413218a5f3681347128a491baebc5a21b0bc53 (diff) | |
| download | mruby-ff9b41cc371d7d5a75e58f62d01180787d21b327.tar.gz mruby-ff9b41cc371d7d5a75e58f62d01180787d21b327.zip | |
Merge pull request #1654 from iij/pr-not-match-operator
add operator "!~".
| -rw-r--r-- | mrblib/kernel.rb | 5 | ||||
| -rw-r--r-- | test/t/kernel.rb | 21 |
2 files changed, 26 insertions, 0 deletions
diff --git a/mrblib/kernel.rb b/mrblib/kernel.rb index 8ccf3cfa8..0277a1b83 100644 --- a/mrblib/kernel.rb +++ b/mrblib/kernel.rb @@ -43,4 +43,9 @@ module Kernel yield end end + + # 11.4.4 Step c) + def !~(y) + !(self =~ y) + end end diff --git a/test/t/kernel.rb b/test/t/kernel.rb index 0f8fdebe4..e7c9c2635 100644 --- a/test/t/kernel.rb +++ b/test/t/kernel.rb @@ -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) |
