Class: RuboCop::Formatter::HTMLFormatter::ERBContext
- Inherits:
-
Object
- Object
- RuboCop::Formatter::HTMLFormatter::ERBContext
show all
- Includes:
- TextUtil, PathUtil
- Defined in:
- lib/rubocop/formatter/html_formatter.rb
Overview
This class provides helper methods used in the ERB template.
Constant Summary
collapse
- LOGO_IMAGE_PATH =
File.expand_path('../../../assets/logo.png', __dir__)
Constants included
from PathUtil
PathUtil::HIDDEN_FILE_PATTERN
Instance Attribute Summary collapse
Instance Method Summary
collapse
Methods included from TextUtil
pluralize
Methods included from PathUtil
absolute?, glob?, hidden_dir?, hidden_file?, hidden_file_in_not_hidden_dir?, match_path?, maybe_hidden_file?, relative_path, smart_path
Constructor Details
#initialize(files, summary) ⇒ ERBContext
Returns a new instance of ERBContext.
71
72
73
74
|
# File 'lib/rubocop/formatter/html_formatter.rb', line 71
def initialize(files, summary)
@files = files.sort_by(&:path)
@summary = summary
end
|
Instance Attribute Details
#files ⇒ Object
Returns the value of attribute files.
69
70
71
|
# File 'lib/rubocop/formatter/html_formatter.rb', line 69
def files
@files
end
|
#summary ⇒ Object
Returns the value of attribute summary.
69
70
71
|
# File 'lib/rubocop/formatter/html_formatter.rb', line 69
def summary
@summary
end
|
Instance Method Details
#base64_encoded_logo_image ⇒ Object
118
119
120
121
122
123
124
|
# File 'lib/rubocop/formatter/html_formatter.rb', line 118
def base64_encoded_logo_image
image = File.read(LOGO_IMAGE_PATH, binmode: true)
[image].pack('m')
end
|
#binding ⇒ Object
Make Kernel#binding public. rubocop:disable Lint/UselessMethodDefinition
78
79
80
|
# File 'lib/rubocop/formatter/html_formatter.rb', line 78
def binding
super
end
|
#decorated_message(offense) ⇒ Object
rubocop:enable Lint/UselessMethodDefinition
83
84
85
|
# File 'lib/rubocop/formatter/html_formatter.rb', line 83
def decorated_message(offense)
offense.message.gsub(/`(.+?)`/) { "<code>#{escape(Regexp.last_match(1))}</code>" }
end
|
#escape(string) ⇒ Object
114
115
116
|
# File 'lib/rubocop/formatter/html_formatter.rb', line 114
def escape(string)
CGI.escapeHTML(string)
end
|
#highlight_source_tag(offense) ⇒ Object
94
95
96
97
98
|
# File 'lib/rubocop/formatter/html_formatter.rb', line 94
def highlight_source_tag(offense)
"<span class=\"highlight #{offense.severity}\">" \
"#{escape(offense.highlighted_area.source)}" \
'</span>'
end
|
#highlighted_source_line(offense) ⇒ Object
87
88
89
90
91
92
|
# File 'lib/rubocop/formatter/html_formatter.rb', line 87
def highlighted_source_line(offense)
source_before_highlight(offense) +
highlight_source_tag(offense) +
source_after_highlight(offense) +
possible_ellipses(offense.location)
end
|
#possible_ellipses(location) ⇒ Object
110
111
112
|
# File 'lib/rubocop/formatter/html_formatter.rb', line 110
def possible_ellipses(location)
location.single_line? ? '' : " #{ELLIPSES}"
end
|
#render_css ⇒ Object
126
127
128
129
130
131
132
133
|
# File 'lib/rubocop/formatter/html_formatter.rb', line 126
def render_css
context = CSSContext.new
template = File.read(CSS_PATH, encoding: Encoding::UTF_8)
erb = ERB.new(template, trim_mode: '-')
erb.result(context.binding).lines.map do |line|
line == "\n" ? line : " #{line}"
end.join
end
|
#source_after_highlight(offense) ⇒ Object
105
106
107
108
|
# File 'lib/rubocop/formatter/html_formatter.rb', line 105
def source_after_highlight(offense)
source_line = offense.location.source_line
escape(source_line[offense.highlighted_area.end_pos..])
end
|
#source_before_highlight(offense) ⇒ Object
100
101
102
103
|
# File 'lib/rubocop/formatter/html_formatter.rb', line 100
def source_before_highlight(offense)
source_line = offense.location.source_line
escape(source_line[0...offense.highlighted_area.begin_pos])
end
|