Module: DatabaseDocumenter::TablesSql
- Defined in:
- lib/database_documenter/tables_sql.rb
Class Method Summary collapse
- .generate ⇒ Object
- .generate_sql_file(configuration) ⇒ Object
- .process_mysql2_sql(tables_sql) ⇒ Object
- .process_postgresql_sql(tables_sql) ⇒ Object
Class Method Details
.generate ⇒ Object
4 5 6 7 8 9 10 |
# File 'lib/database_documenter/tables_sql.rb', line 4 def self.generate configuration = DatabaseDocumenter.configuration.database_configuration tables_sql = generate_sql_file(configuration) send("process_#{configuration['adapter']}_sql", tables_sql) end |
.generate_sql_file(configuration) ⇒ Object
12 13 14 15 16 17 |
# File 'lib/database_documenter/tables_sql.rb', line 12 def self.generate_sql_file(configuration) ActiveRecord::Tasks::DatabaseTasks.structure_dump(configuration, 'database.sql') tables_sql = IO.read('database.sql') File.delete('database.sql') tables_sql end |
.process_mysql2_sql(tables_sql) ⇒ Object
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/database_documenter/tables_sql.rb', line 36 def self.process_mysql2_sql(tables_sql) tables_sql_hash = {} tables_sql = tables_sql.split(';').select { |line| line.match(/CREATE/) } tables_sql.each do |sql_statement| key = sql_statement.scan(/`(.*)`/)[0][0] broken_cell_para = Caracal::Core::Models::TableCellModel.new do |c| sql_statement[1..-1].squeeze(' ').split("\n").each do |p| c.p p end end tables_sql_hash[key] = broken_cell_para end tables_sql_hash end |
.process_postgresql_sql(tables_sql) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/database_documenter/tables_sql.rb', line 19 def self.process_postgresql_sql(tables_sql) tables_sql_hash = {} tables_sql = tables_sql.split('--').select { |line| line.match(/CREATE TABLE/) } tables_sql.each do |sql_statement| key = sql_statement.scan(/public.(.*) \(/)[0][0] broken_cell_para = Caracal::Core::Models::TableCellModel.new do |c| sql_statement.strip.squeeze(' ').split("\n").each do |p| c.p p end end tables_sql_hash[key] = broken_cell_para end tables_sql_hash end |