class Temple::HTML::AttributeSorter

@api public
This filter sorts html attributes.

def call(exp)

def call(exp)
  options[:sort_attrs] ? super : exp
end

def on_html_attrs(*attrs)

def on_html_attrs(*attrs)
  n = 0 # Use n to make sort stable. This is important because the merger could be executed afterwards.
  [:html, :attrs, *attrs.sort_by do |attr|
    raise(InvalidExpression, 'Attribute is not a html attr') if attr[0] != :html || attr[1] != :attr
    [attr[2].to_s, n += 1]
  end]
end