11$:. unshift File . expand_path 'lib'
22require 'rdoc'
3- require 'hoe'
3+ require 'bundler/gem_tasks'
4+ require 'rake/testtask'
45
56ENV [ 'BENCHMARK' ] = 'yes'
67
78task :docs => :generate
89task :test => :generate
910
1011PARSER_FILES = %w[
11- lib/rdoc/rd/block_parser.rb
12- lib/rdoc/rd/inline_parser.rb
13- lib/rdoc/markdown.rb
14- lib/rdoc/markdown/literals_1_8.rb
15- lib/rdoc/markdown/literals_1_9.rb
12+ lib/rdoc/rd/block_parser.ry
13+ lib/rdoc/rd/inline_parser.ry
14+ lib/rdoc/markdown.kpeg
15+ lib/rdoc/markdown/literals_1_8.kpeg
16+ lib/rdoc/markdown/literals_1_9.kpeg
1617]
1718
18- Hoe . plugin :git
19- Hoe . plugin :kpeg
20- Hoe . plugin :minitest
21- Hoe . plugin :travis
22-
2319$rdoc_rakefile = true
2420
25- hoe = Hoe . spec 'rdoc' do
26- developer 'Eric Hodel' , '[email protected] ' 27- developer 'Dave Thomas' , ''
28- developer 'Phil Hagelberg' , '[email protected] ' 29- developer 'Tony Strauss' , '[email protected] ' 30-
31- self . rsync_args = '-avz'
32- rdoc_locations << 'docs.seattlerb.org:/data/www/docs.seattlerb.org/rdoc/'
33- rdoc_locations <<
'[email protected] :/var/www/gforge-projects/rdoc/' 34-
35- spec_extras [ :post_install_message ] = <<-MESSAGE
36- Depending on your version of ruby, you may need to install ruby rdoc/ri data:
37-
38- <= 1.8.6 : unsupported
39- = 1.8.7 : gem install rdoc-data; rdoc-data --install
40- = 1.9.1 : gem install rdoc-data; rdoc-data --install
41- >= 1.9.2 : nothing to do! Yay!
42- MESSAGE
43-
44- self . licenses << 'Ruby'
45- self . readme_file = 'README.rdoc'
46- self . history_file = 'History.rdoc'
47- self . testlib = :minitest
48- self . extra_rdoc_files += %w[
49- CVE-2013-0256.rdoc
50- CONTRIBUTING.rdoc
51- ExampleMarkdown.md
52- ExampleRDoc.rdoc
53- History.rdoc
54- LEGAL.rdoc
55- LICENSE.rdoc
56- README.rdoc
57- RI.rdoc
58- TODO.rdoc
59- ]
60-
61- self . clean_globs += PARSER_FILES
62- self . kpeg_flags = '-fsv' if self . respond_to? :kpeg_flags= # no plugin
63-
64- require_ruby_version '>= 1.8.7'
65- extra_deps << [ 'json' , '~> 1.4' ]
66- extra_dev_deps << [ 'racc' , '~> 1.4' , '> 1.4.10' ]
67- extra_dev_deps << [ 'minitest' , '~> 4' ]
68-
69- extra_rdoc_files << 'Rakefile'
70- spec_extras [ 'required_rubygems_version' ] = '>= 1.3'
71- spec_extras [ 'homepage' ] = 'http://docs.seattlerb.org/rdoc'
72- end
73-
74- hoe . test_prelude = 'gem "minitest", "~> 4.0"'
75-
7621def rake ( *args )
7722 sh $0, *args
7823end
7924
80- need_racc = PARSER_FILES . any? do |rb_file |
81- ry_file = rb_file . gsub ( /\. rb\z / , ".ry" )
82- not File . exist? ( rb_file ) or
83- ( File . exist? ( ry_file ) and File . mtime ( rb_file ) < File . mtime ( ry_file ) )
84- end
85-
86- if need_racc
87- Rake ::Task [ "default" ] . prerequisites . clear
88- task :default do
89- rake "check_extra_deps"
90- rake "install_plugins"
91- rake "newb"
92- end
93- end
25+ task :default => :test
9426
9527Rake ::Task [ 'docs' ] . actions . clear
9628task :docs do
@@ -107,28 +39,49 @@ task :docs do
10739 RDoc ::RDoc . new . document options
10840end
10941
110- # requires ruby 1.8 and ruby 1.8 to build
111- hoe . clean_globs -= PARSER_FILES . grep ( /literals_/ )
42+ Rake ::TestTask . new ( :test ) do |t |
43+ t . libs << "test"
44+ t . libs << "lib"
45+ t . test_files = FileList [ 'test/**/test_*.rb' ]
46+ end
11247
113- task :generate => :isolate
114- task :generate => PARSER_FILES
115- task :check_manifest => :generate
48+ path = "pkg/#{ Bundler ::GemHelper . gemspec . full_name } "
49+
50+ package_parser_files = PARSER_FILES . map do |parser_file |
51+ name = File . basename ( parser_file , File . extname ( parser_file ) )
52+ _path = File . dirname ( parser_file )
53+ package_parser_file = "#{ path } /#{ name } .rb"
54+ parsed_file = "#{ _path } /#{ name } .rb"
11655
117- rule '.rb' => '.ry' do |t |
118- racc = Gem . bin_path 'racc' , 'racc'
56+ file package_parser_file => parsed_file # ensure copy runs before racc
11957
120- ruby "-rubygems #{ racc } -l -o #{ t . name } #{ t . source } "
58+ package_parser_file
12159end
12260
123- path = "pkg/#{ hoe . spec . full_name } "
61+ parsed_files = PARSER_FILES . map do |parser_file |
62+ name = File . basename ( parser_file , File . extname ( parser_file ) )
63+ _path = File . dirname ( parser_file )
64+ parsed_file = "#{ _path } /#{ name } .rb"
65+
66+ file parsed_file do |t |
67+ puts "Generating #{ parsed_file } ..."
68+ if parser_file =~ /\. ry\z / # need racc
69+ racc = Gem . bin_path 'racc' , 'racc'
70+ rb_file = parser_file . gsub ( /\. ry\z / , ".rb" )
71+ ruby "-rubygems #{ racc } -l -o #{ rb_file } #{ parser_file } "
72+ elsif parser_file =~ /\. kpeg\z / # need kpeg
73+ kpeg = Gem . bin_path 'kpeg' , 'kpeg'
74+ rb_file = parser_file . gsub ( /\. kpeg\z / , ".rb" )
75+ ruby "-rubygems #{ kpeg } -fsv -o #{ rb_file } #{ parser_file } "
76+ end
77+ end
12478
125- package_parser_files = PARSER_FILES . map do |parser_file |
126- package_parser_file = "#{ path } /#{ parser_file } "
127- file package_parser_file => parser_file # ensure copy runs before racc
128- package_parser_file
79+ parsed_file
12980end
13081
13182task "#{ path } .gem" => package_parser_files
83+ task :generate => parsed_files
84+ task :check_manifest => :generate
13285
13386# These tasks expect to have the following directory structure:
13487#
0 commit comments