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.



496
497
498
499
# File 'lib/active_record/connection_adapters/abstract_adapter.rb', line 496

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

Instance Attribute Details

#columnsObject

Returns the value of attribute columns.



494
495
496
# File 'lib/active_record/connection_adapters/abstract_adapter.rb', line 494

def columns
  @columns
end

Instance Method Details

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



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

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



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

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

#to_sqlObject



515
516
517
# File 'lib/active_record/connection_adapters/abstract_adapter.rb', line 515

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