Class: FactorySeeder::FactoryController
- Inherits:
-
ApplicationController
- Object
- ActionController::Base
- ApplicationController
- FactorySeeder::FactoryController
- Defined in:
- app/controllers/factory_seeder/factory_controller.rb
Instance Method Summary collapse
Instance Method Details
#generate ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'app/controllers/factory_seeder/factory_controller.rb', line 30 def generate factory_name = params[:name] count = (params[:count] || 1).to_i traits = parse_traits(params[:selected_traits]) begin generator = SeedGenerator.new result = generator.generate(factory_name, count, traits, generate_params[:attributes].to_h.compact_blank) logs = result[:logs] || [] if result[:errors].any? log_id = ExecutionLogStore.store(logs, flash_type: :error, flash_message: "Error generating seeds: #{result[:errors].join(', ')}") else log_id = ExecutionLogStore.store(logs, flash_type: :success, flash_message: "Successfully generated #{result[:count]} #{factory_name} records") end rescue StandardError => e log_id = ExecutionLogStore.store([], flash_type: :error, flash_message: "Error generating seeds: #{e.}") end redirect_to factory_path(factory_name, log_id: log_id) end |
#index ⇒ Object
5 6 7 |
# File 'app/controllers/factory_seeder/factory_controller.rb', line 5 def index @factories = FactorySeeder.scan_loaded_factories end |
#show ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'app/controllers/factory_seeder/factory_controller.rb', line 9 def show @factory_name = params[:name] @factories = FactorySeeder.scan_loaded_factories @factory = @factories[@factory_name] @execution_logs = [] # Retrieve logs from temporary storage if available (PRG pattern) if params[:log_id].present? stored = ExecutionLogStore.retrieve(params[:log_id]) if stored @execution_logs = stored[:logs] || [] flash.now[stored[:flash_type]] = stored[:flash_message] if stored[:flash_type] end end return if @factory redirect_to root_path, alert: "Factory '#{@factory_name}' not found" nil end |