Class: StimulusPlumbers::Themes::Base
- Inherits:
-
Object
- Object
- StimulusPlumbers::Themes::Base
- Defined in:
- lib/stimulus_plumbers/themes/base.rb
Direct Known Subclasses
Constant Summary collapse
- SCHEMA =
{ **ActionList::SCHEMA, **Avatar::SCHEMA, **Button::SCHEMA, **Calendar::SCHEMA, **Card::SCHEMA, **Form::SCHEMA, **Layout::SCHEMA }.freeze
Instance Method Summary collapse
- #attribute_names(component) ⇒ Object
- #name ⇒ Object
-
#resolve(component, **args) ⇒ Object
Resolves presentational classes for a component slot.
Instance Method Details
#attribute_names(component) ⇒ Object
29 30 31 |
# File 'lib/stimulus_plumbers/themes/base.rb', line 29 def attribute_names(component) SCHEMA.fetch(component, {}).keys end |
#name ⇒ Object
25 26 27 |
# File 'lib/stimulus_plumbers/themes/base.rb', line 25 def name @name ||= self.class.name.demodulize.delete_suffix("Theme") end |
#resolve(component, **args) ⇒ Object
Resolves presentational classes for a component slot. Returns a Hash with :classes (String) and optionally :style (String). Returns {} when no mapping exists for the given component.
36 37 38 39 40 41 42 43 44 |
# File 'lib/stimulus_plumbers/themes/base.rb', line 36 def resolve(component, **args) method_name = :"#{component}_classes" unless respond_to?(method_name, true) StimulusPlumbers::Logger.warn("#{self.class} has no classes method for component #{component.inspect}") return {} end send(method_name, **validate_args(component.to_sym, args)) end |