Module: Spark
- Defined in:
- lib/spark/component/attribute.rb,
lib/spark/component.rb,
lib/spark/component/attr.rb,
lib/spark/component/element.rb,
lib/spark/component/version.rb,
lib/spark/component/tag_attr.rb,
lib/spark/component/classname.rb,
lib/spark/component/integration/action_view_component.rb
Overview
Allows components to easily manage their attributes
# Example component usage:
class SomeClass
include Spark::Component::Attribute
# Set a :label attribute, and a :size attribute with default value :large
attribute :label, { size: :large }
def inialize(attributes = nil)
initialize_attributes(attributes)
end
end
# When initialized like:
some_instance = SomeClass.new(label: "Test")
The Class's instance will now have access to
@label => "Test"
@size => :large
And will define access methods:
some_instance.attribute_label
some_instance.attribute_size
Attributes can also be accessed with a helper method
some_instance.attribute(:label)
some_instance.attribute(:size)
Extending a class will extend its attributes and their defaults.
This supports a common set of base attributes such as id, class, data, aria, and html.
The html attribute is meant to allow for passing along unaccounted for tag attributes.
Defined Under Namespace
Modules: Component