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