class ActiveSchema::Column
Public Class Methods
new(connection, table_name, column_name, column_type, column_opts)
click to toggle source
# File lib/active_schema/column.rb, line 4 def initialize connection, table_name, column_name, column_type, column_opts @connection, @table_name, @column_name, @column_type, @column_opts = \ connection, table_name, column_name, column_type, column_opts return add_column unless column_exists? update_column_type_if_needed update_column_if_needed end
Private Instance Methods
add_column()
click to toggle source
# File lib/active_schema/column.rb, line 33 def add_column @connection.add_column(@table_name, @column_name, @column_type, @column_opts) end
column_exists?(type = nil, opts = {})
click to toggle source
# File lib/active_schema/column.rb, line 29 def column_exists? type = nil, opts = {} @connection.column_exists?(@table_name, @column_name, type, opts) end
update_column(type, opts = {})
click to toggle source
# File lib/active_schema/column.rb, line 25 def update_column type, opts = {} @connection.change_column(@table_name, @column_name, type, opts) end
update_column_if_needed()
click to toggle source
# File lib/active_schema/column.rb, line 17 def update_column_if_needed @connection.reset! # reconnect to get fresh columns info @column_opts.each_pair do |o,v| next if column_exists?(@column_type, o => v) update_column(@column_type, o => v) end end
update_column_type_if_needed()
click to toggle source
# File lib/active_schema/column.rb, line 13 def update_column_type_if_needed update_column(@column_type) unless column_exists?(@column_type) end