Class: ActiveRecord::ConnectionAdapters::Column

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

Overview

An abstract definition of a column in a table.

Defined Under Namespace

Modules: Format

Constant Summary

FALSE_VALUES =
[false, 0, '0', 'f', 'F', 'false', 'FALSE', 'off', 'OFF'].to_set

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, default, cast_type, sql_type = nil, null = true, default_function = nil) ⇒ Column

Instantiates a new column in the table.

name is the column's name, such as supplier_id in supplier_id int(11). default is the type-casted default value, such as new in sales_stage varchar(20) default 'new'. cast_type is the object used for type casting and type information. sql_type is used to extract the column's length, if necessary. For example 60 in company_name varchar(60). It will be mapped to one of the standard Rails SQL types in the type attribute. null determines if this column allows NULL values.



32
33
34
35
36
37
38
39
# File 'activerecord/lib/active_record/connection_adapters/column.rb', line 32

def initialize(name, default, cast_type, sql_type = nil, null = true, default_function = nil)
  @name             = name
  @cast_type        = cast_type
  @sql_type         = sql_type
  @null             = null
  @default          = default
  @default_function = default_function
end

Instance Attribute Details

#cast_typeObject (readonly)

Returns the value of attribute cast_type



15
16
17
# File 'activerecord/lib/active_record/connection_adapters/column.rb', line 15

def cast_type
  @cast_type
end

#defaultObject (readonly)

Returns the value of attribute default



15
16
17
# File 'activerecord/lib/active_record/connection_adapters/column.rb', line 15

def default
  @default
end

#default_functionObject (readonly)

Returns the value of attribute default_function



15
16
17
# File 'activerecord/lib/active_record/connection_adapters/column.rb', line 15

def default_function
  @default_function
end

#nameObject (readonly)

Returns the value of attribute name



15
16
17
# File 'activerecord/lib/active_record/connection_adapters/column.rb', line 15

def name
  @name
end

#nullObject (readonly)

Returns the value of attribute null



15
16
17
# File 'activerecord/lib/active_record/connection_adapters/column.rb', line 15

def null
  @null
end

#sql_typeObject (readonly)

Returns the value of attribute sql_type



15
16
17
# File 'activerecord/lib/active_record/connection_adapters/column.rb', line 15

def sql_type
  @sql_type
end

Instance Method Details

#==(other) ⇒ Object Also known as: eql?



59
60
61
62
63
64
65
66
# File 'activerecord/lib/active_record/connection_adapters/column.rb', line 59

def ==(other)
  other.name == name &&
    other.default == default &&
    other.cast_type == cast_type &&
    other.sql_type == sql_type &&
    other.null == null &&
    other.default_function == default_function
end

#has_default?Boolean

Returns:

  • (Boolean)


41
42
43
# File 'activerecord/lib/active_record/connection_adapters/column.rb', line 41

def has_default?
  !default.nil?
end

#hashObject



69
70
71
# File 'activerecord/lib/active_record/connection_adapters/column.rb', line 69

def hash
  attributes_for_hash.hash
end

#human_nameObject

Returns the human name of the column name.

Examples
Column.new('sales_stage', ...).human_name # => 'Sales stage'


49
50
51
# File 'activerecord/lib/active_record/connection_adapters/column.rb', line 49

def human_name
  Base.human_attribute_name(@name)
end

#with_type(type) ⇒ Object



53
54
55
56
57
# File 'activerecord/lib/active_record/connection_adapters/column.rb', line 53

def with_type(type)
  dup.tap do |clone|
    clone.instance_variable_set('@cast_type', type)
  end
end