# # # # # # # # #
# /33/object_not.rb
#
# by Jan Lelis
# e-mail: mail@janlelis.de
# type/version: ruby 1.9
# snippet url: http://rbJL.net/33/object_not.rb
# original post: http://rbJL.net/33-new-features-of-ruby-zucker-version-2-and-3
# license: CC-BY (DE)
#
# (c) 2010 Jan Lelis.
class Object
def not
NotClass.new self
end
class NotClass < BasicObject
def initialize(receiver)
@receiver = receiver
end
def method_missing(m, *args, &block)
not @receiver.public_send( m, *args, &block ) # this not is the built-in not operator
end
end
end
# usage
# [1,2,3].not.empty? # true