Class: DataMapper::Queries::CreateTableStatement
- Inherits:
-
Object
- Object
- DataMapper::Queries::CreateTableStatement
show all
- Defined in:
- lib/data_mapper/queries/create_table_statement.rb
Instance Method Summary
collapse
Constructor Details
Returns a new instance of CreateTableStatement.
6
7
8
|
# File 'lib/data_mapper/queries/create_table_statement.rb', line 6
def initialize(database, klass)
@database, @klass = database, klass
end
|
Instance Method Details
24
25
26
27
28
29
30
31
32
33
|
# File 'lib/data_mapper/queries/create_table_statement.rb', line 24
def column_long_form(column)
long_form = "#{column.to_sql} #{@database.adapter.class::TYPES[column.type] || column.type}"
long_form << "(#{column.size})" unless column.size.nil?
long_form << " NOT NULL" unless column.nullable?
long_form << " " << @database.syntax(:auto_increment) if column.key?
long_form << " default #{column.options[:default]}" if column.options.has_key?(:default)
return long_form
end
|
#to_sql ⇒ Object
10
11
12
13
14
15
16
17
18
19
20
21
22
|
# File 'lib/data_mapper/queries/create_table_statement.rb', line 10
def to_sql
table = @database[@klass]
sql = "CREATE TABLE " << table.to_sql << " ("
sql << table.columns.map do |column|
column_long_form(column)
end.join(', ')
sql << ", PRIMARY KEY (#{table.key.to_sql}))"
return sql
end
|