From a1c6018f3084d39e76a79d6b093c815f638d8ea6 Mon Sep 17 00:00:00 2001 From: Markus Schirp <mbj@schirp-dso.com> Date: Thu, 27 Nov 2014 22:01:53 +0000 Subject: [PATCH] Add mutation from `send` to `__send__` * `__send__` is the canonical form. --- lib/mutant/mutator/node/send.rb | 3 ++- meta/send.rb | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/lib/mutant/mutator/node/send.rb b/lib/mutant/mutator/node/send.rb index f2c076dd..615dbcea 100644 --- a/lib/mutant/mutator/node/send.rb +++ b/lib/mutant/mutator/node/send.rb @@ -17,7 +17,8 @@ module Mutant reverse_each: [:each], reverse_merge: [:merge], map: [:each], - send: [:public_send], + send: [:public_send, :__send__], + __send__: [:public_send], gsub: [:sub], eql?: [:equal?], to_s: [:to_str], diff --git a/meta/send.rb b/meta/send.rb index 9f694cec..ddb452a6 100644 --- a/meta/send.rb +++ b/meta/send.rb @@ -189,12 +189,26 @@ Mutant::Meta::Example.add do mutation 'self.gsub(a, b)' end +Mutant::Meta::Example.add do + source 'foo.__send__(bar)' + + singleton_mutations + mutation 'foo.__send__' + mutation 'foo.public_send(bar)' + mutation 'bar' + mutation 'foo' + mutation 'self.__send__(bar)' + mutation 'foo.__send__(nil)' + mutation 'foo.__send__(self)' +end + Mutant::Meta::Example.add do source 'foo.send(bar)' singleton_mutations mutation 'foo.send' mutation 'foo.public_send(bar)' + mutation 'foo.__send__(bar)' mutation 'bar' mutation 'foo' mutation 'self.send(bar)'