Skip to content

Commit c43e538

Browse files
author
Zachary Scott
committed
Replaced hoe plugins including for generating parsers with plain Ruby
1 parent 4f36b5c commit c43e538

File tree

5 files changed

+49
-94
lines changed

5 files changed

+49
-94
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,4 @@
1010
/lib/rdoc/markdown.rb
1111
/pkg
1212
/tmp
13+
Gemfile.lock

.travis.yml

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
---
2-
after_script:
3-
- rake travis:after -t
42
before_script:
5-
- gem install hoe-travis --no-rdoc --no-ri
6-
- rake travis:before -t
3+
- gem install bundler --no-document
74
language: ruby
85
notifications:
96
email:
@@ -16,7 +13,7 @@ rvm:
1613
- 2.2.0
1714
- ruby-head
1815
- rbx-2
19-
script: rake travis
16+
script: rake
2017
matrix:
2118
allow_failures:
2219
- rvm: 1.8.7

Gemfile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
source 'https://rubygems.org'
2+
3+
gemspec

Rakefile

Lines changed: 42 additions & 89 deletions
Original file line numberDiff line numberDiff line change
@@ -1,96 +1,28 @@
11
$:.unshift File.expand_path 'lib'
22
require 'rdoc'
3-
require 'hoe'
3+
require 'bundler/gem_tasks'
4+
require 'rake/testtask'
45

56
ENV['BENCHMARK'] = 'yes'
67

78
task :docs => :generate
89
task :test => :generate
910

1011
PARSER_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-
7621
def rake(*args)
7722
sh $0, *args
7823
end
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

9527
Rake::Task['docs'].actions.clear
9628
task :docs do
@@ -107,28 +39,49 @@ task :docs do
10739
RDoc::RDoc.new.document options
10840
end
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
12159
end
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
12980
end
13081

13182
task "#{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
#

rdoc.gemspec

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ Depending on your version of ruby, you may need to install ruby rdoc/ri data:
5858
s.summary = "RDoc produces HTML and command-line documentation for Ruby projects"
5959

6060
s.add_runtime_dependency("json", "~> 1.4")
61+
s.add_development_dependency("rake", "~> 10.5")
6162
s.add_development_dependency("racc", "~> 1.4", "> 1.4.10")
6263
s.add_development_dependency("kpeg", "~> 0.9")
6364
s.add_development_dependency("minitest", "~> 4")

0 commit comments

Comments
 (0)