Class: Codnar::Splitter

Inherits:
Object
  • Object
show all
Defined in:
lib/codnar/splitter.rb

Overview

Split disk files into chunks.

Instance Method Summary collapse

Constructor Details

#initialize(errors, configuration) ⇒ Splitter

Construct a splitter based on a configuration in the following structure:

syntax: <syntax>
formatters:
  <kind>: <expression>

Where the syntax is passed as-is to (and expanded in-place by) a Scanner, and the formatters are passed as-is to a Formatter to convert the chunk’s classified lines into HTML.



15
16
17
18
19
20
# File 'lib/codnar/splitter.rb', line 15

def initialize(errors, configuration)
  @errors = errors
  @configuration = configuration
  @scanner = Scanner.new(errors, configuration.syntax)
  @formatter = Formatter.new(errors, configuration.formatters)
end

Instance Method Details

#chunks(path) ⇒ Object

Split a disk file into HTML chunks.



23
24
25
26
27
28
# File 'lib/codnar/splitter.rb', line 23

def chunks(path)
  lines = @scanner.lines(path)
  chunks = Merger.chunks(@errors, path, lines)
  chunks.each { |chunk| chunk.html = @formatter.lines_to_html(chunk.delete("lines")) }
  return chunks
end