Class: UiBibz::Builders::HtmlClassesBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/ui_bibz/builders/html_classes_builder.rb

Overview

Class to build html classes

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeHtmlClassesBuilder

Returns a new instance of HtmlClassesBuilder.



28
29
30
# File 'lib/ui_bibz/builders/html_classes_builder.rb', line 28

def initialize
  @html_classes = []
end

Class Method Details

.exclude_classes(arr, *classes) ⇒ Array|nil

Remove classes and return output

Parameters:

  • arr (Array|String)
  • classes (Array|String)

Returns:

  • (Array|nil)

    classes



20
21
22
23
24
25
# File 'lib/ui_bibz/builders/html_classes_builder.rb', line 20

def exclude_classes(arr, *classes)
  html_classes_builder = new
  html_classes_builder.add(arr)
  html_classes_builder.remove(classes)
  html_classes_builder.output
end

.join_classesArray|nil

Add class and return output

Parameters:

  • classes (Array|String)

Returns:

  • (Array|nil)

    classes



10
11
12
13
14
# File 'lib/ui_bibz/builders/html_classes_builder.rb', line 10

def join_classes(*)
  html_classes_builder = new
  html_classes_builder.add(*)
  html_classes_builder.output
end

Instance Method Details

#add(*classes) ⇒ Void

Add classes

Parameters:

  • classes (Array|String)

Returns:

  • (Void)


35
36
37
# File 'lib/ui_bibz/builders/html_classes_builder.rb', line 35

def add(*classes)
  @html_classes << classes
end

#add_composed(class_name, value) ⇒ Void

Create a composed class

Parameters:

  • class_name (String)
  • value (Symbol|String)

Returns:

  • (Void)


68
69
70
# File 'lib/ui_bibz/builders/html_classes_builder.rb', line 68

def add_composed(class_name, value)
  add class_name % value if value
end

#add_if_equal_value(class_name, value, expected) ⇒ Void

Add class if value is equal to expected

Parameters:

  • class_name (String)
  • value (Symbol|String)
  • expected (Symbol|String)

Returns:

  • (Void)


85
86
87
# File 'lib/ui_bibz/builders/html_classes_builder.rb', line 85

def add_if_equal_value(class_name, value, expected)
  add class_name if value == expected
end

#add_not_nil(class_name, value) ⇒ Void

Add class if value is not nil

Parameters:

  • class_name (String)
  • value (Symbol|String)

Returns:

  • (Void)


76
77
78
# File 'lib/ui_bibz/builders/html_classes_builder.rb', line 76

def add_not_nil(class_name, value)
  add class_name unless value.nil?
end

#outputArray|Nil

Te be sure to have uniq classes

Returns:

  • (Array|Nil)

    Array or nil



60
61
62
# File 'lib/ui_bibz/builders/html_classes_builder.rb', line 60

def output
  to_a.empty? ? nil : to_a
end

#remove(*classes) ⇒ Void

Remove classes

Parameters:

  • classes (Array|String)

Returns:

  • (Void)


42
43
44
# File 'lib/ui_bibz/builders/html_classes_builder.rb', line 42

def remove(*classes)
  @html_classes = to_a.reject { |klass_name| self.class.join_classes(classes).include?(klass_name.to_s) }
end

#to_aArray

To be sure to have uniq classes

Returns:

  • (Array)

    Array of uniq classes



54
55
56
# File 'lib/ui_bibz/builders/html_classes_builder.rb', line 54

def to_a
  @html_classes.flatten.join(' ').split.uniq
end

#to_sString

To be sure to have uniq classes

Returns:

  • (String)

    String of uniq classes



48
49
50
# File 'lib/ui_bibz/builders/html_classes_builder.rb', line 48

def to_s
  to_a.join(' ')
end