Class: Jekyll::AwesomeNav::Serializer

Inherits:
Object
  • Object
show all
Defined in:
lib/jekyll/awesome_nav/serializer.rb

Class Method Summary collapse

Class Method Details

.serialize_map(map, include_internal: false) ⇒ Object



10
11
12
13
14
15
# File 'lib/jekyll/awesome_nav/serializer.rb', line 10

def self.serialize_map(map, include_internal: false)
  map.each_with_object({}) do |(key, value), serialized|
    items = value.is_a?(NavFile) ? value.items : value
    serialized[key] = serialize_tree(items, include_internal: include_internal)
  end
end

.serialize_node(node, include_internal: false) ⇒ Object



17
18
19
20
21
22
23
# File 'lib/jekyll/awesome_nav/serializer.rb', line 17

def self.serialize_node(node, include_internal: false)
  item = { "title" => node.title }
  item["url"] = node.url if node.url
  item["children"] = serialize_tree(node.children, include_internal: include_internal) if node.section? && node.children.any?
  item["__dir"] = node.dir if include_internal && node.dir
  item
end

.serialize_tree(nodes, include_internal: false) ⇒ Object



6
7
8
# File 'lib/jekyll/awesome_nav/serializer.rb', line 6

def self.serialize_tree(nodes, include_internal: false)
  Array(nodes).map { |node| serialize_node(node, include_internal: include_internal) }
end