summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--tasks/mrbgem_spec.rake24
-rw-r--r--tasks/mruby_build.rake2
2 files changed, 25 insertions, 1 deletions
diff --git a/tasks/mrbgem_spec.rake b/tasks/mrbgem_spec.rake
index 7d6a03fc1..d2dbc860c 100644
--- a/tasks/mrbgem_spec.rake
+++ b/tasks/mrbgem_spec.rake
@@ -169,6 +169,30 @@ module MRuby
end
end # Specification
+
+ class List
+ include Enumerable
+
+ def initialize
+ @ary = []
+ end
+
+ def each(&b)
+ @ary.each(&b)
+ end
+
+ def <<(gem)
+ unless @ary.detect {|g| g.dir == gem.dir }
+ @ary << gem
+ else
+ # GEM was already added to this list
+ end
+ end
+
+ def empty?
+ @ary.empty?
+ end
+ end # List
end # Gem
GemBox = Object.new
diff --git a/tasks/mruby_build.rake b/tasks/mruby_build.rake
index 4a8dcf99b..eeebd161b 100644
--- a/tasks/mruby_build.rake
+++ b/tasks/mruby_build.rake
@@ -75,7 +75,7 @@ module MRuby
@mrbc = Command::Mrbc.new(self)
@bins = %w(mrbc)
- @gems, @libmruby = [], []
+ @gems, @libmruby = MRuby::Gem::List.new, []
@build_mrbtest_lib_only = false
MRuby.targets[@name] = self