Class: Convergence::Dumper
- Inherits:
-
Object
- Object
- Convergence::Dumper
show all
- Defined in:
- lib/convergence/dumper.rb
Defined Under Namespace
Classes: MysqlSchemaDumper
Instance Method Summary
collapse
Instance Method Details
#dump_dsl(tables) ⇒ Object
2
3
4
5
6
|
# File 'lib/convergence/dumper.rb', line 2
def dump_dsl(tables)
tables.map do |_, table|
dump_table_dsl(table)
end.join("\n\n")
end
|
#dump_table_dsl(table) ⇒ Object
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
# File 'lib/convergence/dumper.rb', line 8
def dump_table_dsl(table)
table_argument = [table.table_name.to_sym.inspect]
table_argument << table.table_options.map { |k, v| key_value_text(k, v) }
dsl = "create_table #{table_argument.flatten.join(', ')} do |t|\n"
dsl += " #{table.columns.map { |_, column| dump_column(column) }.join("\n ")}"
dsl += "\n" if !table.indexes.empty? || !table.foreign_keys.empty?
dsl += "\n"
unless table.indexes.empty?
dsl += " #{table.indexes.map { |_, index| dump_index(index) }.join("\n ")}"
dsl += "\n"
end
unless table.foreign_keys.empty?
dsl += " #{table.foreign_keys.map { |_, key| dump_foreign_key(key) }.join("\n ")}"
dsl += "\n"
end
dsl += 'end'
dsl
end
|