class DBCode::Graph
Attributes
files[R]
Public Class Methods
new(files)
click to toggle source
# File lib/dbcode/graph.rb, line 8 def initialize(files) @files = (files.map {|f| { f.name => f } }.reduce(:merge) || {}).freeze end
Public Instance Methods
compile()
click to toggle source
# File lib/dbcode/graph.rb, line 16 def compile tsort.map(&:to_sql).join(";\n") end
digest()
click to toggle source
# File lib/dbcode/graph.rb, line 12 def digest Digest::MD5.base64digest to_sql end
to_sql()
click to toggle source
# File lib/dbcode/graph.rb, line 20 def to_sql @to_sql ||= compile end
Private Instance Methods
tsort_each_child(file, &block)
click to toggle source
# File lib/dbcode/graph.rb, line 28 def tsort_each_child(file, &block) file.dependency_names.each do |name| dependency = files.fetch name do raise LoadError, %Q{cannot load file -- #{name}} end block.call dependency end end
tsort_each_node(&b)
click to toggle source
# File lib/dbcode/graph.rb, line 38 def tsort_each_node(&b) files.values.each(&b) end