Class: ActiveRecord::ConnectionAdapters::ColumnDefinition

Inherits:
Struct
  • Object
show all
Defined in:
activerecord/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

Methods inherited from Struct

#as_json

Instance Attribute Details

#baseObject

Returns the value of attribute base

Returns:

  • (Object)

    the current value of base



16
17
18
# File 'activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb', line 16

def base
  @base
end

#defaultObject

Returns the value of attribute default

Returns:

  • (Object)

    the current value of default



16
17
18
# File 'activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb', line 16

def default
  @default
end

#limitObject

Returns the value of attribute limit

Returns:

  • (Object)

    the current value of limit



16
17
18
# File 'activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb', line 16

def limit
  @limit
end

#nameObject

Returns the value of attribute name

Returns:

  • (Object)

    the current value of name



16
17
18
# File 'activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb', line 16

def name
  @name
end

#nullObject

Returns the value of attribute null

Returns:

  • (Object)

    the current value of null



16
17
18
# File 'activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb', line 16

def null
  @null
end

#precisionObject

Returns the value of attribute precision

Returns:

  • (Object)

    the current value of precision



16
17
18
# File 'activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb', line 16

def precision
  @precision
end

#scaleObject

Returns the value of attribute scale

Returns:

  • (Object)

    the current value of scale



16
17
18
# File 'activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb', line 16

def scale
  @scale
end

#typeObject

Returns the value of attribute type

Returns:

  • (Object)

    the current value of type



16
17
18
# File 'activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb', line 16

def type
  @type
end

Instance Method Details

#sql_typeObject



22
23
24
# File 'activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb', line 22

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

#string_to_binary(value) ⇒ Object



18
19
20
# File 'activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb', line 18

def string_to_binary(value)
  value
end

#to_sqlObject



26
27
28
29
30
31
32
33
# File 'activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb', line 26

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