Rakefile in rmagick-2.13.4 vs Rakefile in rmagick-2.14.0

- old
+ new

@@ -1,77 +1,81 @@ +require 'simplecov' require './lib/rmagick/version' require 'fileutils' +require 'English' + task :config do def version Magick::VERSION end # e.g. 2.13.3 becomes RMagick_2-13-3 def version_tag - "RMagick_#{version.gsub(".","-")}" + "RMagick_#{version.gsub('.','-')}" end # e.g. 2.13.3 becomes rmagick-2.13.3.gem def gem_name "rmagick-#{version}.gem" end + def base File.expand_path('..', __FILE__) end end -desc "abort when repo nto clean or has uncommited code" +desc 'abort when repo nto clean or has uncommited code' task :assert_clean_repo do - sh("git diff --exit-code") - abort "Git repo not clean" unless $?.success? - sh("git diff-index --quiet --cached HEAD") - abort "Git repo not commited" unless $?.success? + sh('git diff --exit-code') + abort 'Git repo not clean' unless $CHILD_STATUS.success? + sh('git diff-index --quiet --cached HEAD') + abort 'Git repo not commited' unless $CHILD_STATUS.success? end -desc "build gem" +desc 'build gem' task :build => [:config] do - sh "gem build -V rmagick.gemspec" - if $?.success? + sh 'gem build -V rmagick.gemspec' + if $CHILD_STATUS.success? FileUtils.mkdir_p(File.join(base, 'pkg')) FileUtils.mv(File.join(base, gem_name), 'pkg') else - STDERR.puts "Could not build gem" - exit $?.exitstatus + STDERR.puts 'Could not build gem' + exit $CHILD_STATUS.exitstatus end end task :push_and_tag => [:build] do sh "gem push #{File.join(base, 'pkg', gem_name)}" - if $?.success? + if $CHILD_STATUS.success? sh "git tag -a -m \"Version #{version}\" #{version_tag}" STDOUT.puts "Tagged #{version_tag}." - sh "git push" - sh "git push --tags" + sh 'git push' + sh 'git push --tags' else - abort "tagging aborted pushing gem failed" + abort 'tagging aborted pushing gem failed' end end -desc "Release" +desc 'Release' task :release => [:assert_clean_repo, :push_and_tag] -desc "Release and build the legacy way" -task :legacy_release=> ["legacy:README.html", "legacy:extconf", "legacy:doc", "legacy:manifest", "release"] +desc 'Release and build the legacy way' +task :legacy_release=> ['legacy:README.html', 'legacy:extconf', 'legacy:doc', 'legacy:manifest', 'release'] namespace :legacy do require 'find' task :redcloth do require 'redcloth' end - README = "README.html" - MANIFEST = "ext/RMagick/MANIFEST" + README = 'README.html' + MANIFEST = 'ext/RMagick/MANIFEST' # Change the version number placeholders in a file. # Returns an array of lines from the file. def reversion(name) now = Time.new - now = now.strftime("%m/%d/%y") + now = now.strftime('%m/%d/%y') lines = File.readlines name lines.each do |line| line.gsub!(%r{0\.0\.0}, Magick::VERSION) line.gsub!(%r{YY/MM/DD}, now) @@ -80,86 +84,85 @@ end # Rewrite a file containing embedded version number placeholders. def reversion_file(name) lines = reversion(name) - tmp_name = name + "_tmp" + tmp_name = name + '_tmp' mv name, tmp_name begin - File.open(name, "w") { |f| lines.each { |line| f.write line } } + File.open(name, 'w') { |f| lines.each { |line| f.write line } } rescue mv tmp_name, name ensure rm tmp_name end end - desc "Update version in extconf" + desc 'Update version in extconf' task :extconf do - reversion_file "ext/RMagick/extconf.rb" + reversion_file 'ext/RMagick/extconf.rb' end - desc "Build README.txt from README.textile using RedCloth" - task "README.txt" => [:redcloth] do - reversion_file "README.textile" - body = File.readlines "README.textile" + desc 'Build README.txt from README.textile using RedCloth' + task 'README.txt' => [:redcloth] do + reversion_file 'README.textile' + body = File.readlines 'README.textile' body = RedCloth.new(body.join).to_html + "\n" - File.open("README.txt", "w") { |f| f.write body } + File.open('README.txt', 'w') { |f| f.write body } end - desc "Build README.html from README.txt" - task README => "README.txt" do + desc 'Build README.html from README.txt' + task README => 'README.txt' do puts "writing #{README}" - File.open(README, "w") do |html| + File.open(README, 'w') do |html| html.write <<END_HTML_HEAD <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>RMagick #{Magick::VERSION} README</title> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <meta name="GENERATOR" content="RedCloth"> </head> <body> END_HTML_HEAD - html.write File.readlines("README.txt") + html.write File.readlines('README.txt') html.write <<END_HTML_TAIL </body> </html> END_HTML_TAIL end end - desc "Update versions in html files" + desc 'Update versions in html files' task :doc do - Dir.chdir("doc") do - FileList["*.html"].each { |d| reversion_file(d) } + Dir.chdir('doc') do + FileList['*.html'].each { |d| reversion_file(d) } end end # Remove files we don't want in the tarball. # Ensure files are not executable. (ref: bug #10080) desc "Remove files we don't want in the .gem; ensure files are not executable" task :fix_files do - rm "README.txt", :verbose => true - chmod 0644, FileList["doc/*.html", "doc/ex/*.rb", "doc/ex/images/*", "examples/*.rb"] + rm 'README.txt', :verbose => true + chmod 0644, FileList['doc/*.html', 'doc/ex/*.rb', 'doc/ex/images/*', 'examples/*.rb'] end - desc "Build manifest" + desc 'Build manifest' task :manifest do now = Time.new - now = now.strftime("%H:%M:%S %m/%d/%y") + now = now.strftime('%H:%M:%S %m/%d/%y') puts "generating #{MANIFEST}" - File.open(MANIFEST, "w") do |f| + File.open(MANIFEST, 'w') do |f| f.puts "MANIFEST for #{Magick::VERSION} - #{now}\n\n" Find.find('.') do |name| next if File.directory? name f.puts name[2..-1] # remove leading "./" end end end - end require 'rake/extensiontask' require 'rake/testtask' @@ -171,6 +174,12 @@ t.libs << 'test' end task :test => :compile -task :default => :test +if ENV['STYLE_CHECKS'] + require 'rubocop/rake_task' + RuboCop::RakeTask.new + task :default => [:test, :rubocop] +else + task :default => :test +end