class ContentfulConverter::Nodes::Base
Attributes
content[RW]
node_type[R]
nokogiri_node[R]
parent[R]
Public Class Methods
new(nokogiri_node = nil, parent = nil)
click to toggle source
# File lib/contentful_converter/nodes/base.rb, line 8 def initialize(nokogiri_node = nil, parent = nil) @nokogiri_node = nokogiri_node @parent = parent @node_type = type @content = [] end
Public Instance Methods
add_content(node)
click to toggle source
# File lib/contentful_converter/nodes/base.rb, line 15 def add_content(node) @content << (node.needs_p_wrapping? ? wrap_in_p(node) : node) end
needs_p_wrapping?()
click to toggle source
# File lib/contentful_converter/nodes/base.rb, line 26 def needs_p_wrapping? if parent.nil? || parent&.class == Nodes::Header || parent&.class == Nodes::Paragraph || parent&.class == Nodes::Hyperlink return false end true end
to_h(params = options)
click to toggle source
# File lib/contentful_converter/nodes/base.rb, line 19 def to_h(params = options) params[:nodeType] = node_type params[:data] = params[:data] || {} params[:content] = content.map(&:to_h).compact params end
Private Instance Methods
options()
click to toggle source
# File lib/contentful_converter/nodes/base.rb, line 56 def options {} end
type()
click to toggle source
# File lib/contentful_converter/nodes/base.rb, line 52 def type raise NotImplementedError end
value()
click to toggle source
# File lib/contentful_converter/nodes/base.rb, line 48 def value nokogiri_node.content end
wrap_in_p(node)
click to toggle source
# File lib/contentful_converter/nodes/base.rb, line 42 def wrap_in_p(node) p_node = Nodes::Paragraph.new(nil, node.parent) p_node.content << node p_node end