class DeadEnd::DisplayInvalidBlocks
Used for formatting invalid blocks
Attributes
filename[R]
Public Class Methods
new(code_lines: ,blocks:, io: $stderr, filename: nil, terminal: false, invalid_obj: WhoDisSyntaxError::Null.new)
click to toggle source
# File lib/dead_end/display_invalid_blocks.rb, line 11 def initialize(code_lines: ,blocks:, io: $stderr, filename: nil, terminal: false, invalid_obj: WhoDisSyntaxError::Null.new) @terminal = terminal @filename = filename @io = io @blocks = Array(blocks) @invalid_lines = @blocks.map(&:lines).flatten @code_lines = code_lines @invalid_obj = invalid_obj end
Public Instance Methods
call()
click to toggle source
# File lib/dead_end/display_invalid_blocks.rb, line 24 def call if @blocks.any? { |b| !b.hidden? } found_invalid_blocks else @io.puts "Syntax OK" end self end
code_block()
click to toggle source
# File lib/dead_end/display_invalid_blocks.rb, line 95 def code_block string = String.new("") string << code_with_context string end
code_with_context()
click to toggle source
# File lib/dead_end/display_invalid_blocks.rb, line 101 def code_with_context lines = CaptureCodeContext.new( blocks: @blocks, code_lines: @code_lines ).call DisplayCodeWithLineNumbers.new( lines: lines, terminal: @terminal, highlight_lines: @invalid_lines, ).call end
code_with_lines()
click to toggle source
# File lib/dead_end/display_invalid_blocks.rb, line 114 def code_with_lines DisplayCodeWithLineNumbers.new( lines: @code_lines.select(&:visible?), terminal: @terminal, highlight_lines: @invalid_lines, ).call end
indent(string, with: " ")
click to toggle source
# File lib/dead_end/display_invalid_blocks.rb, line 91 def indent(string, with: " ") string.each_line.map {|l| with + l }.join end
Private Instance Methods
found_invalid_blocks()
click to toggle source
# File lib/dead_end/display_invalid_blocks.rb, line 38 def found_invalid_blocks @io.puts @io.puts banner @io.puts @io.puts("file: #{filename}") if filename @io.puts <<~EOM simplified: #{indent(code_block)} EOM end
no_invalid_blocks()
click to toggle source
# File lib/dead_end/display_invalid_blocks.rb, line 33 def no_invalid_blocks @io.puts <<~EOM EOM end