Sha256: b3e2584b997327d0f830f240cfaab64f57afd795adf4f70166c799b80a5b1edf
Contents?: true
Size: 1.17 KB
Versions: 2
Compression:
Stored size: 1.17 KB
Contents
module Dread class Error < StandardError;end class Graph INDENT_INCREASE = 2 attr_reader :clazz, :indent, :pluralized def initialize(clazz, indent=0, pluralized=false) set_and_verify_clazz(clazz) @indent = indent @pluralized = pluralized end def draw puts " " * indent + clazz_name() @clazz.reflections.each do |assoc_name, assoc_data| if assoc_data.options[:dependent] == :delete puts " "*(indent+INDENT_INCREASE) + "#{assoc_name} [#{assoc_data.table_name.classify}]" elsif assoc_data.options[:dependent] == :destroy Graph.new(assoc_data.table_name, indent + INDENT_INCREASE, pluralized = true).draw end end end private def set_and_verify_clazz(clazz) raise Error.new('Please pass a env var called class to proceed.') if clazz.nil? begin @clazz = clazz.classify.constantize rescue NameError => e raise Error.new("Unable to find class called #{clazz.classify}") end end def clazz_name relation = @pluralized ? @clazz.to_s.pluralize : @clazz.to_s relation.underscore end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
dread-0.0.2 | lib/dread/graph.rb |
dread-0.0.1 | lib/dread/graph.rb |