13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
# File 'lib/erbf/formatter/ruby_formatter.rb', line 13
def format_incomplete(code, line_length)
code = code.strip
keyword = code[/\A[a-z]+/]
case keyword
when "if", "unless", "while", "until", "for", "begin"
format([code, "end"].join("\n"), line_length).delete_suffix("end").rstrip
when "elsif"
format(["if a", code, "end"].join("\n"), line_length)
.delete_prefix("if a")
.delete_suffix("end")
.strip
when "case"
format([code, "when true", "end"].join("\n"), line_length)
.delete_suffix("end")
.rstrip
.delete_suffix("when true")
.rstrip
when "when", "in"
format(["case a", code, "end"].join("\n"), line_length)
.delete_prefix("case a")
.delete_suffix("end")
.strip
when "rescue", "ensure"
format(["begin", code, "end"].join("\n"), line_length)
.delete_prefix("begin")
.delete_suffix("end")
.strip
else
if code =~ /(do|{)\s*(\|[\s,()\w-]+\|)?\z/
if Regexp.last_match(1) == "{"
format([code, "}"].join("\n"), line_length).delete_suffix("}").rstrip
else
format([code, "a" * line_length, "end"].join("\n"), line_length)
.delete_suffix("end")
.rstrip
.delete_suffix("a" * line_length)
.rstrip
end
else
@config.logger.warn(self.class.to_s) { "Can't handle incomplete ruby: #{code}" }
code
end
end
end
|