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