Class: UiBibz::Builders::HtmlClassesBuilder
- Inherits:
-
Object
- Object
- UiBibz::Builders::HtmlClassesBuilder
- Defined in:
- lib/ui_bibz/builders/html_classes_builder.rb
Overview
Class to build html classes
Class Method Summary collapse
-
.exclude_classes(arr, *classes) ⇒ Array|nil
Remove classes and return output.
-
.join_classes ⇒ Array|nil
Add class and return output.
Instance Method Summary collapse
-
#add(*classes) ⇒ Void
Add classes.
-
#add_composed(class_name, value) ⇒ Void
Create a composed class.
-
#add_if_equal_value(class_name, value, expected) ⇒ Void
Add class if value is equal to expected.
-
#add_not_nil(class_name, value) ⇒ Void
Add class if value is not nil.
-
#initialize ⇒ HtmlClassesBuilder
constructor
A new instance of HtmlClassesBuilder.
-
#output ⇒ Array|Nil
Te be sure to have uniq classes.
-
#remove(*classes) ⇒ Void
Remove classes.
-
#to_a ⇒ Array
To be sure to have uniq classes.
-
#to_s ⇒ String
To be sure to have uniq classes.
Constructor Details
#initialize ⇒ HtmlClassesBuilder
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
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_classes ⇒ Array|nil
Add class and return output
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
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
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
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
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 |
#output ⇒ Array|Nil
Te be sure to have uniq classes
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
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_a ⇒ Array
To be sure to have 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_s ⇒ String
To be sure to have uniq classes
48 49 50 |
# File 'lib/ui_bibz/builders/html_classes_builder.rb', line 48 def to_s to_a.join(' ') end |