summaryrefslogtreecommitdiffhomepage
path: root/lib
diff options
context:
space:
mode:
authorTakeshi Watanabe <[email protected]>2018-02-10 23:23:57 +0900
committerTakeshi Watanabe <[email protected]>2018-02-10 23:23:57 +0900
commit3dc8634d86b9abfce4c2eb1d394b6cd0e51fbd15 (patch)
tree7ee17cc610b65336f9ea5dc8adf3feeb87cfee91 /lib
parent79cfa377e16435c4673a58f98267d7117533b17e (diff)
downloadmruby-3dc8634d86b9abfce4c2eb1d394b6cd0e51fbd15.tar.gz
mruby-3dc8634d86b9abfce4c2eb1d394b6cd0e51fbd15.zip
Fix core dependencies resolving in dependencies gems.
Diffstat (limited to 'lib')
-rw-r--r--lib/mruby/gem.rb24
1 files changed, 11 insertions, 13 deletions
diff --git a/lib/mruby/gem.rb b/lib/mruby/gem.rb
index 27a1d358c..3caba92ff 100644
--- a/lib/mruby/gem.rb
+++ b/lib/mruby/gem.rb
@@ -323,20 +323,22 @@ module MRuby
@ary.empty?
end
+ def default_gem_params dep
+ if dep[:default]; dep
+ elsif File.exist? "#{MRUBY_ROOT}/mrbgems/#{dep[:gem]}" # check core
+ { :gem => dep[:gem], :default => { :core => dep[:gem] } }
+ else # fallback to mgem-list
+ { :gem => dep[:gem], :default => { :mgem => dep[:gem] } }
+ end
+ end
+
def generate_gem_table build
gem_table = @ary.reduce({}) { |res,v| res[v.name] = v; res }
default_gems = []
each do |g|
g.dependencies.each do |dep|
- unless gem_table.key? dep[:gem]
- if dep[:default]; default_gems << dep
- elsif File.exist? "#{MRUBY_ROOT}/mrbgems/#{dep[:gem]}" # check core
- default_gems << { :gem => dep[:gem], :default => { :core => dep[:gem] } }
- else # fallback to mgem-list
- default_gems << { :gem => dep[:gem], :default => { :mgem => dep[:gem] } }
- end
- end
+ default_gems << default_gem_params(dep) unless gem_table.key? dep[:gem]
end
end
@@ -348,11 +350,7 @@ module MRuby
spec.setup
spec.dependencies.each do |dep|
- unless gem_table.key? dep[:gem]
- if dep[:default]; default_gems << dep
- else default_gems << { :gem => dep[:gem], :default => { :mgem => dep[:gem] } }
- end
- end
+ default_gems << default_gem_params(dep) unless gem_table.key? dep[:gem]
end
gem_table[spec.name] = spec
end