module BlueDoc::SML::Utils

Public Instance Methods

attributes(node, add_if_mission: false) click to toggle source
# File lib/bluedoc/sml/utils.rb, line 27
def attributes(node, add_if_mission:  false)
  return {} if node.blank?
  return node[1].deep_symbolize_keys if has_attributes?(node)
  return {} unless add_if_mission

  name = node.shift || ""
  attrs = {}
  node.unshift(attrs)
  node.unshift(name)

  attrs
end
attributes?(node) click to toggle source
# File lib/bluedoc/sml/utils.rb, line 53
def attributes?(node)
  return false if node.nil?
  node.is_a?(Hash)
end
element?(node) click to toggle source
# File lib/bluedoc/sml/utils.rb, line 58
def element?(node)
  node.is_a?(Array) && node[0].is_a?(String)
end
get_children(node) click to toggle source
# File lib/bluedoc/sml/utils.rb, line 8
def get_children(node)
  has_attributes?(node) ? node[2..-1] : node[1..-1]
end
has_attributes?(node) click to toggle source
# File lib/bluedoc/sml/utils.rb, line 48
def has_attributes?(node)
  return false unless element?(node)
  attributes?(node[1])
end
list_tag_by_type(type) click to toggle source
# File lib/bluedoc/sml/utils.rb, line 17
def list_tag_by_type(type)
  if type == "bulleted"
    return "ul"
  elsif type == "ordered"
    return "ol"
  else
    return nil
  end
end
set_attribute(node, key, val) click to toggle source
# File lib/bluedoc/sml/utils.rb, line 40
def set_attribute(node, key, val)
  return if node.blank?
  return unless element?(node)
  return unless has_attributes?(node)

  node[1][key] = val
end
tag_name(node) click to toggle source
# File lib/bluedoc/sml/utils.rb, line 12
def tag_name(node)
  return nil if node.blank?
  node[0] || ""
end