Module: Dbwatcher::Services::DiagramData

Defined in:
lib/dbwatcher/services/diagram_data.rb,
lib/dbwatcher/services/diagram_data/base.rb,
lib/dbwatcher/services/diagram_data/entity.rb,
lib/dbwatcher/services/diagram_data/dataset.rb,
lib/dbwatcher/services/diagram_data/attribute.rb,
lib/dbwatcher/services/diagram_data/relationship.rb,
lib/dbwatcher/services/diagram_data/relationship_params.rb

Overview

DiagramData module provides standardized data models for diagram generation

This module contains the core data structures used to represent diagram entities and relationships in a consistent, validated format that can be consumed by any diagram strategy.

Examples:

# Create entities
user_entity = Dbwatcher::Services::DiagramData::Entity.new(
  id: "users", name: "User", type: "table"
)
order_entity = Dbwatcher::Services::DiagramData::Entity.new(
  id: "orders", name: "Order", type: "table"
)

# Create relationship
relationship = Dbwatcher::Services::DiagramData::Relationship.new(
  source_id: "users", target_id: "orders", type: "has_many"
)

# Create dataset
dataset = Dbwatcher::Services::DiagramData::Dataset.new
dataset.add_entity(user_entity)
dataset.add_entity(order_entity)
dataset.add_relationship(relationship)

# Validate and use
if dataset.valid?
  puts dataset.stats
end

Defined Under Namespace

Classes: Attribute, Base, Dataset, Entity, Relationship, RelationshipParams

Class Method Summary collapse

Class Method Details

.dataset(**args) ⇒ Dataset

Convenience method to create a new Dataset

Parameters:

  • args (Hash)

    dataset arguments

Returns:

  • (Dataset)

    new dataset instance



60
61
62
# File 'lib/dbwatcher/services/diagram_data.rb', line 60

def self.dataset(**args)
  Dataset.new(**args)
end

.entity(**args) ⇒ Entity

Convenience method to create a new Entity

Parameters:

  • args (Hash)

    entity arguments

Returns:

  • (Entity)

    new entity instance



44
45
46
# File 'lib/dbwatcher/services/diagram_data.rb', line 44

def self.entity(**args)
  Entity.new(**args)
end

.relationship(**args) ⇒ Relationship

Convenience method to create a new Relationship

Parameters:

  • args (Hash)

    relationship arguments

Returns:



52
53
54
# File 'lib/dbwatcher/services/diagram_data.rb', line 52

def self.relationship(**args)
  Relationship.new(**args)
end