diff options
Diffstat (limited to 'lib/rubygems/resolver/requirement_list.rb')
-rw-r--r-- | lib/rubygems/resolver/requirement_list.rb | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/lib/rubygems/resolver/requirement_list.rb b/lib/rubygems/resolver/requirement_list.rb new file mode 100644 index 0000000000..8123e84fc7 --- /dev/null +++ b/lib/rubygems/resolver/requirement_list.rb @@ -0,0 +1,40 @@ +## +# Used internally to hold the requirements being considered +# while attempting to find a proper activation set. + +class Gem::Resolver::RequirementList + + include Enumerable + + def initialize + @list = [] + end + + def initialize_copy(other) + @list = @list.dup + end + + def add(req) + @list.push req + req + end + + ## + # Enumerates requirements in the list + + def each # :nodoc: + return enum_for __method__ unless block_given? + + @list.each do |requirement| + yield requirement + end + end + + def empty? + @list.empty? + end + + def remove + @list.shift + end +end |