class Extract::Export::Table

Attributes

name[RW]

Public Instance Methods

cols() click to toggle source
# File lib/extract/export/table.rb, line 8
def cols
  rows.map { |x| x.keys }.flatten.uniq
end
create_table_sql() click to toggle source
# File lib/extract/export/table.rb, line 21
      def create_table_sql
        col_str = cols.map { |x| "  #{quoted_col(x)} varchar(255)" }.join(",\n")
        "CREATE TABLE #{name} (
#{col_str}
);"
      end
inserts() click to toggle source
# File lib/extract/export/table.rb, line 28
def inserts
  res = []
  rows.each do |row|
    col_str = row.keys.map { |x| quoted_col(x) }.join(",")
    val_str = row.values.map { |x| "'#{x}'" }.join(',')
    str = "INSERT INTO #{name} (#{col_str}) VALUES (#{val_str});"
    res << str
  end
  res
end
quoted_col(col) click to toggle source
# File lib/extract/export/table.rb, line 12
def quoted_col(col)
  return col
  if col.to_s[0..0] =~ /\d/
    "\"#{col}\""
  else
    col
  end
end
sql() click to toggle source
# File lib/extract/export/table.rb, line 43
def sql
  sql_statements.join("\n")
end
sql_statements() click to toggle source
# File lib/extract/export/table.rb, line 39
def sql_statements
  [create_table_sql,inserts].flatten
end