ruby-changes:20794
From: nobu <ko1@a...>
Date: Thu, 4 Aug 2011 16:09:02 +0900 (JST)
Subject: [ruby-changes:20794] nobu:r32842 (trunk): * tool/rbinstall.rb (gem): install all gemspecs under lib and ext.
nobu 2011-08-04 16:08:48 +0900 (Thu, 04 Aug 2011) New Revision: 32842 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=32842 Log: * tool/rbinstall.rb (gem): install all gemspecs under lib and ext. Modified files: trunk/ChangeLog trunk/defs/default_gems trunk/tool/rbinstall.rb Index: defs/default_gems =================================================================== --- defs/default_gems (revision 32841) +++ defs/default_gems (revision 32842) @@ -3,6 +3,3 @@ rdoc lib/rdoc.rb [rdoc ri] minitest lib/minitest/unit.rb json ext/json/lib/json/version.rb -io-console ext/io/console/io-console.gemspec -bigdecimal ext/bigdecimal/bigdecimal.gemspec -psych ext/psych/psych.gemspec Index: ChangeLog =================================================================== --- ChangeLog (revision 32841) +++ ChangeLog (revision 32842) @@ -1,5 +1,7 @@ -Thu Aug 4 15:44:10 2011 Nobuyoshi Nakada <nobu@r...> +Thu Aug 4 16:08:45 2011 Nobuyoshi Nakada <nobu@r...> + * tool/rbinstall.rb (gem): install all gemspecs under lib and ext. + * tool/rbinstall.rb (Gem::Specification): may not be defined when cross-compiling and BASERUBY is 1.8. Index: tool/rbinstall.rb =================================================================== --- tool/rbinstall.rb (revision 32841) +++ tool/rbinstall.rb (revision 32842) @@ -556,7 +556,7 @@ module RbInstall module Specs - class Reader < Struct.new(:name, :src, :execs) + class Reader < Struct.new(:src) def gemspec @gemspec ||= begin Gem::Specification.load(src) || raise("invalid spec in #{src}") @@ -592,10 +592,6 @@ version.split(%r"=\s*", 2)[1].strip[/\A([\'\"])(.*?)\1/, 2] end end - - def self.generator_for(file) - File.extname(file) == '.gemspec' ? Reader : Generator - end end end # :startdoc: @@ -608,6 +604,7 @@ prepare "default gems", gem_dir, directories spec_dir = File.join(gem_dir, directories.grep(/^spec/)[0]) + gems = {} File.foreach(File.join(srcdir, "defs/default_gems")) do |line| line.chomp! line.sub!(/\s*#.*/, '') @@ -620,7 +617,16 @@ next unless name and src src = File.join(srcdir, src) - specgen = RbInstall::Specs.generator_for(src).new(name, src, execs || []) + specgen = RbInstall::Specs::Generator.new(name, src, execs || []) + gems[name] ||= specgen + end + + Dir.glob(srcdir+"/{lib,ext}/**/*.gemspec").each do |src| + specgen = RbInstall::Specs::Reader.new(src) + gems[specgen.gemspec.name] ||= specgen + end + + gems.sort.each do |name, specgen| gemspec = specgen.gemspec full_name = "#{gemspec.name}-#{gemspec.version}" -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/