Class: Kramdown::Merge::Backend::Node

Inherits:
TreeHaver::Base::Node
  • Object
show all
Defined in:
lib/kramdown/merge/backend.rb

Constant Summary collapse

TYPE_MAP =
{
  root: 'document',
  header: 'heading',
  codeblock: 'code_block',
  p: 'paragraph'
}.freeze

Instance Method Summary collapse

Instance Method Details

#childrenObject



80
81
82
# File 'lib/kramdown/merge/backend.rb', line 80

def children
  Array(inner_node.children).map { |child| self.class.new(child, source: source, lines: lines) }
end

#end_byteObject



97
98
99
# File 'lib/kramdown/merge/backend.rb', line 97

def end_byte
  calculate_byte_offset(end_point.row, end_point.column)
end

#end_pointObject



89
90
91
# File 'lib/kramdown/merge/backend.rb', line 89

def end_point
  Point.new([start_point.row + text.lines.count - 1, start_point.row].max, 0)
end

#raw_typeObject



69
70
71
# File 'lib/kramdown/merge/backend.rb', line 69

def raw_type
  inner_node.type.to_s
end

#start_byteObject



93
94
95
# File 'lib/kramdown/merge/backend.rb', line 93

def start_byte
  calculate_byte_offset(start_point.row, start_point.column)
end

#start_pointObject



84
85
86
87
# File 'lib/kramdown/merge/backend.rb', line 84

def start_point
  line = [inner_node.options.fetch(:location, 1).to_i - 1, 0].max
  Point.new(line, 0)
end

#textObject



73
74
75
76
77
78
# File 'lib/kramdown/merge/backend.rb', line 73

def text
  return inner_node.value.to_s if inner_node.value
  return inner_node.options[:raw_text].to_s if inner_node.options.key?(:raw_text)

  children.map(&:text).join
end

#typeObject Also known as: kind



63
64
65
# File 'lib/kramdown/merge/backend.rb', line 63

def type
  TYPE_MAP.fetch(raw_type.to_sym, raw_type)
end