diff options
| -rw-r--r-- | tasks/mrbgem_spec.rake | 21 |
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 |
