lib/ridgepole/dsl_parser.rb in ridgepole-0.8.2 vs lib/ridgepole/dsl_parser.rb in ridgepole-0.8.3

- old
+ new

@@ -1,24 +1,18 @@ # frozen_string_literal: true -require 'tsort' - module Ridgepole class DSLParser def initialize(options = {}) @options = options end def parse(dsl, opts = {}) definition, execute = Context.eval(dsl, opts) check_orphan_index(definition) check_orphan_foreign_key(definition) - sorted_definition = {} - DependencyGraph.new(definition).tsort_each do |table_name| - sorted_definition[table_name] = definition[table_name] - end - [sorted_definition, execute] + [definition, execute] end private def check_orphan_index(definition) @@ -28,26 +22,9 @@ end def check_orphan_foreign_key(definition) definition.each do |table_name, attrs| raise "Table `#{table_name}` to create the foreign key is not defined: #{attrs[:foreign_keys].keys.join(',')}" if attrs[:foreign_keys] && !(attrs[:definition]) - end - end - - class DependencyGraph - include TSort - - def initialize(definition) - @definition = definition - end - - def tsort_each_child(table_name, &block) - keys = @definition[table_name].fetch(:foreign_keys, {}) - keys.each_value { |v| block.call(v[:to_table]) } - end - - def tsort_each_node(&block) - @definition.each_key(&block) end end end end