Class: Markdown::Merge::Cleanse::TemplatingCorruption

Inherits:
Object
  • Object
show all
Defined in:
lib/markdown/merge/cleanse/templating_corruption.rb

Overview

Composes targeted repair passes for known templating corruption signatures seen in historical kettle-jem runs.

Constant Summary collapse

PASS_TYPES =
[
  ListMarkerDuplication,
  CondensedLinkRefs,
  CodeFenceSpacing,
  BlockSpacing
].freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(source) ⇒ TemplatingCorruption

Returns a new instance of TemplatingCorruption.



18
19
20
21
22
23
# File 'lib/markdown/merge/cleanse/templating_corruption.rb', line 18

def initialize(source)
  @source = source.to_s
  @passes = []
  @issues = []
  analyze
end

Instance Attribute Details

#issuesObject (readonly)



16
17
18
# File 'lib/markdown/merge/cleanse/templating_corruption.rb', line 16

def issues
  @issues
end

#passesObject (readonly)



16
17
18
# File 'lib/markdown/merge/cleanse/templating_corruption.rb', line 16

def passes
  @passes
end

#sourceObject (readonly)



16
17
18
# File 'lib/markdown/merge/cleanse/templating_corruption.rb', line 16

def source
  @source
end

Instance Method Details

#fixObject



33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/markdown/merge/cleanse/templating_corruption.rb', line 33

def fix
  current = source

  PASS_TYPES.each do |pass_type|
    pass = pass_type.new(current)
    next unless pass_issues?(pass)

    current = pass_output(pass, current)
  end

  current
end

#issue_countObject



29
30
31
# File 'lib/markdown/merge/cleanse/templating_corruption.rb', line 29

def issue_count
  issues.length
end

#malformed?Boolean

Returns:

  • (Boolean)


25
26
27
# File 'lib/markdown/merge/cleanse/templating_corruption.rb', line 25

def malformed?
  issues.any?
end