Class: ERBLint::Linters::ArgumentMappers::Label

Inherits:
Base
  • Object
show all
Defined in:
lib/yattho/view_components/linters/argument_mappers/label.rb

Overview

Maps classes in a label element to arguments for the Label component.

Constant Summary collapse

SCHEME_MAPPINGS =
Yattho::ViewComponents::Constants.get(
  component: "Yattho::Beta::Label",
  constant: "SCHEME_MAPPINGS",
  symbolize: true
).freeze
SIZE_MAPPINGS =
Yattho::ViewComponents::Constants.get(
  component: "Yattho::Beta::Label",
  constant: "SIZE_MAPPINGS",
  symbolize: true
).freeze
DEFAULT_TAG =
Yattho::ViewComponents::Constants.get(
  component: "Yattho::Beta::Label",
  constant: "DEFAULT_TAG"
).freeze
INLINE_CLASS =
Yattho::ViewComponents::Constants.get(
  component: "Yattho::Beta::Label",
  constant: "INLINE_CLASS"
).freeze
ATTRIBUTES =
%w[title].freeze

Instance Method Summary collapse

Methods inherited from Base

#initialize, #map_classes, #system_arguments_to_args, #to_args, #to_s

Constructor Details

This class inherits a constructor from ERBLint::Linters::ArgumentMappers::Base

Instance Method Details

#attribute_to_args(attribute) ⇒ Object



34
35
36
# File 'lib/yattho/view_components/linters/argument_mappers/label.rb', line 34

def attribute_to_args(attribute)
  { title: erb_helper.convert(attribute) }
end

#classes_to_args(classes) ⇒ Object



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/yattho/view_components/linters/argument_mappers/label.rb', line 38

def classes_to_args(classes)
  classes.each_with_object({ classes: [] }) do |class_name, acc|
    next if class_name == "Label"

    if SCHEME_MAPPINGS[class_name] && acc[:scheme].nil?
      acc[:scheme] = SCHEME_MAPPINGS[class_name]
    elsif SIZE_MAPPINGS[class_name] && acc[:size].nil?
      acc[:size] = SIZE_MAPPINGS[class_name]
    elsif class_name == INLINE_CLASS && acc[:inline].nil?
      acc[:inline] = true
    else
      acc[:classes] << class_name
    end
  end
end