lib/ridgepole/dsl_parser.rb in ridgepole-0.1.9 vs lib/ridgepole/dsl_parser.rb in ridgepole-0.2.0

- old
+ new

@@ -49,23 +49,31 @@ ctx.instance_eval(dsl) ctx.__definition end def create_table(table_name, options = {}) - # XXX: Add exist check table_definition = TableDefinition.new yield(table_definition) @__definition[table_name] ||= {} + + if @__definition[table_name][:definition] + raise "Table `#{table_name}` already defined" + end + @__definition[table_name][:definition] = table_definition.__definition options.delete(:force) @__definition[table_name][:options] = options end def add_index(table_name, column_name, options = {}) - # XXX: Add exist check @__definition[table_name] ||= {} @__definition[table_name][:indices] ||= {} idx = options[:name] || column_name + + if @__definition[table_name][:indices][idx] + raise "Index `#{table_name}(#{idx})` already defined" + end + @__definition[table_name][:indices][idx] = { :column_name => column_name, :options => options, } end