lib/packnga/release-task.rb in packnga-0.9.7 vs lib/packnga/release-task.rb in packnga-0.9.8

- old
+ new

@@ -48,15 +48,15 @@ define_tasks end private def html_base_dir - @base_dir + "html" + File.join(@base_dir, "html") end def html_reference_dir - html_base_dir + @spec.name + File.join(html_base_dir, @spec.name) end def set_default_values @index_html_dir ||= "doc/html" @base_dir ||= Pathname.new("doc") @@ -66,50 +66,65 @@ end def define_tasks namespace :release do define_info_task + define_reference_upload_task define_tag_task end end def define_info_task namespace :info do desc "Update version in index HTML." task :update do - old_version = ENV["OLD_VERSION"] - old_release_date = ENV["OLD_RELEASE_DATE"] - new_release_date = ENV["RELEASE_DATE"] || Time.now.strftime("%Y-%m-%d") - new_version = ENV["VERSION"] - - empty_options = [] - empty_options << "OLD_VERSION" if old_version.nil? - empty_options << "OLD_RELEASE_DATE" if old_release_date.nil? - - unless empty_options.empty? - raise ArgumentError, "Specify option(s) of #{empty_options.join(", ")}." - end @index_html_dir = Pathname(@index_html_dir) - indexes = [@index_html_dir + "index.html", @index_html_dir + "ja/index.html"] + indexes = [ + @index_html_dir + "index.html", + @index_html_dir + "ja/index.html" + ] indexes.each do |index| content = replaced_content = File.read(index) - [[old_version, new_version], - [old_release_date, new_release_date]].each do |old, new| - replaced_content = replaced_content.gsub(/#{Regexp.escape(old)}/, new) - if /\./ =~ old - old_underscore = old.gsub(/\./, '-') - new_underscore = new.gsub(/\./, '-') - replaced_content = - replaced_content.gsub(/#{Regexp.escape(old_underscore)}/, - new_underscore) - end + package_infos.each do |key, (old, new)| + next if old == new + old_regexp = /#{Regexp.escape(old)}/ + replaced_content = replaced_content.gsub(old_regexp, new) end - next if replaced_content == content File.open(index, "w") do |output| output.print(replaced_content) end end + end + end + end + + def package_infos + old_version = ENV["OLD_VERSION"] + old_release_date = ENV["OLD_RELEASE_DATE"] + new_release_date = ENV["RELEASE_DATE"] || Time.now.strftime("%Y-%m-%d") + new_version = ENV["VERSION"] || @spec.version.to_s + + empty_options = [] + empty_options << "OLD_VERSION" if old_version.nil? + empty_options << "OLD_RELEASE_DATE" if old_release_date.nil? + empty_options << "VERSION" if new_version.empty? + + unless empty_options.empty? + raise ArgumentError, "Specify option(s) of #{empty_options.join(", ")}." + end + + { + :version => [old_version, new_version], + :release_date => [old_release_date, new_release_date] + } + end + + def define_reference_upload_task + namespace :references do + desc "Copy references to reference html directory." + task :upload do + cp_r(html_reference_dir, @index_html_dir) end end end def define_tag_task