class SparkComponents::Attributes::Classname
Public Class Methods
new(*args, &block)
click to toggle source
Calls superclass method
# File lib/spark_components/attributes.rb, line 49 def initialize(*args, &block) super(*args, &block) @base_set = false end
Public Instance Methods
add(*args)
click to toggle source
# File lib/spark_components/attributes.rb, line 87 def add(*args) push(*args.flatten.uniq.reject { |a| a.nil? || include?(a) }) self end
base()
click to toggle source
# File lib/spark_components/attributes.rb, line 78 def base first if @base_set end
base=(klass)
click to toggle source
Many elements have a base class which defines core utlitiy This classname may serve as a root for other element classnames and should be distincly accessible
For example:
classes = Classname.new classes.base = 'nav__item' now generate a wrapper: "#{classes.base}__wrapper"
Ensure base class is the first element in the classes array.
# File lib/spark_components/attributes.rb, line 65 def base=(klass) return if klass.nil? || klass.empty? if @base_set self[0] = klass else unshift klass @base_set = true end uniq! end
join_class(name, separator = "-")
click to toggle source
# File lib/spark_components/attributes.rb, line 104 def join_class(name, separator = "-") raise(SparkComponents::Attributes::Error, "Base class not defined for `join_class(#{name}, …)`") if base.nil? [base, name].join(separator) end
modifiers()
click to toggle source
Returns clasess which are not defined as a base class
# File lib/spark_components/attributes.rb, line 83 def modifiers @base_set ? self[1..size] : self end
new(*args)
click to toggle source
Easy assess to create a new Attributes::Classname
# File lib/spark_components/attributes.rb, line 93 def new(*args) new_arr = self.class.new unless args.empty? new_arr.base = args.shift new_arr.add(*args) end new_arr end
to_s()
click to toggle source
# File lib/spark_components/attributes.rb, line 110 def to_s join(" ") end