lib/inochi/tasks/4-gem.rake in inochi-5.1.0 vs lib/inochi/tasks/4-gem.rake in inochi-6.0.0

- old
+ new

@@ -1,7 +1,16 @@ -desc 'Build release package for RubyGems.' -task :gem do +@gem_spec_dst = @project_package_name + '.gemspec' +@gem_spec_src = FileList[ + '{bin,lib,ext}/**/*', + 'LICENSE', + @man_roff_dst +] + +desc 'Build RubyGems package specification.' +task 'gem:spec' => @gem_spec_dst + +file @gem_spec_dst => @gem_spec_src do Rake::Task[:@ann_nfo_text].invoke Rake::Task[:@project_authors_text].invoke # ensure that project version matches release notes Rake::Task[:@ann_rel_html_body_nodes].invoke @@ -22,35 +31,34 @@ gem.summary = @project_module::TAGLINE gem.description = @ann_nfo_text gem.homepage = @project_module::WEBSITE gem.authors = @project_authors_text.split(/\s*,\s*/) gem.executables = FileList['bin/*'].pathmap('%f') + gem.files = @gem_spec_src - Rake::Task[:man].invoke - gem.files = FileList[ - '{bin,lib,ext}/**/*', - 'LICENSE', - 'CREDITS', - @man_roff_dst - ] - - @project_module::DEVTIME.each do |gem_name, gem_version| - gem.add_development_dependency gem_name, *Array(gem_version) - end - - @project_module::RUNTIME.each do |gem_name, gem_version| + @project_module::GEMDEPS.each do |gem_name, gem_version| gem.add_dependency gem_name, *Array(gem_version) end # allow user to configure the gem before it is built if logic = @project_config[:gem_spec_logic] and not logic.empty? eval logic, binding, "#{PROJECT_CONFIG_FILE} in :gem_spec_logic" end # emit gemspec - File.write @project_gem_file + 'spec', gem.to_ruby + File.write @gem_spec_dst, gem.to_ruby. + sub('Gem::Specification.new', 'gemspec = \&'). + sub(/\Z/, "\nsystem 'inochi', *gemspec.files\ngemspec") - # build gem - Gem::Builder.new(gem).build + @gem_spec = gem end -CLOBBER.include '*.gem', '*.gemspec' +CLOBBER.include @gem_spec_dst + +desc 'Build release package for RubyGems.' +task :gem => @project_gem_file + +file @project_gem_file => @gem_spec_dst do + Gem::Builder.new(@gem_spec).build +end + +CLOBBER.include @project_gem_file