Skip to content

Commit 039e04c

Browse files
committed
Support --frozen option for routing annotations
Signed-off-by: kg8m <[email protected]>
1 parent ea4cd00 commit 039e04c

File tree

2 files changed

+19
-6
lines changed

2 files changed

+19
-6
lines changed

lib/annotate/annotate_routes.rb

+18-6
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,18 @@ def do_annotations(options = {})
3030
new_content = annotate_routes(HeaderGenerator.generate(options), content, header_position, options)
3131
new_text = new_content.join("\n")
3232

33-
if rewrite_contents(existing_text, new_text)
34-
puts "#{routes_file} was annotated."
33+
if options[:frozen]
34+
if needs_rewrite_contents?(existing_text, new_text)
35+
abort "annotate error. #{routes_file} needs to be updated, but annotate was run with `--frozen`."
36+
else
37+
puts "#{routes_file} was not changed."
38+
end
3539
else
36-
puts "#{routes_file} was not changed."
40+
if rewrite_contents(existing_text, new_text)
41+
puts "#{routes_file} was annotated."
42+
else
43+
puts "#{routes_file} was not changed."
44+
end
3745
end
3846
else
3947
puts "#{routes_file} could not be found."
@@ -83,14 +91,18 @@ def strip_on_removal(content, header_position)
8391
end
8492

8593
def rewrite_contents(existing_text, new_text)
86-
if existing_text == new_text
87-
false
88-
else
94+
if needs_rewrite_contents?(existing_text, new_text)
8995
File.open(routes_file, 'wb') { |f| f.puts(new_text) }
9096
true
97+
else
98+
false
9199
end
92100
end
93101

102+
def needs_rewrite_contents?(existing_text, new_text)
103+
existing_text != new_text
104+
end
105+
94106
def annotate_routes(header, content, header_position, options = {})
95107
magic_comments_map, content = Helpers.extract_magic_comments_from_array(content)
96108
if %w(before top).include?(options[:position_in_routes])

lib/tasks/annotate_routes.rake

+1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ task :annotate_routes => :environment do
1414
options[:position_in_routes] = Annotate::Helpers.fallback(ENV['position_in_routes'], ENV['position'])
1515
options[:ignore_routes] = Annotate::Helpers.fallback(ENV['ignore_routes'], nil)
1616
options[:require] = ENV['require'] ? ENV['require'].split(',') : []
17+
options[:frozen] = Annotate::Helpers.true?(ENV['frozen'])
1718
options[:wrapper_open] = Annotate::Helpers.fallback(ENV['wrapper_open'], ENV['wrapper'])
1819
options[:wrapper_close] = Annotate::Helpers.fallback(ENV['wrapper_close'], ENV['wrapper'])
1920
AnnotateRoutes.do_annotations(options)

0 commit comments

Comments
 (0)