module Haml::AttributeBuilder

def build_data_attribute(key, escape_attrs, quote, *hashes)

def build_data_attribute(key, escape_attrs, quote, *hashes)
  attrs = []
  if hashes.size > 1 && hashes.all? { |h| h.is_a?(Hash) }
    data_value = merge_all_attrs(hashes)
  else
    data_value = hashes.last
  end
  hash = flatten_attributes(key => data_value)
  hash.sort_by(&:first).each do |key, value|
    case value
    when true
      attrs << " #{key}"
    when nil, false
      # noop
    else
      attrs << " #{key}=#{quote}#{escape_html(escape_attrs, value.to_s)}#{quote}"
    end
  end
  attrs.join
end