Class: ClassNames::Helper

Inherits:
Object
  • Object
show all
Defined in:
lib/class_names/helper.rb

Instance Method Summary collapse

Constructor Details

#initialize(*class_map) ⇒ Helper

Returns a new instance of Helper.



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/class_names/helper.rb', line 3

def initialize(*class_map)
  options = class_map.last.is_a?(::Hash) ? class_map.pop : {}

  @classes = {}
  # default to true on class_names("truthy") like calls
  @classes = class_map.map do |class_name|
    if class_name.is_a?(::Hash)
      class_name.each do |class_key, class_value|
        next if !class_value
        @classes[class_key] = true
      end
    else
       { class_name => true } if class_name
    end
  end.compact.reduce({}, &:merge)
  @classes.merge!(options)

  # handle multiple keys in hash class_names([arr_truthy, arr_falsy] => false) --> "arr_falsy"
  @classes = @classes.map { |((true_css_key, false_css_key), condition)| condition ? true_css_key : false_css_key }
end

Instance Method Details

#to_sObject



24
25
26
# File 'lib/class_names/helper.rb', line 24

def to_s
  return @classes.compact.join(" ")
end