diff options
| author | take_cheeze <[email protected]> | 2014-06-13 01:07:53 +0900 |
|---|---|---|
| committer | take_cheeze <[email protected]> | 2014-06-13 01:07:53 +0900 |
| commit | eebb94410f52c88974390b8240ce5496d08074cc (patch) | |
| tree | aa08eb4b685818955581ae0e00fa71c4a36d3d83 | |
| parent | 6157e508432688fd2172b0969dab6f40735e0012 (diff) | |
| download | mruby-eebb94410f52c88974390b8240ce5496d08074cc.tar.gz mruby-eebb94410f52c88974390b8240ce5496d08074cc.zip | |
Implement `add_conflict`. Usage is similar to `add_dependency`.
| -rw-r--r-- | tasks/mrbgem_spec.rake | 11 |
1 files 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 |
