Class: Dbwatcher::Services::DiagramGenerator
- Inherits:
-
Object
- Object
- Dbwatcher::Services::DiagramGenerator
- Includes:
- Logging
- Defined in:
- lib/dbwatcher/services/diagram_generator.rb
Overview
Service for generating diagrams from session data
Coordinates the process of generating diagrams by:
-
Loading session data
-
Using appropriate analyzers to extract relationships
-
Applying diagram generation strategies
Instance Method Summary collapse
-
#call ⇒ Hash
Generate diagram.
-
#initialize(session_id:, diagram_type:, options: {}) ⇒ DiagramGenerator
constructor
Initialize generator with options.
Methods included from Logging
#debug_enabled?, #log_debug, #log_error, #log_info, #log_warn
Constructor Details
#initialize(session_id:, diagram_type:, options: {}) ⇒ DiagramGenerator
Initialize generator with options
27 28 29 30 31 32 33 |
# File 'lib/dbwatcher/services/diagram_generator.rb', line 27 def initialize(session_id:, diagram_type:, options: {}) @session_id = session_id @diagram_type = diagram_type @options = @registry = [:registry] || DiagramTypeRegistry.new @logger = [:logger] || Rails.logger end |
Instance Method Details
#call ⇒ Hash
Generate diagram
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/dbwatcher/services/diagram_generator.rb', line 38 def call log_info("Generating diagram of type #{@diagram_type} for session #{@session_id}") start_time = Time.now result = generate_diagram duration_ms = ((Time.now - start_time) * 1000).round(2) log_info("Diagram generation completed in #{duration_ms}ms", { session_id: @session_id, diagram_type: @diagram_type, success: result[:success] }) result rescue StandardError => e log_error("Diagram generation failed: #{e.}", error_context) error_result("Diagram generation failed: #{e.}") end |