Module: Dbwatcher::Services::DiagramStrategies::DiagramStrategyHelpers

Included in:
StandardDiagramStrategy
Defined in:
lib/dbwatcher/services/diagram_strategies/diagram_strategy_helpers.rb

Overview

Helper module for diagram strategies

Provides common utility methods for diagram strategies to reduce code duplication. These methods handle common patterns in diagram generation.

Instance Method Summary collapse

Instance Method Details

#generate_standard_diagram_content(dataset, options) ⇒ String

Generate diagram content with empty state handling

Parameters:

  • dataset (Dataset)

    standardized dataset

  • options (Hash)

    options for diagram generation

Options Hash (options):

  • :empty_method (Symbol)

    method to call for empty diagram

  • :empty_message (String)

    message for empty diagram

  • :empty_entities_method (Symbol)

    method to call for diagram with only entities

  • :full_diagram_method (Symbol)

    method to call for complete diagram

Returns:

  • (String)

    diagram content



20
21
22
23
24
25
26
27
28
29
# File 'lib/dbwatcher/services/diagram_strategies/diagram_strategy_helpers.rb', line 20

def generate_standard_diagram_content(dataset, options)
  if dataset.relationships.empty? && dataset.entities.empty?
    @syntax_builder.send(options[:empty_method], options[:empty_message])
  elsif dataset.relationships.empty? && options[:empty_entities_method]
    # Show isolated entities if no relationships but entities exist
    @syntax_builder.send(options[:empty_entities_method], dataset.entities.values)
  else
    @syntax_builder.send(options[:full_diagram_method], dataset)
  end
end