mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
6204e0804b
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66888 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
31 lines
635 B
Ruby
31 lines
635 B
Ruby
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
|