Sha256: 4493cc475c20eabaab4781fbe08a65427c96bc2a9c8ad3db833ef02b1204e998
Contents?: true
Size: 1.93 KB
Versions: 1
Compression:
Stored size: 1.93 KB
Contents
require 'graphviz/utils' def say(message) puts message unless Rake.application.options.silent end namespace :erd do task :check_dependencies do include GraphViz::Utils unless find_executable("dot", nil) raise "Unable to find GraphViz's \"dot\" executable. Please " \ "visit https://voormedia.github.io/rails-erd/install.html for installation instructions." end end task :options do (RailsERD.options.keys.map(&:to_s) & ENV.keys).each do |option| RailsERD.options[option.to_sym] = case ENV[option] when "true", "yes" then true when "false", "no" then false when /,/ then ENV[option].split(/\s*,\s*/) else ENV[option].to_sym end end end task :load_models do say "Loading application environment..." Rake::Task[:environment].invoke say "Loading code in search of Active Record models..." begin Rails.application.eager_load! if Rails.application.respond_to?(:config) && !Rails.application.config.nil? Rails.application.config.eager_load_namespaces.each(&:eager_load!) if Rails.application.config.respond_to?(:eager_load_namespaces) end rescue Exception => err if Rake.application.options.trace raise else trace = Rails.backtrace_cleaner.clean(err.backtrace) error = (["Loading models failed!\nError occurred while loading application: #{err} (#{err.class})"] + trace).join("\n ") raise error end end raise "Active Record was not loaded." unless defined? ActiveRecord end task :generate => [:check_dependencies, :options, :load_models] do say "Generating Entity-Relationship Diagram for #{ActiveRecord::Base.descendants.length} models..." require "rails_erd/diagram/graphviz" file = RailsERD::Diagram::Graphviz.create say "Done! Saved diagram to #{file}." end end desc "Generate an Entity-Relationship Diagram based on your models" task :erd => "erd:generate"
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rails-erd-1.5.2 | lib/rails_erd/tasks.rake |