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