summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-08-04 07:08:48 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-08-04 07:08:48 +0000
commit5f3a8912f770d0a629a744364217c8478cab96bd (patch)
treea25301dd90cbfabd8205a53a0e308f922a10a18c
parentf555a533d05b48ff3f6062ffa4a559613d12408d (diff)
* tool/rbinstall.rb (gem): install all gemspecs under lib and ext.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32842 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog4
-rw-r--r--defs/default_gems3
-rwxr-xr-xtool/rbinstall.rb18
3 files changed, 15 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog
index 0d9dfbe82e..6a5b079d28 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,6 @@
-Thu Aug 4 15:44:10 2011 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu Aug 4 16:08:45 2011 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * 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.
diff --git a/defs/default_gems b/defs/default_gems
index 6888089c54..6c1788d3f5 100644
--- a/defs/default_gems
+++ b/defs/default_gems
@@ -3,6 +3,3 @@ rake lib/rake/version.rb [rake]
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
diff --git a/tool/rbinstall.rb b/tool/rbinstall.rb
index 64619fb8a6..399ca67559 100755
--- a/tool/rbinstall.rb
+++ b/tool/rbinstall.rb
@@ -556,7 +556,7 @@ end
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 @@ end
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 @@ install?(:ext, :comm, :gem) do
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 @@ install?(:ext, :comm, :gem) do
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}"