class SafariBookmarksParser::BookmarkFolder

Attributes

children[R]
folder_names[R]
title[R]

Public Class Methods

new(title:, folder_names:, children: []) click to toggle source
# File lib/safari_bookmarks_parser/bookmark_folder.rb, line 7
def initialize(title:, folder_names:, children: [])
  @title = title
  @folder_names = folder_names
  @children = children
end

Public Instance Methods

empty?() click to toggle source
# File lib/safari_bookmarks_parser/bookmark_folder.rb, line 13
def empty?
  to_a.empty?
end
to_a() click to toggle source
# File lib/safari_bookmarks_parser/bookmark_folder.rb, line 17
def to_a
  results = []
  traverse(self, results)
  results
end
to_h() click to toggle source
# File lib/safari_bookmarks_parser/bookmark_folder.rb, line 23
def to_h
  { 'title' => title, 'folder_names' => folder_names, 'children' => children.map(&:to_h) }
end
to_json(options) click to toggle source
# File lib/safari_bookmarks_parser/bookmark_folder.rb, line 27
def to_json(options)
  to_h.to_json(options)
end

Private Instance Methods

traverse(node, results) click to toggle source
# File lib/safari_bookmarks_parser/bookmark_folder.rb, line 33
def traverse(node, results)
  case node
  when BookmarkFolder
    node.children.each do |child|
      traverse(child, results)
    end
  when Bookmark
    results << node
  end
end