D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
opt
/
td-agent
/
embedded
/
lib
/
ruby
/
gems
/
2.1.0
/
gems
/
kramdown-1.13.2
/
Filename :
Rakefile
back
Copy
# -*- ruby -*- # load all optional developer libraries begin require 'rubygems' require 'rubygems/package_task' rescue LoadError end begin require 'webgen/page' rescue LoadError end begin gem 'rdoc' if RUBY_VERSION >= '1.9' require 'rdoc/task' require 'rdoc/rdoc' class RDoc::RDoc alias :old_parse_files :parse_files def parse_files(options) file_info = old_parse_files(options) require 'kramdown/options' # Add options documentation to Kramdown::Options module opt_module = @store.all_classes_and_modules.find {|m| m.full_name == 'Kramdown::Options'} opt_defs = Kramdown::Options.definitions.sort.collect do |n, definition| desc = definition.desc.split(/\n/).map {|l| " #{l}"} desc[-2] = [] desc = desc.join("\n") "[<tt>#{n}</tt> (type: #{definition.type}, default: #{definition.default.inspect})]\n#{desc}\n\n" end opt_module.comment.text += "\n== Available Options\n\n" << opt_defs.join("\n\n") file_info end end rescue LoadError end begin require 'rcov/rcovtask' rescue LoadError end require 'fileutils' require 'rake/clean' require 'rake/testtask' require 'rake/packagetask' require 'erb' $:.unshift('lib') require 'kramdown' # End user tasks ################################################################ task :default => :test desc "Install using setup.rb" task :install do ruby "setup.rb config" ruby "setup.rb setup" ruby "setup.rb install" end task :clobber do ruby "setup.rb clean" end if defined?(Webgen) desc "Generate the HTML documentation" task :htmldoc do ruby "-Ilib -S webgen" end CLOBBER << "htmldoc/" CLOBBER << "webgen-tmp" end if defined? RDoc::Task rd = RDoc::Task.new do |rdoc| rdoc.rdoc_dir = 'htmldoc/rdoc' rdoc.title = 'kramdown' rdoc.main = 'lib/kramdown/document.rb' rdoc.rdoc_files.include('lib') end end if defined?(Webgen) && defined?(RDoc::Task) desc "Build the whole user documentation" task :doc => [:rdoc, 'htmldoc'] end tt = Rake::TestTask.new do |test| test.warning = false test.libs << 'test' test.test_files = FileList['test/test_*.rb'] end # Release tasks and development tasks ############################################ namespace :dev do SUMMARY = 'kramdown is a fast, pure-Ruby Markdown-superset converter.' DESCRIPTION = <<EOF kramdown is yet-another-markdown-parser but fast, pure Ruby, using a strict syntax definition and supporting several common extensions. EOF begin REL_PAGE = Webgen::Page.from_data(File.read('doc/news/release_' + Kramdown::VERSION.split('.').join('_') + '.page')) rescue puts 'NO RELEASE NOTES/CHANGES FILE' end PKG_FILES = FileList.new([ 'Rakefile', 'setup.rb', 'COPYING', 'README.md', 'AUTHORS', 'VERSION', 'CONTRIBUTERS', 'bin/*', 'benchmark/*', 'lib/**/*.rb', 'man/man1/kramdown.1', 'data/**/*', 'doc/**', 'test/**/*' ]) CLOBBER << "VERSION" file 'VERSION' do puts "Generating VERSION file" File.open('VERSION', 'w+') {|file| file.write(Kramdown::VERSION + "\n")} end CLOBBER << 'CONTRIBUTERS' file 'CONTRIBUTERS' do puts "Generating CONTRIBUTERS file" `echo " Count Name" > CONTRIBUTERS` `echo "======= ====" >> CONTRIBUTERS` `git log | grep ^Author: | sed 's/^Author: //' | sort | uniq -c | sort -nr >> CONTRIBUTERS` end CLOBBER << "man/man1/kramdown.1" file 'man/man1/kramdown.1' => ['man/man1/kramdown.1.erb'] do puts "Generating kramdown man page" File.open('man/man1/kramdown.1', 'w+') do |file| data = ERB.new(File.read('man/man1/kramdown.1.erb')).result(binding) file.write(Kramdown::Document.new(data).to_man) end end Rake::PackageTask.new('kramdown', Kramdown::VERSION) do |pkg| pkg.need_tar = true pkg.need_zip = true pkg.package_files = PKG_FILES end if defined? Gem spec = Gem::Specification.new do |s| #### Basic information s.name = 'kramdown' s.version = Kramdown::VERSION s.summary = SUMMARY s.description = DESCRIPTION s.license = 'MIT' #### Dependencies, requirements and files s.files = PKG_FILES.to_a s.require_path = 'lib' s.executables = ['kramdown'] s.default_executable = 'kramdown' s.add_development_dependency 'minitest', '~> 5.0' s.add_development_dependency 'coderay', '~> 1.0.0' s.add_development_dependency 'rouge', '~> 1.8' s.add_development_dependency 'stringex', '~> 1.5.1' s.add_development_dependency 'prawn', '~> 2.0' s.add_development_dependency 'prawn-table', '~> 0.2.2' s.add_development_dependency 'ritex', '~> 1.0' s.add_development_dependency 'itextomml', '~> 1.5' #### Documentation s.has_rdoc = true s.rdoc_options = ['--main', 'lib/kramdown/document.rb'] #### Author and project details s.author = 'Thomas Leitner' s.email = 't_leitner@gmx.at' s.homepage = "http://kramdown.gettalong.org" end task :gemspec => [ 'CONTRIBUTERS', 'VERSION', 'man/man1/kramdown.1'] do print "Generating Gemspec\n" contents = spec.to_ruby File.open("kramdown.gemspec", 'w+') {|f| f.puts(contents)} end Gem::PackageTask.new(spec) do |pkg| pkg.need_zip = true pkg.need_tar = true end end if defined?(Webgen) && defined?(Gem) && defined?(Rake::RDocTask) desc 'Release Kramdown version ' + Kramdown::VERSION task :release => [:clobber, :package, :publish_files, :publish_website] end if defined?(Gem) desc "Upload the release to Rubygems" task :publish_files => [:package] do sh "gem push pkg/kramdown-#{Kramdown::VERSION}.gem" puts 'done' end end desc "Upload the website" task :publish_website => ['doc'] do puts "Transfer manually!!!" # sh "rsync -avc --delete --exclude 'MathJax' --exclude 'robots.txt' htmldoc/ gettalong@rubyforge.org:/var/www/gforge-projects/kramdown/" end if defined? Rcov Rcov::RcovTask.new do |rcov| rcov.libs << 'test' end end CODING_LINE = "# -*- coding: utf-8 -*-\n" COPYRIGHT=<<EOF # #-- # Copyright (C) 2009-2016 Thomas Leitner <t_leitner@gmx.at> # # This file is part of kramdown which is licensed under the MIT. #++ # EOF desc "Insert/Update copyright notice" task :update_copyright do inserted = false Dir["lib/**/*.rb", "test/**/*.rb"].each do |file| if !File.read(file).start_with?(CODING_LINE + COPYRIGHT) inserted = true puts "Updating file #{file}" old = File.read(file) if !old.gsub!(/\A#{Regexp.escape(CODING_LINE)}#\n#--.*?\n#\+\+\n#\n/m, CODING_LINE + COPYRIGHT) old.gsub!(/\A(#{Regexp.escape(CODING_LINE)})?/, CODING_LINE + COPYRIGHT + "\n") end File.open(file, 'w+') {|f| f.puts(old)} end end puts "Look through the above mentioned files and correct all problems" if inserted end end task :gemspec => ['dev:gemspec'] task :clobber => ['dev:clobber']