Class: BetterUi::Generators::StylesheetGenerator
- Inherits:
-
Rails::Generators::Base
- Object
- Rails::Generators::Base
- BetterUi::Generators::StylesheetGenerator
- Defined in:
- lib/generators/better_ui/stylesheet_generator.rb
Overview
Generatore per creare file SCSS personalizzati per i componenti BetterUI
Questo generatore crea:
-
Un foglio di stile principale che importa tutti i componenti usando @use/@forward
-
File di override per ogni componente che permettono personalizzazioni senza modificare i file originali
-
Un file indice che raccoglie tutti gli override usando @forward
Constant Summary collapse
- COMPONENT_FILES =
Lista dei file dei componenti da gestire
[ '_variables.scss', '_button.scss', '_heading.scss', '_breadcrumb.scss', '_link.scss', '_panel.scss', '_icon.scss', '_table.scss', '_badge.scss', '_spinner.scss', '_avatar.scss', '_card.scss' ].freeze
Instance Method Summary collapse
-
#create_overrides ⇒ Object
Crea i file di override per ogni componente.
-
#create_stylesheet ⇒ Object
Crea il foglio di stile principale.
-
#show_readme ⇒ Object
Mostra le istruzioni README dopo l’esecuzione del generatore.
Instance Method Details
#create_overrides ⇒ Object
Crea i file di override per ogni componente
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/generators/better_ui/stylesheet_generator.rb', line 53 def create_overrides # Crea la directory dei componenti se non esiste directory = File.join([:path], "components") FileUtils.mkdir_p(directory) unless File.directory?(directory) # Crea i file di override per ogni componente COMPONENT_FILES.each do |filename| # Nome del file di override (es. _button_overrides.scss) override_filename = filename.sub('.scss', '_overrides.scss') override_path = File.join(directory, override_filename) # Crea il file di override solo se non esiste già unless File.exist?(override_path) # Percorso del file template originale template_path = File.join(self.class.source_root, "components", filename) # Se il file template esiste, crea il file di override basato su di esso if File.exist?(template_path) original_content = File.read(template_path) override_content = generate_empty_override(original_content, filename) create_file override_path, override_content end end end end |
#create_stylesheet ⇒ Object
Crea il foglio di stile principale
39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/generators/better_ui/stylesheet_generator.rb', line 39 def create_stylesheet # Crea il file principale che importa tutti i componenti template "components_stylesheet.scss", File.join([:path], "#{[:prefix]}_better_ui.scss") # Crea la directory dei componenti se non esiste directory = File.join([:path], "components") FileUtils.mkdir_p(directory) unless File.directory?(directory) # Crea il file indice che raccoglie tutti gli override template "index.scss", File.join(directory, "_index.scss") end |
#show_readme ⇒ Object
Mostra le istruzioni README dopo l’esecuzione del generatore
80 81 82 |
# File 'lib/generators/better_ui/stylesheet_generator.rb', line 80 def show_readme readme "README" if behavior == :invoke end |