Class: ActiveRecord::ConnectionAdapters::TableDefinition

Inherits:
Object
  • Object
show all
Defined in:
lib/active_record/connection_adapters/abstract_adapter.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(base) ⇒ TableDefinition

Returns a new instance of TableDefinition.



502
503
504
505
# File 'lib/active_record/connection_adapters/abstract_adapter.rb', line 502

def initialize(base)
  @columns = []
  @base = base
end

Instance Attribute Details

#columnsObject

Returns the value of attribute columns.



500
501
502
# File 'lib/active_record/connection_adapters/abstract_adapter.rb', line 500

def columns
  @columns
end

Instance Method Details

#column(name, type, options = {}) ⇒ Object



512
513
514
515
516
517
518
519
# File 'lib/active_record/connection_adapters/abstract_adapter.rb', line 512

def column(name, type, options = {})
  limit = options[:limit] || native[type.to_sym][:limit]
  
  column_sql = "#{name} #{type_to_sql(type.to_sym, options[:limit])}"
  column_sql << " DEFAULT '#{options[:default]}'" if options[:default]
  @columns << column_sql
  self
end

#primary_key(name) ⇒ Object



507
508
509
510
# File 'lib/active_record/connection_adapters/abstract_adapter.rb', line 507

def primary_key(name)
  @columns << "#{name} #{native[:primary_key]}"
  self
end

#to_sqlObject



521
522
523
# File 'lib/active_record/connection_adapters/abstract_adapter.rb', line 521

def to_sql
  @columns.join(", ")
end