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-
2219$rdoc_rakefile = true
2320
24- hoe = Hoe . spec 'rdoc' do
25- developer 'Eric Hodel' , '[email protected] ' 26- developer 'Dave Thomas' , ''
27- developer 'Phil Hagelberg' , '[email protected] ' 28- developer 'Tony Strauss' , '[email protected] ' 29-
30- self . rsync_args = '-avz'
31- rdoc_locations << 'docs.seattlerb.org:/data/www/docs.seattlerb.org/rdoc/'
32- rdoc_locations <<
'[email protected] :/var/www/gforge-projects/rdoc/' 33-
34- spec_extras [ :post_install_message ] = <<-MESSAGE
35- Depending on your version of ruby, you may need to install ruby rdoc/ri data:
36-
37- <= 1.8.6 : unsupported
38- = 1.8.7 : gem install rdoc-data; rdoc-data --install
39- = 1.9.1 : gem install rdoc-data; rdoc-data --install
40- >= 1.9.2 : nothing to do! Yay!
41- MESSAGE
42-
43- self . licenses << 'Ruby'
44- self . readme_file = 'README.rdoc'
45- self . history_file = 'History.rdoc'
46- self . testlib = :minitest
47- self . extra_rdoc_files += %w[
48- CVE-2013-0256.rdoc
49- CONTRIBUTING.rdoc
50- ExampleMarkdown.md
51- ExampleRDoc.rdoc
52- History.rdoc
53- LEGAL.rdoc
54- LICENSE.rdoc
55- README.rdoc
56- RI.rdoc
57- TODO.rdoc
58- ]
59-
60- self . clean_globs += PARSER_FILES
61- self . kpeg_flags = '-fsv' if self . respond_to? :kpeg_flags= # no plugin
62-
63- require_ruby_version '>= 1.8.7'
64- extra_deps << [ 'json' , '~> 1.4' ]
65- extra_dev_deps << [ 'racc' , '~> 1.4' , '> 1.4.10' ]
66- extra_dev_deps << [ 'minitest' , '~> 4' ]
67-
68- extra_rdoc_files << 'Rakefile'
69- spec_extras [ 'required_rubygems_version' ] = '>= 1.3'
70- spec_extras [ 'homepage' ] = 'http://docs.seattlerb.org/rdoc'
71- end
72-
73- hoe . test_prelude = 'gem "minitest", "~> 4.0"'
74-
7521def rake ( *args )
7622 sh $0, *args
7723end
7824
79- need_racc = PARSER_FILES . any? do |rb_file |
80- ry_file = rb_file . gsub ( /\. rb\z / , ".ry" )
81- not File . exist? ( rb_file ) or
82- ( File . exist? ( ry_file ) and File . mtime ( rb_file ) < File . mtime ( ry_file ) )
83- end
84-
85- if need_racc
86- Rake ::Task [ "default" ] . prerequisites . clear
87- task :default do
88- rake "check_extra_deps"
89- rake "install_plugins"
90- rake "newb"
91- end
92- end
25+ task :default => :test
9326
9427Rake ::Task [ 'docs' ] . actions . clear
9528task :docs do
@@ -106,28 +39,49 @@ task :docs do
10639 RDoc ::RDoc . new . document options
10740end
10841
109- # requires ruby 1.8 and ruby 1.8 to build
110- 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
11147
112- task :generate => :isolate
113- task :generate => PARSER_FILES
114- 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"
11555
116- rule '.rb' => '.ry' do |t |
117- racc = Gem . bin_path 'racc' , 'racc'
56+ file package_parser_file => parsed_file # ensure copy runs before racc
11857
119- ruby "-rubygems #{ racc } -l -o #{ t . name } #{ t . source } "
58+ package_parser_file
12059end
12160
122- 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
12378
124- package_parser_files = PARSER_FILES . map do |parser_file |
125- package_parser_file = "#{ path } /#{ parser_file } "
126- file package_parser_file => parser_file # ensure copy runs before racc
127- package_parser_file
79+ parsed_file
12880end
12981
13082task "#{ path } .gem" => package_parser_files
83+ task :generate => parsed_files
84+ task :check_manifest => :generate
13185
13286# These tasks expect to have the following directory structure:
13387#
0 commit comments