class Phlex::Component
def tokens(*tokens, **conditional_tokens)
def tokens(*tokens, **conditional_tokens) conditional_tokens.each do |condition, token| case condition when Symbol then next unless send(condition) when Proc then next unless condition.call else raise ArgumentError, "The class condition must be a Symbol or a Proc." end case token when Symbol then tokens << token.name when String then tokens << token when Array then tokens.concat(t) else raise ArgumentError, "Conditional classes must be Symbols, Strings, or Arrays of Symbols or Strings." end end tokens.compact.join(" ") end