class Spark::Component::TagAttr

Public Instance Methods

add(hash) click to toggle source
Calls superclass method Spark::Component::Attr#add
# File lib/spark/component/tag_attr.rb, line 9
def add(hash)
  return self if hash.nil? || hash.keys.empty?

  deep_compact!(hash)

  # Extract keys for special properties
  extracted = {
    aria: hash.delete(:aria),
    data: hash.delete(:data),
    classname: hash.delete(:class)
  }

  # If extracted values exist, add to tag
  extracted.each do |method, val|
    send(method).add(val) unless val.nil? || val.empty?
  end

  # Add html using recursion, this ensures that nested data, aria, or class
  # attributes are properly merged as the right data types
  add(hash.delete(:html))

  super(hash)
end
aria(*args) click to toggle source
# File lib/spark/component/tag_attr.rb, line 33
def aria(*args)
  self[:aria] ||= Component::Attr.new(*args, prefix: :aria)
end
classname(*args, base: nil) click to toggle source
# File lib/spark/component/tag_attr.rb, line 41
def classname(*args, base: nil)
  self[:class] ||= Component::Classname.new(*args, base: base)
end
data(*args) click to toggle source
# File lib/spark/component/tag_attr.rb, line 37
def data(*args)
  self[:data] ||= Component::Attr.new(*args, prefix: :data)
end