1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
require 'set'
module SetSpecs
# This class is used to test the interaction of "Set-like" objects with real Sets
#
# These "Set-like" objects reply to is_a?(Set) with true and thus real Set objects are able to transparently
# interoperate with them in a duck-typing manner.
class SetLike
include Enumerable
def is_a?(klass)
super || klass == ::Set
end
def initialize(entries)
@entries = entries
end
def each(&block)
@entries.each(&block)
end
def inspect
"#<#{self.class}: {#{map(&:inspect).join(", ")}}>"
end
def size
@entries.size
end
end
end
|