module Haml::AttributeBuilder
def build_class(escape_attrs, *values)
def build_class(escape_attrs, *values) if values.size == 1 value = values.first case when value.is_a?(String) # noop when value.is_a?(Array) value = value.flatten.select { |v| v }.map(&:to_s).uniq.join(' ') when value value = value.to_s else return '' end return escape_html(escape_attrs, value) end classes = [] values.each do |value| case when value.is_a?(String) classes += value.split(' ') when value.is_a?(Array) classes += value.select { |v| v } when value classes << value.to_s end end escape_html(escape_attrs, classes.map(&:to_s).uniq.join(' ')) end