Class: ActiveRecord::ConnectionAdapters::ColumnDefinition

Inherits:
Struct
  • Object
show all
Defined in:
lib/active_record/connection_adapters/abstract/schema_definitions.rb

Overview

Abstract representation of a column definition. Instances of this type are typically created by methods in TableDefinition, and added to the columns attribute of said TableDefinition object, in order to be used for generating a number of table creation or table changing SQL statements.

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#baseObject

Returns the value of attribute base

Returns:

  • (Object)

    the current value of base



269
270
271
# File 'lib/active_record/connection_adapters/abstract/schema_definitions.rb', line 269

def base
  @base
end

#defaultObject

Returns the value of attribute default

Returns:

  • (Object)

    the current value of default



269
270
271
# File 'lib/active_record/connection_adapters/abstract/schema_definitions.rb', line 269

def default
  @default
end

#limitObject

Returns the value of attribute limit

Returns:

  • (Object)

    the current value of limit



269
270
271
# File 'lib/active_record/connection_adapters/abstract/schema_definitions.rb', line 269

def limit
  @limit
end

#nameObject

Returns the value of attribute name

Returns:

  • (Object)

    the current value of name



269
270
271
# File 'lib/active_record/connection_adapters/abstract/schema_definitions.rb', line 269

def name
  @name
end

#nullObject

Returns the value of attribute null

Returns:

  • (Object)

    the current value of null



269
270
271
# File 'lib/active_record/connection_adapters/abstract/schema_definitions.rb', line 269

def null
  @null
end

#precisionObject

Returns the value of attribute precision

Returns:

  • (Object)

    the current value of precision



269
270
271
# File 'lib/active_record/connection_adapters/abstract/schema_definitions.rb', line 269

def precision
  @precision
end

#scaleObject

Returns the value of attribute scale

Returns:

  • (Object)

    the current value of scale



269
270
271
# File 'lib/active_record/connection_adapters/abstract/schema_definitions.rb', line 269

def scale
  @scale
end

#typeObject

Returns the value of attribute type

Returns:

  • (Object)

    the current value of type



269
270
271
# File 'lib/active_record/connection_adapters/abstract/schema_definitions.rb', line 269

def type
  @type
end

Instance Method Details

#sql_typeObject



271
272
273
# File 'lib/active_record/connection_adapters/abstract/schema_definitions.rb', line 271

def sql_type
  base.type_to_sql(type.to_sym, limit, precision, scale) rescue type
end

#to_sqlObject



275
276
277
278
279
280
281
282
# File 'lib/active_record/connection_adapters/abstract/schema_definitions.rb', line 275

def to_sql
  column_sql = "#{base.quote_column_name(name)} #{sql_type}"
  column_options = {}
  column_options[:null] = null unless null.nil?
  column_options[:default] = default unless default.nil?
  add_column_options!(column_sql, column_options) unless type.to_sym == :primary_key
  column_sql
end