class Copyable::ColumnChecker
Public Instance Methods
columns(columns)
click to toggle source
# File lib/copyable/syntax_checking/column_checker.rb, line 4 def columns(columns) @columns = columns.keys.map(&:to_s) end
Private Instance Methods
columns_to_skip()
click to toggle source
# File lib/copyable/syntax_checking/column_checker.rb, line 10 def columns_to_skip ['id', 'created_at', 'updated_at', 'created_on', 'updated_on'] end
expected_entries()
click to toggle source
# File lib/copyable/syntax_checking/column_checker.rb, line 14 def expected_entries columns_in_database = model_class.column_names columns_in_database -= columns_to_skip columns_in_database end
extra_entries_found(extra_entries)
click to toggle source
# File lib/copyable/syntax_checking/column_checker.rb, line 33 def extra_entries_found(extra_entries) message = "The following columns were found in copyable's columns in the model '#{model_class.name}' " message << "but not found in the database table '#{model_class.table_name}':\n" extra_entries.each {|c| message << " column: #{c}\n" } message << "Note that the #{columns_to_skip.join(', ')} columns are handled " message << "automatically and should not be listed.\n" raise ColumnError.new(message) end
missing_entries_found(missing_entries)
click to toggle source
# File lib/copyable/syntax_checking/column_checker.rb, line 24 def missing_entries_found(missing_entries) message = "The following columns were found in the database table '#{model_class.table_name}' " message << "but not found in copyable's columns in the model '#{model_class.name}':\n" missing_entries.each {|c| message << " column: #{c}\n" } message << "Basically, if you just added columns to this database table, you need to update " message << "the copyable declaration to instruct it how to copy the new columns.\n" raise ColumnError.new(message) end
provided_entries()
click to toggle source
# File lib/copyable/syntax_checking/column_checker.rb, line 20 def provided_entries @columns end