@@ -5,6 +5,7 @@ $:.unshift File.expand_path('lib', __dir__) # default template dir
55require_relative 'lib/rdoc/task'
66require 'bundler/gem_tasks'
77require 'rake/testtask'
8+ require 'rubocop/rake_task'
89
910task :test => [ :normal_test , :rubygems_test ]
1011
3738
3839Rake ::TestTask . new ( :normal_test ) do |t |
3940 t . verbose = true
40- t . deps = :generate
4141 t . test_files = FileList [ "test/**/*_test.rb" ] . exclude ( "test/rdoc/rdoc_rubygems_hook_test.rb" )
4242end
4343
4444Rake ::TestTask . new ( :rubygems_test ) do |t |
4545 t . verbose = true
46- t . deps = :generate
4746 t . pattern = "test/rdoc/rdoc_rubygems_hook_test.rb"
4847end
4948
@@ -87,9 +86,33 @@ parsed_files = PARSER_FILES.map do |parser_file|
8786 parsed_file
8887end
8988
89+ RuboCop ::RakeTask . new ( :format_generated_files ) do |t |
90+ t . options = parsed_files + [ "--config=.generated_files_rubocop.yml" ]
91+ end
92+
9093task "#{ path } .gem" => package_parser_files
9194desc "Generate all files used racc and kpeg"
92- task :generate => parsed_files
95+ task generate : [ *parsed_files , "format_generated_files:autocorrect" ]
96+
97+ desc "Verify that generated parser files are up to date"
98+ task verify_generated : :generate do
99+ # Check if there are any uncommitted changes to the generated files
100+ parsed_files . each do |file |
101+ unless File . exist? ( file )
102+ abort "Generated file #{ file } does not exist!"
103+ end
104+ end
105+
106+ diff_output = `git diff --exit-code #{ parsed_files . join ( ' ' ) } 2>&1`
107+ unless $?. success?
108+ puts "Generated parser files are out of date!"
109+ puts "Please run 'rake generate' and commit the changes."
110+ puts "\n Differences found:"
111+ puts diff_output
112+ exit 1
113+ end
114+ puts "Generated parser files are up to date."
115+ end
93116
94117task :clean do
95118 parsed_files . each do |path |
@@ -109,13 +132,3 @@ namespace :build do
109132 mv ( "#{ path } .gem" , target )
110133 end
111134end
112-
113- begin
114- require 'rubocop/rake_task'
115- rescue LoadError
116- else
117- RuboCop ::RakeTask . new ( :format_generated_files ) do |t |
118- t . options = parsed_files + [ "--config=.generated_files_rubocop.yml" ]
119- end
120- task :build => [ :generate , "format_generated_files:autocorrect" ]
121- end
0 commit comments