class Spark::Component::Classname
Public Class Methods
new(*args, base: nil, &block)
click to toggle source
Calls superclass method
# File lib/spark/component/classname.rb, line 6 def initialize(*args, base: nil, &block) super(args, &block) self.base = base unless base.nil? @base_set = !base.nil? end
Public Instance Methods
add(*args)
click to toggle source
# File lib/spark/component/classname.rb, line 40 def add(*args) push(*args.flatten.uniq.reject { |a| a.nil? || include?(a) }) self end
base()
click to toggle source
# File lib/spark/component/classname.rb, line 36 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/component/classname.rb, line 23 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_base(name, separator = "-")
click to toggle source
# File lib/spark/component/classname.rb, line 45 def join_base(name, separator = "-") raise(StandardError, "Base class not defined for `join_base(#{name}, …)`") if base.nil? [base, name].join(separator) end
to_s()
click to toggle source
# File lib/spark/component/classname.rb, line 51 def to_s join(" ") end