From eebb94410f52c88974390b8240ce5496d08074cc Mon Sep 17 00:00:00 2001 From: take_cheeze Date: Fri, 13 Jun 2014 01:07:53 +0900 Subject: Implement `add_conflict`. Usage is similar to `add_dependency`. --- tasks/mrbgem_spec.rake | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/tasks/mrbgem_spec.rake b/tasks/mrbgem_spec.rake index 729518174..d38471739 100644 --- a/tasks/mrbgem_spec.rake +++ b/tasks/mrbgem_spec.rake @@ -103,7 +103,11 @@ module MRuby end def add_conflicts(*names) - @conflicts += names + @conflicts += names.map { |n| {:gem => n} } + end + + def add_conflict(name, *req) + @conflicts << {:gem => name, :requirements => req.empty? ? nil : req} end def self.bin=(bin) @@ -328,7 +332,10 @@ module MRuby end end - cfls = g.conflicts.select { |c| gem_table.key? c } + cfls = g.conflicts.select { |c| + cfl_g = gem_table[c[:gem]] + cfl_g and cfl_g.version_ok?(c[:requirements] || ['>= 0.0.0']) + }.map { |c| "#{c[:gem]}(#{gem_table[c[:gem]].version})" } fail "Conflicts of gem `#{g.name}` found: #{cfls.join ', '}" unless cfls.empty? end -- cgit v1.2.3