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 9 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 19 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 15 def on_html_attrs(*attrs) [:multi, *attrs.map {|attr| compile(attr) }] end