Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

184 lines (147 sloc) 5.656 kb
$:.unshift File.expand_path 'lib'
require 'rdoc'
require 'hoe'
ENV['BENCHMARK'] = 'yes'
task :docs => :generate
task :test => :generate
PARSER_FILES = %w[
lib/rdoc/rd/block_parser.rb
lib/rdoc/rd/inline_parser.rb
lib/rdoc/markdown.rb
lib/rdoc/markdown/literals_1_8.rb
lib/rdoc/markdown/literals_1_9.rb
]
Hoe.plugin :git
Hoe.plugin :kpeg
Hoe.plugin :minitest
Hoe.plugin :travis
$rdoc_rakefile = true
hoe = Hoe.spec 'rdoc' do
developer 'Eric Hodel', 'drbrain@segment7.net'
developer 'Dave Thomas', ''
developer 'Phil Hagelberg', 'technomancy@gmail.com'
developer 'Tony Strauss', 'tony.strauss@designingpatterns.com'
self.rsync_args = '-avz'
rdoc_locations << 'docs.seattlerb.org:/data/www/docs.seattlerb.org/rdoc/'
rdoc_locations << 'drbrain@rubyforge.org:/var/www/gforge-projects/rdoc/'
spec_extras[:post_install_message] = <<-MESSAGE
Depending on your version of ruby, you may need to install ruby rdoc/ri data:
<= 1.8.6 : unsupported
= 1.8.7 : gem install rdoc-data; rdoc-data --install
= 1.9.1 : gem install rdoc-data; rdoc-data --install
>= 1.9.2 : nothing to do! Yay!
MESSAGE
self.licenses << 'Ruby'
self.readme_file = 'README.rdoc'
self.history_file = 'History.rdoc'
self.testlib = :minitest
self.extra_rdoc_files += %w[
CVE-2013-0256.rdoc
CONTRIBUTING.rdoc
ExampleMarkdown.md
ExampleRDoc.rdoc
History.rdoc
LEGAL.rdoc
LICENSE.rdoc
README.rdoc
RI.rdoc
TODO.rdoc
]
self.clean_globs += PARSER_FILES
self.kpeg_flags = '-fsv' if self.respond_to? :kpeg_flags= # no plugin
require_ruby_version '>= 1.8.7'
extra_deps << ['json', '~> 1.4']
extra_dev_deps << ['racc', '~> 1.4', '> 1.4.10']
extra_dev_deps << ['minitest', '~> 4']
extra_rdoc_files << 'Rakefile'
spec_extras['required_rubygems_version'] = '>= 1.3'
spec_extras['homepage'] = 'http://docs.seattlerb.org/rdoc'
end
hoe.test_prelude = 'gem "minitest", "~> 4.0"'
def rake(*args)
sh $0, *args
end
need_racc = PARSER_FILES.any? do |rb_file|
ry_file = rb_file.gsub(/\.rb\z/, ".ry")
not File.exist?(rb_file) or
(File.exist?(ry_file) and File.mtime(rb_file) < File.mtime(ry_file))
end
if need_racc
Rake::Task["default"].prerequisites.clear
task :default do
rake "check_extra_deps"
rake "install_plugins"
rake "newb"
end
end
Rake::Task['docs'].actions.clear
task :docs do
$LOAD_PATH.unshift 'lib'
require 'rdoc'
options = RDoc::Options.new
options.title = "rdoc #{RDoc::VERSION} Documentation"
options.op_dir = 'doc'
options.main_page = 'README.rdoc'
options.files = hoe.spec.extra_rdoc_files + %w[lib]
options.setup_generator 'darkfish'
RDoc::RDoc.new.document options
end
# requires ruby 1.8 and ruby 1.8 to build
hoe.clean_globs -= PARSER_FILES.grep(/literals_/)
task :generate => :isolate
task :generate => PARSER_FILES
task :check_manifest => :generate
rule '.rb' => '.ry' do |t|
racc = Gem.bin_path 'racc', 'racc'
ruby "-rubygems #{racc} -l -o #{t.name} #{t.source}"
end
path = "pkg/#{hoe.spec.full_name}"
package_parser_files = PARSER_FILES.map do |parser_file|
package_parser_file = "#{path}/#{parser_file}"
file package_parser_file => parser_file # ensure copy runs before racc
package_parser_file
end
task "#{path}.gem" => package_parser_files
# These tasks expect to have the following directory structure:
#
# git/git.rubini.us/code # Rubinius git HEAD checkout
# svn/ruby/trunk # ruby subversion HEAD checkout
# svn/rdoc/trunk # RDoc subversion HEAD checkout
#
# If you don't have this directory structure, set RUBY_PATH and/or
# RUBINIUS_PATH.
diff_options = "-urpN --exclude '*svn*' --exclude '*swp' --exclude '*rbc'"
rsync_options = "-avP --exclude '*svn*' --exclude '*swp' --exclude '*rbc' --exclude '*.rej' --exclude '*.orig' --exclude '*.kpeg' --exclude '*.ry' --exclude 'literals_1_8.rb' --exclude 'gauntlet_rdoc.rb'"
rubinius_dir = ENV['RUBINIUS_PATH'] || '../../../git/git.rubini.us/code'
ruby_dir = ENV['RUBY_PATH'] || '../../svn/ruby/trunk'
desc "Updates Ruby HEAD with the currently checked-out copy of RDoc."
task :update_ruby do
sh "rsync #{rsync_options} bin/rdoc #{ruby_dir}/bin/rdoc"
sh "rsync #{rsync_options} bin/ri #{ruby_dir}/bin/ri"
sh "rsync #{rsync_options} lib/ #{ruby_dir}/lib"
sh "rsync #{rsync_options} test/ #{ruby_dir}/test/rdoc"
end
desc "Diffs Ruby HEAD with the currently checked-out copy of RDoc."
task :diff_ruby do
options = "-urpN --exclude '*svn*' --exclude '*swp' --exclude '*rbc'"
sh "diff #{diff_options} bin/rdoc #{ruby_dir}/bin/rdoc; true"
sh "diff #{diff_options} bin/ri #{ruby_dir}/bin/ri; true"
sh "diff #{diff_options} lib/rdoc.rb #{ruby_dir}/lib/rdoc.rb; true"
sh "diff #{diff_options} lib/rdoc #{ruby_dir}/lib/rdoc; true"
sh "diff #{diff_options} test #{ruby_dir}/test/rdoc; true"
end
desc "Updates Rubinius HEAD with the currently checked-out copy of RDoc."
task :update_rubinius do
sh "rsync #{rsync_options} bin/rdoc #{rubinius_dir}/lib/bin/rdoc.rb"
sh "rsync #{rsync_options} bin/ri #{rubinius_dir}/lib/bin/ri.rb"
sh "rsync #{rsync_options} lib/ #{rubinius_dir}/lib"
sh "rsync #{rsync_options} test/ #{rubinius_dir}/test/rdoc"
end
desc "Diffs Rubinius HEAD with the currently checked-out copy of RDoc."
task :diff_rubinius do
sh "diff #{diff_options} bin/rdoc #{rubinius_dir}/lib/bin/rdoc.rb; true"
sh "diff #{diff_options} bin/ri #{rubinius_dir}/lib/bin/ri.rb; true"
sh "diff #{diff_options} lib/rdoc.rb #{rubinius_dir}/lib/rdoc.rb; true"
sh "diff #{diff_options} lib/rdoc #{rubinius_dir}/lib/rdoc; true"
sh "diff #{diff_options} test #{rubinius_dir}/test/rdoc; true"
end
Jump to Line
Something went wrong with that request. Please try again.