Class: Tramway::Generators::InstallGenerator
- Inherits:
-
Rails::Generators::Base
- Object
- Rails::Generators::Base
- Tramway::Generators::InstallGenerator
- Includes:
- InstallGeneratorHelpers
- Defined in:
- lib/generators/tramway/install/install_generator.rb
Overview
Running ‘rails generate tramway:install` will invoke this generator
Instance Method Summary collapse
- #ensure_agents_file ⇒ Object
- #ensure_dependencies ⇒ Object
- #ensure_importmap_pin ⇒ Object
- #ensure_stimulus_controller_registration ⇒ Object
- #ensure_tailwind_application_stylesheet ⇒ Object
- #ensure_tailwind_safelist ⇒ Object
Instance Method Details
#ensure_agents_file ⇒ Object
194 195 196 197 198 199 200 201 202 203 204 205 206 |
# File 'lib/generators/tramway/install/install_generator.rb', line 194 def ensure_agents_file with_agents_update_fallback do return create_file(agents_file_path, "#{codex_agents_instruction}\n") unless File.exist?(agents_file_path) content = File.read(agents_file_path) return if content.include?(codex_agents_instruction) updated = append_codex_agents_instruction(content) return if updated == content File.write(agents_file_path, updated, mode: 'w:UTF-8') end end |
#ensure_dependencies ⇒ Object
208 209 210 211 212 213 214 215 216 217 218 219 220 221 |
# File 'lib/generators/tramway/install/install_generator.rb', line 208 def ensure_dependencies missing_dependencies = gem_dependencies.reject do |dependency| gemfile_contains?(dependency[:name]) end return if missing_dependencies.empty? append_to_file 'Gemfile', <<~GEMS # Tramway dependencies #{missing_dependencies.pluck(:declaration).join("\n")} GEMS end |
#ensure_importmap_pin ⇒ Object
251 252 253 254 255 256 257 258 259 260 261 262 |
# File 'lib/generators/tramway/install/install_generator.rb', line 251 def ensure_importmap_pin return unless File.exist?(importmap_path) content = File.read(importmap_path) missing_pins = importmap_tramway_pins.reject { |pin| content.include?(pin) } return if missing_pins.empty? File.open(importmap_path, 'a') do |file| file.write("\n") unless content.empty? || content.end_with?("\n") file.write("#{missing_pins.join("\n")}\n") end end |
#ensure_stimulus_controller_registration ⇒ Object
264 265 266 267 268 269 270 271 272 273 |
# File 'lib/generators/tramway/install/install_generator.rb', line 264 def ensure_stimulus_controller_registration return unless File.exist?(controllers_index_path) content = File.read(controllers_index_path) updated = append_missing_imports(content) updated = append_missing_registrations(updated) return if updated == content File.write(controllers_index_path, updated) end |
#ensure_tailwind_application_stylesheet ⇒ Object
236 237 238 239 240 241 242 243 244 245 246 247 248 249 |
# File 'lib/generators/tramway/install/install_generator.rb', line 236 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
223 224 225 226 227 228 229 230 231 232 233 234 |
# File 'lib/generators/tramway/install/install_generator.rb', line 223 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 |