diff options
Diffstat (limited to 'spec/mspec/lib/mspec/matchers/have_public_instance_method.rb')
-rw-r--r-- | spec/mspec/lib/mspec/matchers/have_public_instance_method.rb | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/spec/mspec/lib/mspec/matchers/have_public_instance_method.rb b/spec/mspec/lib/mspec/matchers/have_public_instance_method.rb new file mode 100644 index 0000000000..035547d28f --- /dev/null +++ b/spec/mspec/lib/mspec/matchers/have_public_instance_method.rb @@ -0,0 +1,24 @@ +require 'mspec/matchers/method' + +class HavePublicInstanceMethodMatcher < MethodMatcher + def matches?(mod) + @mod = mod + mod.public_instance_methods(@include_super).include? @method + end + + def failure_message + ["Expected #{@mod} to have public instance method '#{@method.to_s}'", + "but it does not"] + end + + def negative_failure_message + ["Expected #{@mod} NOT to have public instance method '#{@method.to_s}'", + "but it does"] + end +end + +class Object + def have_public_instance_method(method, include_super=true) + HavePublicInstanceMethodMatcher.new method, include_super + end +end |