summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--tasks/mrbgem_spec.rake21
1 files changed, 15 insertions, 6 deletions
diff --git a/tasks/mrbgem_spec.rake b/tasks/mrbgem_spec.rake
index 2d61d5908..f6d759b23 100644
--- a/tasks/mrbgem_spec.rake
+++ b/tasks/mrbgem_spec.rake
@@ -170,19 +170,28 @@ module MRuby
end # Specification
- class List < Array
+ class List
+ include Enumerable
+
+ def initialize
+ @ary = []
+ end
+
+ def each(&b)
+ @ary.each(&b)
+ end
+
def <<(gem)
fail ArgumentError.new("Don't find directory for this GEM") unless gem.respond_to? :dir
- unless include?(gem)
- super(gem)
+ unless @ary.detect {|g| g.dir == gem.dir }
+ @ary << gem
else
# GEM was already added to this list
end
end
- # we assume that a gem with the same directory is equal
- def include?(gem)
- detect {|g| g.dir == gem.dir }
+ def empty?
+ @ary.empty?
end
end # List
end # Gem