Class: Tramway::Generators::InstallGenerator
- Inherits:
-
Rails::Generators::Base
- Object
- Rails::Generators::Base
- Tramway::Generators::InstallGenerator
- Defined in:
- lib/generators/tramway/install/install_generator.rb
Overview
Running ‘rails generate tramway:install` will invoke this generator
Instance Method Summary collapse
- #ensure_dependencies ⇒ Object
- #ensure_tailwind_application_stylesheet ⇒ Object
- #ensure_tailwind_safelist ⇒ Object
Instance Method Details
#ensure_dependencies ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/generators/tramway/install/install_generator.rb', line 13 def ensure_dependencies missing_dependencies = gem_dependencies.reject do |dependency| gemfile_contains?(dependency[:name]) end return if missing_dependencies.empty? append_to_file 'Gemfile', "\n # Tramway dependencies\n \#{missing_dependencies.pluck(:declaration).join(\"\\n\")}\n\n GEMS\nend\n" |
#ensure_tailwind_application_stylesheet ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/generators/tramway/install/install_generator.rb', line 41 def ensure_tailwind_application_stylesheet path = tailwind_application_stylesheet_path FileUtils.mkdir_p(File.dirname(path)) return create_file(path, "#{tailwind_css_import_line}\n") unless File.exist?(path) content = File.read(path) return if content.include?(tailwind_css_import_line) File.open(path, 'a') do |file| file.write("\n") unless content.empty? || content.end_with?("\n") file.write("#{tailwind_css_import_line}\n") end end |
#ensure_tailwind_safelist ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/generators/tramway/install/install_generator.rb', line 28 def ensure_tailwind_safelist return create_tailwind_config unless File.exist?(tailwind_config_path) source_entries = extract_safelist_entries(File.read(gem_tailwind_config_path)) target_content = File.read(tailwind_config_path) target_entries = extract_safelist_entries(target_content) missing_entries = source_entries - target_entries return if missing_entries.empty? File.write(tailwind_config_path, insert_entries(target_content, missing_entries)) end |