class ErdKeeper::GenerateErd

Public Instance Methods

exec(input, output) click to toggle source
# File lib/erd-keeper.rb, line 6
def exec(input, output)
  if Dir.exist?(output)
    while(output[-1] == "/")
      output.chop!
    end
  else
    puts "--- output: Folder not found!"
    puts "--- Stop the output of ERD."
    return
  end

  if File.exist?(input)
    generate_erd_by_setting(input, output)
  else
    puts "--- input: File not found!"
    puts "--- Instead, it outputs for all models."
    generate_project_erd(output)
  end
end

Private Instance Methods

generate_domain_erd(diagram_name = "erd", models = nil, folder = ".") click to toggle source
# File lib/erd-keeper.rb, line 45
def generate_domain_erd(diagram_name = "erd", models = nil, folder = ".")
  system "bundle exec erd --only='#{models.join(",")}' "\
         "--inheritance=true "\
         "--title='#{diagram_name}' "\
         "--filename=#{folder}/#{diagram_name} --filetype=png"
end
generate_erd_by_setting(input, output) click to toggle source
# File lib/erd-keeper.rb, line 28
def generate_erd_by_setting(input, output)
  load_diagrams(input).each do |diagram_name , diagram|
    puts "--- Generate ERD : #{diagram_name}"
    if diagram.nil?
      puts "--- #{diagram_name}: The models are not described!"
      next
    end
    models = diagram.map { |m| m }
    generate_domain_erd(diagram_name, models, output)
  end
end
generate_project_erd(folder) click to toggle source
# File lib/erd-keeper.rb, line 52
def generate_project_erd(folder)
  system "bundle exec erd --title='All domain model' --filename=#{folder}/project --filetype=png"
end
load_diagrams(yaml) click to toggle source
# File lib/erd-keeper.rb, line 40
def load_diagrams(yaml)
  load_yaml = YAML.load_file(yaml)
  load_yaml["diagrams"]
end