class Temple::HTML::AttributeRemover

This filter removes empty attributes @api public

Public Class Methods

new(opts = {}) click to toggle source
Calls superclass method Temple::Mixins::Options::new
# File lib/temple/html/attribute_remover.rb, line 8
def initialize(opts = {})
  super
  raise ArgumentError, "Option :remove_empty_attrs must be an Array of Strings" unless Array === options[:remove_empty_attrs] &&
    options[:remove_empty_attrs].all? {|a| String === a }
end

Public Instance Methods

on_html_attr(name, value) click to toggle source
Calls superclass method
# File lib/temple/html/attribute_remover.rb, line 18
def on_html_attr(name, value)
  return super unless options[:remove_empty_attrs].include?(name.to_s)

  if empty_exp?(value)
    value
  elsif contains_nonempty_static?(value)
    [:html, :attr, name, value]
  else
    tmp = unique_name
    [:multi,
     [:capture, tmp, compile(value)],
     [:if, "!#{tmp}.empty?",
      [:html, :attr, name, [:dynamic, tmp]]]]
  end
end
on_html_attrs(*attrs) click to toggle source
# File lib/temple/html/attribute_remover.rb, line 14
def on_html_attrs(*attrs)
  [:multi, *attrs.map {|attr| compile(attr) }]
end