Skip to content

Commit b4130e6

Browse files
authored
Merge pull request #793 from nobu/generate-rules
Fix dependency of rules to generate parser files
2 parents d23594e + 00932ec commit b4130e6

File tree

1 file changed

+15
-13
lines changed

1 file changed

+15
-13
lines changed

Rakefile

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ $:.unshift File.expand_path 'lib'
22
require 'rdoc/task'
33
require 'bundler/gem_tasks'
44
require 'rake/testtask'
5-
require 'rubocop/rake_task'
65

76
task :docs => :generate
87
task :test => [:normal_test, :rubygems_test]
@@ -62,13 +61,13 @@ package_parser_files = PARSER_FILES.map do |parser_file|
6261
end
6362

6463
parsed_files = PARSER_FILES.map do |parser_file|
65-
name = File.basename(parser_file, File.extname(parser_file))
66-
_path = File.dirname(parser_file)
67-
parsed_file = "#{_path}/#{name}.rb"
64+
ext = File.extname(parser_file)
65+
parsed_file = "#{parser_file.chomp(ext)}.rb"
6866

69-
file parsed_file do |t|
67+
file parsed_file => parser_file do |t|
7068
puts "Generating #{parsed_file}..."
71-
if parser_file =~ /\.ry\z/ # need racc
69+
case ext
70+
when '.ry' # need racc
7271
racc = Gem.bin_path 'racc', 'racc'
7372
rb_file = parser_file.gsub(/\.ry\z/, ".rb")
7473
ruby "#{racc} -l -o #{rb_file} #{parser_file}"
@@ -77,7 +76,7 @@ parsed_files = PARSER_FILES.map do |parser_file|
7776
f.rewind
7877
f.write newtext
7978
end
80-
elsif parser_file =~ /\.kpeg\z/ # need kpeg
79+
when '.kpeg' # need kpeg
8180
kpeg = Gem.bin_path 'kpeg', 'kpeg'
8281
rb_file = parser_file.gsub(/\.kpeg\z/, ".rb")
8382
ruby "#{kpeg} -fsv -o #{rb_file} #{parser_file}"
@@ -88,12 +87,15 @@ parsed_files = PARSER_FILES.map do |parser_file|
8887
end
8988

9089
task "#{path}.gem" => package_parser_files
91-
92-
RuboCop::RakeTask.new(:rubocop) do |t|
93-
t.options = [*parsed_files]
94-
end
95-
9690
desc "Genrate all files used racc and kpeg"
9791
task :generate => parsed_files
9892

99-
task :build => [:generate, "rubocop:auto_correct"]
93+
begin
94+
require 'rubocop/rake_task'
95+
rescue LoadError
96+
else
97+
RuboCop::RakeTask.new(:rubocop) do |t|
98+
t.options = [*parsed_files]
99+
end
100+
task :build => [:generate, "rubocop:auto_correct"]
101+
end

0 commit comments

Comments
 (0)