From 9a64daf2a360a83761218828106ed7121f1b15c3 Mon Sep 17 00:00:00 2001 From: Norman Clarke Date: Fri, 27 Apr 2012 13:46:28 -0300 Subject: [PATCH] Remove cruft from Rakefile and gemspec --- .yardopts | 26 +++- doc-src/CHANGELOG.md => CHANGELOG.md | 0 doc-src/FAQ.md => FAQ.md | 0 doc-src/REFERENCE.md => REFERENCE.md | 0 Rakefile | 213 +++------------------------ haml.gemspec | 42 +++--- 6 files changed, 58 insertions(+), 223 deletions(-) rename doc-src/CHANGELOG.md => CHANGELOG.md (100%) rename doc-src/FAQ.md => FAQ.md (100%) rename doc-src/REFERENCE.md => REFERENCE.md (100%) diff --git a/.yardopts b/.yardopts index c1c79a19..7b07bc8e 100644 --- a/.yardopts +++ b/.yardopts @@ -1,11 +1,23 @@ ---readme README.md ---markup markdown ---markup-provider maruku ---default-return "" ---title "Haml Documentation" ---query 'object.type != :classvariable' ---query 'object.type != :constant || @api && @api.text == "public"' +--charset utf-8 +--readme README.md +--markup markdown +--markup-provider maruku +--template-path yard +--default-return "" +--title "Haml Documentation" +--query 'object.type != :classvariable' +--query 'object.type != :constant || @api && @api.text == "public"' +--exclude lib/haml/template/patch.rb +--exclude lib/haml/template/plugin.rb +--exclude lib/haml/railtie.rb +--exclude lib/haml/helpers/action_view_mods.rb +--exclude lib/haml/helpers/xss_mods.rb --hide-void-return --protected --no-private --no-highlight +- +FAQ.md +CHANGELOG.md +REFERENCE.md +MIT-LICENSE diff --git a/doc-src/CHANGELOG.md b/CHANGELOG.md similarity index 100% rename from doc-src/CHANGELOG.md rename to CHANGELOG.md diff --git a/doc-src/FAQ.md b/FAQ.md similarity index 100% rename from doc-src/FAQ.md rename to FAQ.md diff --git a/doc-src/REFERENCE.md b/REFERENCE.md similarity index 100% rename from doc-src/REFERENCE.md rename to REFERENCE.md diff --git a/Rakefile b/Rakefile index 9ac79b02..711e3e00 100644 --- a/Rakefile +++ b/Rakefile @@ -1,133 +1,27 @@ -# ----- Utility Functions ----- +require "rake/clean" +require 'rake/testtask' +require 'rubygems/package_task' + +CLEAN << %w(pkg doc coverage .yardoc) def scope(path) File.join(File.dirname(__FILE__), path) end -# ----- Benchmarking ----- - -desc < :"test:rails_compatibility" -else - task :default => :test -end - -require 'rake/testtask' - Rake::TestTask.new do |t| t.libs << 'lib' - test_files = FileList[scope('test/**/*_test.rb')] - test_files.exclude(scope('test/rails/*')) - test_files.exclude(scope('test/plugins/*')) - test_files.exclude(scope('test/haml-spec/*')) - t.test_files = test_files + t.test_files = Dir["test/**/*_test.rb"].reject {|x| x =~ /haml-spec/} t.verbose = true end -Rake::Task[:test].send(:add_comment, < [:revision_file, :submodules, :permissions] do - version = get_version - File.open(scope('VERSION'), 'w') {|f| f.puts(version)} - load scope('haml.gemspec') - Gem::Builder.new(HAML_GEMSPEC).build - sh %{git checkout VERSION} - - pkg = "#{HAML_GEMSPEC.name}-#{HAML_GEMSPEC.version}" - mkdir_p "pkg" - verbose(true) {mv "#{pkg}.gem", "pkg/#{pkg}.gem"} - - sh %{rm -f pkg/#{pkg}.tar.gz} - verbose(false) {HAML_GEMSPEC.files.each {|f| sh %{tar rf pkg/#{pkg}.tar #{f}}}} - sh %{gzip pkg/#{pkg}.tar} -end - -task :permissions do - sh %{chmod -R a+rx bin} - sh %{chmod -R a+r .} - require 'shellwords' - Dir.glob('test/**/*_test.rb') do |file| - next if file =~ %r{^test/haml-spec/} - sh %{chmod a+rx #{file}} - end -end - -task :revision_file do - require scope('lib/haml') - - release = Rake.application.top_level_tasks.include?('release') || File.exist?(scope('EDGE_GEM_VERSION')) - if Haml.version[:rev] && !release - File.open(scope('REVISION'), 'w') { |f| f.puts Haml.version[:rev] } - elsif release - File.open(scope('REVISION'), 'w') { |f| f.puts "(release)" } - else - File.open(scope('REVISION'), 'w') { |f| f.puts "(unknown)" } - end -end - -# We also need to get rid of this file after packaging. -at_exit { File.delete(scope('REVISION')) rescue nil } - -desc "Install Haml as a gem. Use SUDO=1 to install with sudo." -task :install => [:package] do - gem = RUBY_PLATFORM =~ /java/ ? 'jgem' : 'gem' - sh %{#{'sudo ' if ENV["SUDO"]}#{gem} install --no-ri pkg/haml-#{get_version}} -end - -desc "Release a new Haml package to Rubyforge." -task :release => [:check_release, :package] do - name = File.read(scope("VERSION_NAME")).strip - version = File.read(scope("VERSION")).strip - sh %{rubyforge add_release haml haml "#{name} (v#{version})" pkg/haml-#{version}.gem} - sh %{rubyforge add_file haml haml "#{name} (v#{version})" pkg/haml-#{version}.tar.gz} - sh %{gem push pkg/haml-#{version}.gem} -end - - -# Ensures that the VERSION file has been updated for a new release. -task :check_release do - version = File.read(scope("VERSION")).strip - raise "There have been changes since current version (#{version})" if changed_since?(version) - raise "VERSION_NAME must not be 'Bleeding Edge'" if File.read(scope("VERSION_NAME")) == "Bleeding Edge" -end - -# Reads a password from the command line. -# -# @param name [String] The prompt to use to read the password -def read_password(prompt) - require 'readline' - system "stty -echo" - Readline.readline("#{prompt}: ").strip -ensure - system "stty echo" - puts -end - -# Returns whether or not the repository, or specific files, -# has/have changed since a given revision. -# -# @param rev [String] The revision to check against -# @param files [Array] The files to check. -# If this is empty, checks the entire repository -def changed_since?(rev, *files) - IO.popen("git diff --exit-code #{rev} #{files.join(' ')}") {} - return !$?.success? +gemspec = File.expand_path("../haml.gemspec", __FILE__) +if File.exist? gemspec + Gem::PackageTask.new(eval(File.read(gemspec))) { |pkg| } end task :submodules do @@ -137,95 +31,26 @@ task :submodules do end end -task :release_edge do - ensure_git_cleanup do - puts "#{'=' * 50} Running rake release_edge" - - sh %{git checkout master} - sh %{git reset --hard origin/master} - sh %{rake package} - version = get_version - sh %{rubyforge add_release haml haml "Bleeding Edge (v#{version})" pkg/haml-#{version}.gem} - sh %{gem push pkg/haml-#{version}.gem} - end -end - -# Get the version string. If this is being installed from Git, -# this includes the proper prerelease version. -def get_version - written_version = File.read(scope('VERSION').strip) - return written_version unless File.exist?(scope('.git')) - - # Get the current master branch version - version = written_version.split('.') - version.map! {|n| n =~ /^[0-9]+$/ ? n.to_i : n} - return written_version unless version.size == 5 && version[3] == "alpha" # prerelease - - return written_version if (commit_count = `git log --pretty=oneline --first-parent stable.. | wc -l`).empty? - version[4] = commit_count.strip - version.join('.') -end - -task :watch_for_update do - sh %{ruby extra/update_watch.rb} -end - -# ----- Documentation ----- - -task :rdoc do - puts '=' * 100, < :yard - task :redoc => :yard rescue LoadError - desc "Generate Documentation" - task :doc => :rdoc - task :yard => :rdoc end task :pages do @@ -287,7 +112,7 @@ END Haml::Engine.new(file).def_method(obj, :render) result = RubyProf.profile { times.times { obj.render } } - RubyProf.const_get("#{(ENV['OUTPUT'] || 'Flat').capitalize}Printer").new(result).print + RubyProf.const_get("#{(ENV['OUTPUT'] || 'Flat').capitalize}Printer").new(result).print end rescue LoadError; end diff --git a/haml.gemspec b/haml.gemspec index d0da089f..db66f3a9 100644 --- a/haml.gemspec +++ b/haml.gemspec @@ -1,19 +1,17 @@ -require 'rubygems' +Gem::Specification.new do |spec| + spec.name = 'haml' + spec.summary = "An elegant, structured (X)HTML/XML templating engine." + spec.version = File.read(File.dirname(__FILE__) + '/VERSION').strip + spec.authors = ['Nathan Weizenbaum', 'Hampton Catlin', 'Norman Clarke'] + spec.email = ['haml@googlegroups.com', 'norman@njclarke.com'] -HAML_GEMSPEC = Gem::Specification.new do |spec| - spec.name = 'haml' - spec.summary = "An elegant, structured XHTML/XML templating engine." - spec.version = File.read(File.dirname(__FILE__) + '/VERSION').strip - spec.authors = ['Nathan Weizenbaum', 'Hampton Catlin', 'Norman Clarke'] - spec.email = ['haml@googlegroups.com', 'norman@njclarke.com'] - spec.description = <<-END - Haml (HTML Abstraction Markup Language) is a layer on top of XHTML or XML - that's designed to express the structure of (X)HTML or XML documents in a - non-repetitive, elegant, easy way, using indentation rather than closing - tags and allowing Ruby to be embedded with ease. It was originally - envisioned as a plugin for Ruby on Rails, but it can function as a - stand-alone templating engine. - END + readmes = Dir['*'].reject{ |x| x =~ /(^|[^.a-z])[a-z]+/ || x == "TODO" } + spec.executables = ['haml', 'html2haml'] + spec.files = Dir['rails/init.rb', 'lib/**/*', 'bin/*', 'test/**/*', + 'extra/**/*', 'Rakefile', 'init.rb', '.yardopts'] + readmes + spec.homepage = 'http://haml-lang.com/' + spec.has_rdoc = false + spec.test_files = Dir["test/**/*_test.rb"].reject {|x| x =~ /haml-spec/} spec.add_development_dependency 'yard', '>= 0.5.3' spec.add_development_dependency 'maruku', '>= 0.5.9' @@ -22,11 +20,11 @@ HAML_GEMSPEC = Gem::Specification.new do |spec| spec.add_development_dependency 'rails' spec.add_development_dependency 'ruby_parser' - readmes = Dir['*'].reject{ |x| x =~ /(^|[^.a-z])[a-z]+/ || x == "TODO" } - spec.executables = ['haml', 'html2haml'] - spec.files = Dir['rails/init.rb', 'lib/**/*', 'bin/*', 'test/**/*', - 'extra/**/*', 'Rakefile', 'init.rb', '.yardopts'] + readmes - spec.homepage = 'http://haml-lang.com/' - spec.has_rdoc = false - spec.test_files = Dir['test/**/*_test.rb'] + spec.description = <<-END +Haml (HTML Abstraction Markup Language) is a layer on top of HTML or XML that's +designed to express the structure of documents in a non-repetitive, elegant, and +easy way by using indentation rather than closing tags and allowing Ruby to be +embedded with ease. It was originally envisioned as a plugin for Ruby on Rails, +but it can function as a stand-alone templating engine. +END end