Module: Karabiner::XmlTree

Included in:
Appdef, Group, Item, Property, Root, Vkopenurldef
Defined in:
lib/karabiner/xml_tree.rb

Instance Method Summary collapse

Instance Method Details

#add_child(*objects) ⇒ Object



4
5
6
7
8
9
10
11
12
# File 'lib/karabiner/xml_tree.rb', line 4

def add_child(*objects)
  objects.each do |object|
    childs << object
  end

  childs.each do |child|
    child.parent = self
  end
end

#search_childs(klass) ⇒ Object



14
15
16
# File 'lib/karabiner/xml_tree.rb', line 14

def search_childs(klass)
  childs.select { |c| c.is_a?(klass) }
end

#to_xml(distance_between_childs = 0) ⇒ Object



18
19
20
21
22
23
24
25
26
27
# File 'lib/karabiner/xml_tree.rb', line 18

def to_xml(distance_between_childs = 0)
  tag_name = self.class.to_s.split("::").last.downcase
  newline_count = distance_between_childs + 1

  [
    "<#{tag_name}>",
    childs.map(&:to_xml).join("\n" * newline_count).gsub(/^/, "  "),
    "</#{tag_name}>",
  ].join("\n")
end