module ClassNames
Public Instance Methods
classnames(*args)
click to toggle source
# File lib/classnames.rb, line 2 def classnames(*args) args = Array(args) args.reduce([]) do |arr, arg| if value = format_classnames(arg) arr << value else arr end end.flatten.join(' ') end
Private Instance Methods
format_classnames(arg)
click to toggle source
# File lib/classnames.rb, line 16 def format_classnames arg if arg.is_a?(Hash) format_classnames_hash(arg) elsif arg.respond_to?(:call) arg.call else arg end end
format_classnames_hash(hsh)
click to toggle source
# File lib/classnames.rb, line 26 def format_classnames_hash hsh hsh.reduce([]) do |result, kv| key, value = kv if value result.concat([key]) else result end end end