Class: ActiveRecord::ConnectionAdapters::SQLServer::Column

Inherits:
ConnectionAdapters::Column
  • Object
show all
Defined in:
lib/active_record/connection_adapters/sqlserver_column.rb

Instance Method Summary collapse

Constructor Details

#initialize(is_identity: nil, is_primary: nil, table_name: nil, ordinal_position: nil, generated_type: nil) ⇒ Column

Returns a new instance of Column.



9
10
11
12
13
14
15
16
# File 'lib/active_record/connection_adapters/sqlserver_column.rb', line 9

def initialize(*, is_identity: nil, is_primary: nil, table_name: nil, ordinal_position: nil, generated_type: nil, **)
  super
  @is_identity = is_identity
  @is_primary = is_primary
  @table_name = table_name
  @ordinal_position = ordinal_position
  @generated_type = generated_type
end

Instance Method Details

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



63
64
65
66
67
68
69
70
# File 'lib/active_record/connection_adapters/sqlserver_column.rb', line 63

def ==(other)
  other.is_a?(Column) &&
    super &&
    is_identity? == other.is_identity? &&
    is_primary? == other.is_primary? &&
    table_name == other.table_name &&
    ordinal_position == other.ordinal_position
end

#case_sensitive?Boolean

Returns:

  • (Boolean)


31
32
33
# File 'lib/active_record/connection_adapters/sqlserver_column.rb', line 31

def case_sensitive?
  collation&.match(/_CS/)
end

#encode_with(coder) ⇒ Object



55
56
57
58
59
60
61
# File 'lib/active_record/connection_adapters/sqlserver_column.rb', line 55

def encode_with(coder)
  coder["is_identity"] = @is_identity
  coder["is_primary"] = @is_primary
  coder["table_name"] = @table_name
  coder["ordinal_position"] = @ordinal_position
  super
end

#has_default?Boolean

Returns:

  • (Boolean)


43
44
45
# File 'lib/active_record/connection_adapters/sqlserver_column.rb', line 43

def has_default?
  super && !virtual?
end

#hashObject



73
74
75
# File 'lib/active_record/connection_adapters/sqlserver_column.rb', line 73

def hash
  [Column, super, is_identity?, is_primary?, table_name, ordinal_position].hash
end

#init_with(coder) ⇒ Object



47
48
49
50
51
52
53
# File 'lib/active_record/connection_adapters/sqlserver_column.rb', line 47

def init_with(coder)
  @is_identity = coder["is_identity"]
  @is_primary = coder["is_primary"]
  @table_name = coder["table_name"]
  @ordinal_position = coder["ordinal_position"]
  super
end

#is_identity?Boolean Also known as: auto_incremented_by_db?

Returns:

  • (Boolean)


18
19
20
# File 'lib/active_record/connection_adapters/sqlserver_column.rb', line 18

def is_identity?
  is_identity
end

#is_primary?Boolean

Returns:

  • (Boolean)


23
24
25
# File 'lib/active_record/connection_adapters/sqlserver_column.rb', line 23

def is_primary?
  is_primary
end

#is_utf8?Boolean

Returns:

  • (Boolean)


27
28
29
# File 'lib/active_record/connection_adapters/sqlserver_column.rb', line 27

def is_utf8?
  sql_type =~ /nvarchar|ntext|nchar/i
end

#virtual?Boolean

Returns:

  • (Boolean)


35
36
37
# File 'lib/active_record/connection_adapters/sqlserver_column.rb', line 35

def virtual?
  @generated_type.present?
end

#virtual_stored?Boolean

Returns:

  • (Boolean)


39
40
41
# File 'lib/active_record/connection_adapters/sqlserver_column.rb', line 39

def virtual_stored?
  @generated_type == :stored
end