Class: Arerd::ErdGenerator
- Inherits:
-
Object
- Object
- Arerd::ErdGenerator
- Defined in:
- lib/arerd/erd_generator.rb
Constant Summary collapse
- MERMAID_TEMPLATE_PATH =
File.("./templates/erd.mmd.erb", __dir__)
- MARKDOWN_TEMPLATE_PATH =
File.("./templates/erd.md.erb", __dir__)
Class Method Summary collapse
- .collect_models_and_associations ⇒ Object
- .generate_markdown(models:, associations:) ⇒ Object
- .generate_mermaid(models:, associations:) ⇒ Object
Class Method Details
.collect_models_and_associations ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/arerd/erd_generator.rb', line 22 def self.collect_models_and_associations Rails.application.eager_load! models = ApplicationRecord.descendants.sort_by(&:name) associations = Arerd::Association .build_associations_from_models(models) .sort {models:, associations:} end |
.generate_markdown(models:, associations:) ⇒ Object
10 11 12 13 14 15 |
# File 'lib/arerd/erd_generator.rb', line 10 def self.generate_markdown(models:, associations:) mermaid = generate_mermaid(models:, associations:) template = File.read(MARKDOWN_TEMPLATE_PATH) ERB.new(template, trim_mode: "-").result_with_hash(mermaid:) end |
.generate_mermaid(models:, associations:) ⇒ Object
17 18 19 20 |
# File 'lib/arerd/erd_generator.rb', line 17 def self.generate_mermaid(models:, associations:) template = File.read(MERMAID_TEMPLATE_PATH) ERB.new(template, trim_mode: "-").result_with_hash(models:, associations:) end |