Class: StimulusPlumbers::Themes::Base
- Inherits:
-
Object
- Object
- StimulusPlumbers::Themes::Base
- Defined in:
- lib/stimulus_plumbers/themes/base.rb
Constant Summary collapse
- SCHEMA =
{ **Schema::LIST, **Schema::AVATAR, **Schema::BUTTON, **Schema::CALENDAR, **Schema::CARD, **Schema::COMBOBOX, **Schema::FORM, **Schema::ICON, **Schema::INPUT_GROUP, **Schema::LAYOUT, **Schema::LINK, **Schema::TIMELINE }.freeze
Instance Method Summary collapse
- #attribute_names(component) ⇒ Object
- #avatar_variant_range ⇒ Object
- #avatar_variants ⇒ Object
- #icons ⇒ Object
- #name ⇒ Object
- #resolve(component, **args) ⇒ Object
Instance Method Details
#attribute_names(component) ⇒ Object
40 41 42 |
# File 'lib/stimulus_plumbers/themes/base.rb', line 40 def attribute_names(component) SCHEMA.fetch(component, {}).keys end |
#avatar_variant_range ⇒ Object
32 33 34 |
# File 'lib/stimulus_plumbers/themes/base.rb', line 32 def avatar_variant_range [] end |
#avatar_variants ⇒ Object
28 29 30 |
# File 'lib/stimulus_plumbers/themes/base.rb', line 28 def avatar_variants {} end |
#icons ⇒ Object
36 37 38 |
# File 'lib/stimulus_plumbers/themes/base.rb', line 36 def icons {} end |
#name ⇒ Object
24 25 26 |
# File 'lib/stimulus_plumbers/themes/base.rb', line 24 def name @name ||= self.class.name.demodulize.delete_suffix("Theme") end |
#resolve(component, **args) ⇒ Object
44 45 46 47 48 49 50 51 52 |
# File 'lib/stimulus_plumbers/themes/base.rb', line 44 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(component.to_sym, args)) end |