Module: Dbwatcher::Services::DiagramSystem

Extended by:
Logging
Defined in:
lib/dbwatcher/services/diagram_system.rb

Overview

Diagram System Module Provides centralized access to diagram generation capabilities

Class Method Summary collapse

Methods included from Logging

debug_enabled?, log_debug, log_error, log_info, log_warn

Class Method Details

.available_typesArray<String>

Get available diagram types

Returns:

  • (Array<String>)

    available diagram type names



56
57
58
# File 'lib/dbwatcher/services/diagram_system.rb', line 56

def self.available_types
  DiagramTypeRegistry.new.available_types
end

.component_nameObject

Explicitly set the component name for logging



49
50
51
# File 'lib/dbwatcher/services/diagram_system.rb', line 49

def self.component_name
  "DiagramSystem"
end

.generate(session_id, diagram_type = "database_tables") ⇒ Hash

Generate diagram for session

Parameters:

  • session_id (String)

    session identifier

  • diagram_type (String) (defaults to: "database_tables")

    type of diagram to generate

Returns:

  • (Hash)

    diagram generation result



65
66
67
68
69
70
71
# File 'lib/dbwatcher/services/diagram_system.rb', line 65

def self.generate(session_id, diagram_type = "database_tables")
  log_debug("Generating diagram of type #{diagram_type} for session #{session_id}")
  generator = DiagramGenerator.new(session_id: session_id, diagram_type: diagram_type)
  result = generator.call
  log_debug("Diagram generation completed with success=#{result[:success]}")
  result
end

.supports?(diagram_type) ⇒ Boolean

Check if diagram type is supported

Parameters:

  • diagram_type (String)

    diagram type to check

Returns:

  • (Boolean)

    true if supported



77
78
79
# File 'lib/dbwatcher/services/diagram_system.rb', line 77

def self.supports?(diagram_type)
  DiagramTypeRegistry.new.type_exists?(diagram_type)
end