class SchemaDoc::Document

Public Class Methods

read() click to toggle source
# File lib/schema_doc/document.rb, line 6
def read
  document = []

  model_classes_group_by_table_name.sort.each do |table_name, model_classes|
    document << table_document(table_name, model_classes.sort_by(&:name))
  end

  document.join
end

Private Class Methods

model_classes() click to toggle source
# File lib/schema_doc/document.rb, line 31
def model_classes
  SchemaDoc.configuration.model_classes.try(:call)
end
model_classes_group_by_table_name() click to toggle source
# File lib/schema_doc/document.rb, line 35
def model_classes_group_by_table_name
  model_classes.select(&:table_exists?).group_by {|model_class|
    model_class.table_name
  }
end
model_document(table_name, model_class) click to toggle source
# File lib/schema_doc/document.rb, line 26
def model_document(table_name, model_class)
  template_path = SchemaDoc.root + '/lib/schema_doc/templates/document_body.md.erb'
  ERB.new(File.read(template_path)).result(binding)
end
table_document(table_name, model_classes) click to toggle source
# File lib/schema_doc/document.rb, line 18
def table_document(table_name, model_classes)
  template_path = SchemaDoc.root + '/lib/schema_doc/templates/document_header.md.erb'
  ERB.new(File.read(template_path)).result(binding)
  "# #{table_name}\n" + model_classes.map { |model_class|
    model_document(table_name, model_class)
  }.join
end